Lionel Debroux (./1993) :
* déjà, c'est peut-être un des termes du partenariat Microsoft - Novell;
Fixed

* et puis il est très intéressant pour Microsoft d'étendre ses technologies également à MacOS X et Linux, réduisant ainsi encore la proportion de programmeurs qui voudraient programmer sur les technos concurrentes (au premier chef Java, que tu mentionnes), par exemple parce que les technos de Microsoft ne sont pas assez portables.
Je ne suis pas vraiment sur que cela soit aussi simple que ça.
Microsoft avait une implémentation de .NET qui tournait partout (SSCLI 1.0 aka Rotor), ils auraient donc pu fournir une version sérieuse de .NET sur toutes les plateformes, mais il ne l'ont pas fait. De plus, le support de OSX a été supprimé de la version suivante (SSCLI 2.0).
Tout ça pour dire que si ils avaient vraiment voulu faire marcher C# partout ils l'auraient fait.
En fait, au départ silverlight était très sommaire (il fallait tout implémenter à la main, même les boutons, si ma mémoire ne me trompe pas) et tournait avec le moteur javascript du navigateur, ce qui était certainement trop limité. C# s'est présenté comme une solution maison déjà « toute prête » pour intégrer un langage à silverlight. (Et quand je dis toute prête, c'est façon de parler, car le mini .NET de Silverlight est bien différent du vrai Framework…)
Le choix de supporter OSX a peut-être été fait en fonction des parts de marché, ou peut-être parce que Microsoft a une expérience non nulle dans le développement sous OSX.
Quand à Linux… Je ne sais pas ce qu'il en est réellement. (Mon avis c'est que c'est le bordel au niveau des technologies et que ça aurait été un investissement non rentable pour Microsoft compte tenu que leur nom n'est pas vraiment apprécié par les gnous extrémistes de la FSF et qu'ils ne possèdent pas à priori d'expérience dans le développement d'interfaces sous Linux)
Microsoft cherche à détruire Java depuis plus de dix ans, ça remonte au plus tard à quand ils ont fait une VM et un langage incompatible mais qu'ils ont appelé ça "Java". Cette base de code a formé la base de C# après que Sun ait, en gagnant le procès, interdit juridiquement à Microsoft (et pas juste dans la spec de la VM / librairie de classes) d'appeler "Java" un truc incompatible.
Truc incompatible peut être, mais Sun finira par cloner à peu près toutes les fonctionnalités de C# après sa sortie… Cela afin de combler les pertes de marchés que leur langage obsolète a subi à cause de leur débilité profonde.

(Et en l'occurrence, Microsoft ne peut détruire Java que sous Windows. Si cela doit se faire ailleurs, ça sera Novell qui s'en chargera… À moins que les choses changent d'ici là

)