En matière d'outils de développement, 2017 a vu à la fois la progression de langages récents et l’expansion de langages établis. Les développeurs ont suivi tout au long du premier semestre le feuilleton Java, émaillé de désaccords majeurs sur la modularisation de sa version standard, auquel a succédé le désengagement inattendu d’Oracle sur Java Enterprise Edition dont l’éditeur californien a finalement confié la gouvernance à la Fondation Eclipse. Parmi les évolutions saillantes de l’année, TypeScript – le langage open source développé par Microsoft – a gagné en popularité en venant simplifier la tâche des développeurs qui cherchaient une alternative à JavaScript. Tandis que, dans un tout autre domaine, Microsoft a lancé le langage Q# conçu pour son projet d’ordinateur quantique avec le lancement d'un kit de développement en décembre.
C’est en septembre que le JDK 9 a finalement été mis à disposition, après la résolution des querelles autour de sa complexe technologie de modularisation. Ce système de modules était destiné à améliorer la performance, l'évolutivité et la sécurité de l'édition standard de Java, mais des contributeurs majeurs du langage, tels que Red Hat et IBM étaient en désaccord avec Oracle sur la façon de le mettre en œuvre. Ils ont manifesté leurs préoccupations sur la compatibilité applicative et voté contre la proposition initiale. Un accord a finalement été trouvé pour que la version 9 de Java puisse sortir le 21 septembre 2017. Elle devrait être rapidement suivie du JDK 10, attendu pour mars 2018. Ce dernier proposera une interface pour gérer la récupération de mémoire (garbage collector) et l’inférence de type pour les variables locales. Du côté de Java EE, Oracle a cherché à apaiser la communauté Java, irritée par ce qu’elle ressentait comme de la négligence envers la plateforme Enterprise Edition de la part de l’éditeur il y a un an. En septembre 2016, Oracle avait présenté ses plans pour ré-outiller Java EE pour des environnements tels que le cloud. En août 2017, il a changé son fusil d’épaule en annonçant un transfert de gouvernance, mais en livrant tout de même la version 8 de Java EE (en même temps que Java 9) avec des fonctionnalités HTML5, http/2 et cloud
Les alternatives à JavaScript
Toujours pour les développeurs web, la version 4 du framework JavaScript Angular est sortie en mars, axée sur l’élaboration d’applications plus petite. Elle a été suivie en novembre d’Angular 5, qui optimise la production de builds, apporte le support des progressive web apps et utilise les composants Material Design de Google pour concevoir des interfaces utilisateurs. Entre les deux, la version 16 de React a été livrée en septembre. Le cœur de cette bibliothèque JavaScript de Facebook pour la création d’interfaces utilisateurs a été réécrit pour doper sa réactivité sur les applications complexes.
Cinq évolutions de TypeScript sur l'année
Du côté des développeurs préférant s’appuyer sur un langage typé plutôt que sur JavaScript, TypeScript de Microsoft a pris de l’ascendant. Ce sur-ensemble typé de JavaScript a connu plusieurs évolutions cette année. Entre février et novembre, cinq versions ont été livrées apportant successivement la compatibilité avec le framework React Native pour créer des apps mobiles natives (v.2.2), le support de générateurs et itérateurs ECMAScript pour la programmation asynchrone (v.2.3), l’appel asynchrone de modules sur conditions - dynamic import expressions – (v.2.4), des capacités pour simplifier les réécritures complexes (v.2.5) et, enfin, l’introduction des commentaires de suppression d’erreurs et strictFunctionTypes - permettant de repérer davantage d’erreurs communes - (v.2.6). TypeScript n’a pas été la seule alternative JavaScript à s’être fait remarquer cette année. On peut aussi se tourner vers le langage Go de Google, avec la bêta du compilateur Joy sortie de décembre qui doit permettre la cross-compilation.
Kotlin adoubé par Google en mai
Un autre langage permet une compilation en JavaScript – quoiqu’il ait démarré sur la JVM, il vient de s'en extraire -, c’est Kotlin qui a eu un certain succès en 2017. Il a bénéficié du soutien de Google qui l’a adoubé en mai pour la réalisation d’applications Android, jusqu’alors principalement du domaine de Java. Deux versions de Kotlin ont été livrées cette année. En mars, la 1.1 a offert le support de JavaScript, tandis que la 1.2 a apporté en novembre des capacités expérimentales pour réutiliser du code à travers différentes plateformes. Le support de Java 9 lui a aussi été ajouté.
Cap sur l'informatique quantique
En décembre, Microsoft a tenu les promesses qu’il avait faites sur l’informatique quantique avec le lancement de Q# (q sharp), un langage pour produire des algorithmes quantiques. Un ensemble de types primitifs est fourni avec des séries et des listes d’objets pour construire de nouveaux types structurés. Le langage fonctionne avec l’environnement de développement intégré Visual Studio et il est fourni avec un kit de développement quantique qui inclut un simulateur de calcul quantique, des bibliothèques et des exemples de programmes.
C++ poursuit sa route
Les langages installés poursuivent eux aussi leur évolution. C++ est notamment sorti dans une version 17 avec l’ambition affichée de simplifier son utilisation. Parmi les facilités apportées, les développeurs peuvent maintenant initialiser des variables avec les expressions if et switch de la même façon qu’ils le faisaient pour les boucles. La version 20 qui devrait être finalisée en 2020 (avec une première étape à l’été 2019) devrait inclure des améliorations sur les accès simultanés et les bibliothèques.