Y'a deux pauvres sous systèmes qui évolue à chaque release tout les 2/3 ans. On rajoute les features qu'il manque mais absolument rien au niveau expressivité et productivité générale. On va quand même pas se tripoter sur les NIO2 qui ne font que combler une vaste blague !
mais ça n'a rien à voir avec la compatibilité.
Voilà tu as tout compris. On peut bouger pour devenir meilleur. Java l'a oublié pendant 7 ans. Il comble ses trous fonctionnels mais ne fait plus rien d'autre. Les API merdiques restes merdiques. Et on ne pousse rien d'un peu novateur pour chercher à rendre la plateforme meilleure, on laisse ca à groovy, scala ou clojure et aux libs externes et c'est bien dommage… Ca donne des débilités comme le système de logging, junit, devoir utiliser guava pour avoir des collections correctes, un pauvre multimap ou de bêtes outils pour bosser sur des les iterateurs.
Par contre le problème de garder toutes les APIs c'est que tu fais rapidement exploser la complexité et la taille du bouzin. Par exemple l'algorithme derrière le hashcode de String a été documenté du coup on peut plus le changer. Maintenant on en arrive à des patchs comme ca pour limiter le nombre de collision dans les collections. Et évidement comme toujours on balance une property système pour activer/désactiver la nouvelle fonctionnalité ce qui donne à terme une complexité folle pour les utilisateurs.
[^] # Re: Usine
Posté par ckyl . En réponse à la dépêche Nouvelle version de Scub Foundation, usine logicielle Java libre. Évalué à 4.
Y'a deux pauvres sous systèmes qui évolue à chaque release tout les 2/3 ans. On rajoute les features qu'il manque mais absolument rien au niveau expressivité et productivité générale. On va quand même pas se tripoter sur les NIO2 qui ne font que combler une vaste blague !
Voilà tu as tout compris. On peut bouger pour devenir meilleur. Java l'a oublié pendant 7 ans. Il comble ses trous fonctionnels mais ne fait plus rien d'autre. Les API merdiques restes merdiques. Et on ne pousse rien d'un peu novateur pour chercher à rendre la plateforme meilleure, on laisse ca à groovy, scala ou clojure et aux libs externes et c'est bien dommage… Ca donne des débilités comme le système de logging, junit, devoir utiliser guava pour avoir des collections correctes, un pauvre multimap ou de bêtes outils pour bosser sur des les iterateurs.
Par contre le problème de garder toutes les APIs c'est que tu fais rapidement exploser la complexité et la taille du bouzin. Par exemple l'algorithme derrière le hashcode de String a été documenté du coup on peut plus le changer. Maintenant on en arrive à des patchs comme ca pour limiter le nombre de collision dans les collections. Et évidement comme toujours on balance une property système pour activer/désactiver la nouvelle fonctionnalité ce qui donne à terme une complexité folle pour les utilisateurs.
Si Java fait de gros effort pour la compatibilité j'ai l'impression que tu la surestimes beaucoup quand même. Avec une grosse base de code tu tombes souvent sur des changements dans les JDK (même en mineur):
http://www.oracle.com/technetwork/java/javase/compatibility-417013.html
http://www.oracle.com/technetwork/java/javase/compatibility-137541.html
http://www.oracle.com/technetwork/java/javase/compatibility-137462.html
Sachant que tu n'as pas tout là.
Citation needed.