Ajouter un commentaire

Pour déveloper en C# et Java depuis des années, je suis bien obligé d'admettre que aujourd'hui le langage C# est loin devant Java. Même si Microsoft est parti avec un handicap de 10 ans entre la sortie de Java 1.0 et .NET 1.0, ils ont largement rattrapé le coup depuis l'âge d'or de Java 1.4.

La sortie coup sur coup de .NET 3.0 et .NET 3.5, challengers sérieux de Java 6, ont apporté les plus importantes features du langage java au monde .NET, tout en introduisant des nouveautés décisives. Depuis java n'est plus le langage intouchable qu'il pouvait être avant. Malgré les efforts des versions 7 et 8 pour ne pas se laisser distancer, le langage C# possède un autre rythme et d'autres moyens. Les nouveautés Java sont absorbées par .NET en moins de 2 ans alors que des fonctionnalités majeures de .NET sont toujours des exclusivités Microsoft après 10 ans : delegate, Linq, yield return, WPF. D'autres comme les lambdas ou les Optional<> apparaissent enfin dans le monde java, mais Microsoft a déjà sorti 3 nouveautés pour chaque feature enfin portée. L'effort semble dérisoire ...

Les atouts de java sur .NET se sont réduits à peau de chagrin, et même son argument numéro 1 -- sa légendaire interopérabilité -- est désormais attaqué par la nouvelle politique de Microsoft consistant à ouvrir le framework à l'ensemble des systèmes d'exploitation. Ce n'est pas encore fait, bien sûr, mais un réussite semble crédible de la part d'un éditeur qui a réussi à imposer son rythme. Car .NET prend sérieusement l'initiative depuis le Framework 4.0, et on se demande si java proposera un jour des paramètres nommés pour faciliter la relecture du code, un pattern async/await pour des développements asynchrones faciles, ou encore le très demandé opérateur de propagation de null avec lequel programmer devient un vrai plaisir, et qui est susceptible de ranger les NullReferenceExceptions au placard comme java l'avait fait, via son code managé, avec le segfault il y a 20 ans.

Bref, rien ne sert de partir à point, il faut courrir.

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 III  BBBB    CCC  L      SSS  
I B B C L S
I BBBB C L SSS
I B B C L S
III BBBB CCC LLLL SSSS