C'est une question compliquée, mais en résumé, je pense que la réponse se trouve probablement dans l'âge des systèmes d'exploitation et leurs racines.
-
UNIX es C, alors c'est ça.
-
Linux est envisagé comme un clone d'Unix (d'accord, c'est légèrement inexact, mais assez proche pour cette discussion) et en tant que tel, il est plus ou moins écrit en C.
-
Windows est un vieux et un système d'exploitation qui est construit en empilant hack sur hack en remontant jusqu'à Windows 3.1. Le C++ est fortement favorisé, et dans .NET, le C#.
Ce nouvel afflux est bien sûr basé sur l'agenda de Microsoft concernant cette plateforme.
-
Mac OS X, quant à lui, est un système d'exploitation (comparativement) jeune, et ses nouvelles parties (bien qu'elles soient encore assez anciennes, étant héritées de NeXT et autres) sont toutes basées sur Objective-C parce que, "Hé ! pourquoi pas ?".
Comme la rétrocompatibilité ne faisait pas partie de la liste des priorités de Mac OS X 10.0, la Toolbox et Carbon, basés sur C/C++, n'ont pas été retenus, et l'ensemble du système d'exploitation a plus ou moins été conçu comme une version remaniée de NeXTStep.
Le problème avec Obj-C, c'est que la puissance du langage provient principalement des cadres de travail importants, du niveau généralement élevé d'intégration dans le système, etc. Il est presque impossible d'obtenir un bon jive comme celui-là sans une rupture nette de la rétrocompatibilité et, en tant que tel, il n'aurait jamais vraiment eu une chance sur une plate-forme qui n'aurait pas osé le faire. Apple, avec une petite (à l'époque) base d'utilisateurs dévoués, a osé le faire et a trouvé l'or.
Microsoft s'y essaie actuellement, mais, à mon humble avis, elle échoue. ("Échouer ?! .NET !? COMMENT OSEZ-VOUS ? Avec 4 révisions majeures en 8 ans environ, ils font plus de croissance que de maturation ; ce qui peut être une bonne chose, s'ils peuvent retourner la situation).
Editar: Il existe quelques projets qui tentent de porter OpenStep sur Linux, mais ils sont un peu lourds et difficiles à utiliser ; il existe également des projets plus petits sur des NS/OS-likes avec des domaines de problèmes plus petits, mais c'est un travail difficile.