Devoxx 2011 : Joshua Bloch se livre à une critique de Java

Alors que la conférence aborde historiquement les bons cotés du langage, l'ingénieur de Google a choisi de livrer lors de sa présentation une critique de Java, 15 ans après la sortie de sa première version.

Java: The Good, the Bad, and the Ugly Parts par Joshua Bloch de chez Google

Alors que la conférence aborde historiquement les bons côtés du langage, l'ingénieur de Google a choisi de livrer lors de sa présentation une critique de Java, 15 ans après la sortie de sa première version.

Java: The Good, the Bad, and the Ugly Parts

C’est sans grande surprise que Joshua Bloch a fait salle comble de la plus grande salle de conférence du salon DEVOXX 2011.
Ayant pour habitude d’entendre parler des bons côtés de Java, surtout lors de Devoxx, Joshua Bloch a choisi de surprendre son auditoire et de livrer une critique du langage dont la première version remonte à 1996.

Ainsi est-il revenu sur les aspects qui font son succès :

  • Pas de gestion de la mémoire par les développeurs, c'est la VM qui s'en occupe.
  • Types primitifs entièrement spécifiés : pas de mauvaise surprise en passant d'une plate-forme à l'autre comme il pourrait y en avoir en C.
  • Ordre d'évaluation des expressions constant : de gauche à droite.
  • liaison dynamique permettant de remplacer une librairie par une autre sans nécessairement recompiler, hormis pour les constantes, on y vient !
  • Syntaxe proche du C. Par conséquent, facilement accessible pour nombre de développeurs.
  • Typage fort des données permettant de détecter des erreurs à la compilation, de faciliter l'analyse de code, l'auto-complétion par les IDE, etc.
  • Notion de Threads présente dès la conception du langage.
  • Absence de macros et de surcharge d'opérateurs rendant les codes sources relativement similaires et compréhensibles par quiconque.
  • Absence d'héritage multiple mais possibilité d'implémenter plusieurs interfaces.
  • Déclarations, implémentation et documentation regroupées au même emplacement du code.

Puis Joshua Bloch est passé à une critique du langage en évoquant ce qui implicitement donne lieu à d'improbables Java Puzzlers, objets de certifications Java :

  • Ajout par défaut de constructeurs.
  • Conversion et cast automatique de certains types de données avec éventuelle perte de précision.
  • Substitution des valeurs constantes à la compilation qui casse l'aspect liaison dynamique mentionné précédemment.
  • Absence de types int et long non signés.
  • Absence de méthode toString() sur les tableaux, Etc…

Voilà pour les aspects généraux, après quoi Joshua a passé en revue 135 classes et interfaces constituant le premier Java en soulignant les bons côtés en les moins bons.
Il apparait donc que Java s'est imposé à un moment où il fut moins complexe que C++ et plus puissant que C. Les points forts du langage résident dans le design même de ce langage alors que les points faibles restent cantonnés à des détails plutôt techniques.
Java évolue, comme avec l'introduction de StringBuilder par exemple, pour palier à certains choix initiaux critiquables. Reste à savoir quand sera prise la courageuse décision d'abandonner toutes les classes des premiers jours devenues obsolètes et dont le maintien alourdi le langage au fil du temps.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.