dimanche 13 mai 2012

Réflexions sur Java

Je me pose des questions depuis quelques temps sur le langage Java et son avenir.

Java est un langage populaire qui longtemps été en tête du classement TIOBE. Il est enseigné en fac et en école d'ingénieur. J'ai moi-même découvert la programmation orientée objet avec ce langage, même si je n'y comprenais pas grand chose à l'époque (ce qui ne m'a pas empêché d'avoir une note plutôt bonne cependant). Beaucoup d'offres d'emploi en France en SSII concernent les développeurs Java. Enfin, de nombreux frameworks et libraries open source existent pour ce langage qui se prête bien à de nombreux usages.

Toutefois, sa popularité diminue, il est passé second dans TIOBE, étrangement au profit du C ! Pourquoi ?

Peut-être parce que le langage évolue peu. La version 1.6 a duré très longtemps, plus de quatre ans et demi et la version 1.7 n'apporte finalement que peu de nouveautés. La syntaxe du langage le rend fortement verbeux, ce qui est fatiguant à la longue et nuit à la lisibilité du code. On peut le dire, le code Java est un code laid.

Enfin, tout un cérémonial est à réaliser pour construire la moindre application. Même si des outils comme Maven améliorent les choses, on est loin de ce que peut offrir les langages interprétés. Et puis le lancement de la JVM, c'est d'un long !

Le long temps de présence de Java 1.6 l'a fait passer à côté de nombreux nouveaux paradigmes programmation, apportés par les langages dynamiques ou le revival de la programmation fonctionnelle et il semble que le langage ne puisse plus suivre. Cette situation a profité à de nombreux langages tournant même sur la JVM et bousculant l'ordre établi du monde Java : Groovy, Scala, Clojure et plus récemment Kotlin ou Ceylon mais aussi jRuby ou Jython.

La JVM devient un runtime pour d'autre langage. C'est quelque chose qu'elle fait même plutôt bien : pour preuve, jRuby est citée comme l'implémentation la plus performante du langage.

Dans ces conditions, on est en droit de se demander si le langage Java est en déclin et sera amené à disparaître à moyen terme. Y a-t-il encore de l'intérêt de coder en Java aujourd'hui ?

Je pense que Java va tenir sur sa popularité, sur le fait que de nombreux développeurs ont trop de flemme pour apprendre d'autres langages. Et que les javaistes hardcore pensent parfois que les autres langages sont de toute façon réservés au mécréants ! Dommage, il y a tellement de belles choses à côté !

Sur ce, je retourne voir ce qu'il se fait de neuf en Java. Et oui, il faut bien manger !

...

Je dis ça mais en ce moment, je suis plutôt sur du bon vieux PL/SQL... Je vais m'abstenir de toute réflexion sur ce langage !