Une mise a jour du blog de Kirill Grouchnikov sur un sujet non-lié a attiré mon attention sur cet article qui discute d'une révision de la JSR-270 : la possibilité d'avoir certaines API qui se verraient être retirées (javax.sound.midi pour ne citer qu’elle) du JRE (pas du JDK, ce que Kirill Grouchnikov remarque correctement car cela semble idiot).
Le principe d'avoir un JRE plus léger ne me répugne pas du tout, au contraire. L’un des arguments avancé par certains vient du fait que des programmes genre Flash demandent une installation bien plus légère coté client que Java pour avoir un résultat final similaire. Et donc qu’en améliorant "l’expérience utilisateur" (plus rapide et moins d’étapes) lors de la phase d’installation initiale on améliorerait la perception de Java (que certains utilisateurs moyens peuvent considérer comme "pénible" à installer/mettre en œuvre par rapport à d’autres technologies).
L’idée est très bonne en soit, simplement il faudrait que Sun pense à quelques petites choses supplémentaires, histoire de faciliter la vie de ses utilisateurs, avant de se lancer dans ce genre d'actions :
1) Rendre l'accès aux extensions plus aisé pour l’utilisateur novice ! C’était déjà le bazar auparavant (trop de sous-sites séparés tous avec des présentations différentes et des procédures d’installation différentes pour chaque extension), mais depuis que le site de Java a été redésigné c’est en fait plus difficile de trouver les sites des extensions que l’on cherche (... quand on a reussit à déterminer laquelle on cherche...).
2) Pour l’utilisateur lambda Windows (et/ou Mac – comment faire sur Mac d’ailleurs ? Apple fournit ces extensions ?) avoir des installeurs pour la plupart de ces extensions qui copieraient les JAR et DLLs fournis dans les répertoires bin et lib/ext des JRE appropriés (public et privés -notamment si le JDK est installé en plus du JRE, reps pour le repertoire src et doc du JDK quand l'extension est fournie avec sa doc et ses sources), plutôt que de simple fichiers ZIP dont le péquin commun ne sait pas quoi faire. Bref uniformiser et bien mieux automatiser les procédures d’installation.
3) Faire que le JRE soit capable d’aller télécharger de lui-même l’extension appropriée quand cela est nécessaire (idem pour l’installation quand un JDK est présent). Maintenant il est prévu/envisagé que dans le futur on ait un JRE allégé/minimal qui soit capable d’aller les lib requises quand nécessaire ; cela serait bien si cela fonctionnait avec toutes les extensions javax.
4) En plus du JRE allégé, fournir au contraire une distribution du JRE complète contenant toutes les extensions* (stables) pour la plateforme choisie (JavaHelp, Beans activation Framework, JavaMail, JAI, JMF, Java3D, etc…). Par exemple dans la zone où je suis qui peut encore être considérée comme le tiers-monde d’Internet on a pas des débits rapides et on n’est pas non-plus connecté en permanence au Net ; il est plus préférable de récupérer une grosse installation en une seule fois (surtout que le JRE complet ne serait pas si gros que ca) que des tas de petits paquets séparés à droite et à gauche. Un point de téléchargement unique et centralisé est nécessaire.
La connexion de la Nouvelle-Calédonie au reste du monde est certes lente mais stable et surtout continue (l'ile est connectée en permanence sauf problème satellitaire) et notre situation devrait s’améliorer courant l’an prochain (tirage d’un cable vers l’Australie) MAIS on ne peut pas du tout dire la même chose des autres pays/etats/archipels/iles de la région (et ca doit être similaire en Afrique et dans certains pays/régions d’Asie ou d’Amérique du Sud). => Bref au niveau connexion, le reste du monde n’est pas au niveau des USA, de l’Europe ou du Japon…
*Je sais que le principal problème empêchant cela vient du fait que les extensions ont des cycles de développement différents et séparés des classes Core/faisant parties du JRE.
5) Lors d’une mise-à-jour du JRE/JDK, notamment par le processus de mise-à-jour intégré, penser à importer les extensions vers la nouvelle version de la JVM (...). C’est encore le fout@!!@ à ce niveau il faut tout déplacer soi-même (en se souvenant que certaines ont des JAR mais aussi des DLLs a déplacer...). Encore une fois l’utilisateur moyen ne comprend pas grand chose à tout ceci.
Note : d’ailleurs un jour il faudrait qu’ils changent le procéder de mise-à-jour pour que celui-ci demander à l’utilisateur s’il veut garder ou supprimer ses anciens JVM (…).
Voilà mon avis sur les effets engendrés par cette révision de la JSR. Maintenant si Gfx pouvait donner son avis et/ou transmettre s’il trouve que je ne raconte pas trop d’âneries.
Partager