Le symposium Lang.NET 2008  achevé, faisons le point sur les annonces et perspectives sur les langages Java et .Net.

.Net C#, VB, C++ versus "Java sinon rien"

Les détracteurs du langage Java sont de plus en plus nombreux, non pas que Java soit dépassé, mais plutôt parce que le concept de machine virtuelle (JVM) proposé par SUN dès 1995 ne laisse pas la possibilité de choisir un autre langage. Bref, c'est Java sinon rien ! En effet, la JVM permet l' exécution d'un code compilé (Java bytecode) provenant d'un et un seul langage : Java.

A contrario, Microsoft a proposé dès la première version de l'environnement .Net, une machine virtuelle (CLR - Common Language Runtime) capable d' exécuter un code compilé (IL - Intermediate Langage) provenant d'un ou plusieurs langages répondant aux Common Langage Specifications (voir ECMA) : C#, VB.Net, C++ managé supportés par Microsoft et Delphi, Cobol ... promus par des partenaires.

Des runtimes pour supporter les langages dynamiques

Ces 2 dernières années ont vu l'émergence de nouveaux langages, qualifiés de dynamiques. Ceux-ci ont été intégrés à l' environnement d' exécution Microsoft .Net en Avril 2007 grâce à une couche dédiée à la mise en oeuvre des fonctionnalités dynamiques de ces langages. Il s'agit du Dynamic Langage Runtime  (DLR). Pour information, les travaux sur la DLR ont été initié par Jim Hugunin, à l'origine de IronPython, qui souhaitait faire bénéficier de son expérience les futurs concepteurs de langages dynamiques. La DLR est populaire sur la plate-forme Microsoft .Net, non seulement au travers des langages dynamiques qui l'exploitent (Python, Ruby) mais aussi parce que Microsoft propose la DLR sur plusieurs envrironnements d'exécution grâce à la technologie SilverLight (à explorer au travers de cet article MSDN : les coulisses de la CLR : DLR et SilverLight, DLRConsole).

Côté Java, les développeurs ne sont pas en reste puisque certaines communautés n'ont pas attendu pour implémenter des langages dynamiques (JRuby, JPython notamment). En l'absence de DLR, ces implémentations sont complexes à réaliser. C'est ce que constate SUN en lançant le projet "Da Vinci Machine" qui vise à compléter la JVM de capacités dynamiques.

Perspective

Tirons partir de l'expérience de .Net en ce domaine. En effet, le projet Ruby.Net vient d'être abandonné par son créateur (annonce du 4 février) parce que celui-ci a pu constater que la DLR permettait d'implémenter Ruby de façon plus robuste et performante. Ruby.Net laisse donc la place à l'implémentation IronRuby qui repose sur la DLR (tout comme IronPython).

Dans ce contexte que deviendront JRuby et JPython si le projet Da Vinci Machine porte ses fruits ? Seront-ils abandonnés au profilt d'un "Wood"Ruby ou d'un "Wood"Python reposant sur la Da Vinci Machine. Dans tous les cas, ils seraient intéressants que les concepteurs de JRuby et JPython participent au projet initié par SUN, pour faire profiter la communauté de leur expérience à l'image de la contribution de Jim Hugunin vers la CLR.