• [^] # Re: java

    Posté par . En réponse au journal numérotation (version) d'application. Évalué à 3.

    Juste parce que je n'aime pas trop le raccourci induit par l'utilisation du signe égal, je développe un peu ton explication :

    D'un côté il y a le _langage_ Java, de l'autre les outils : jdk/sdk (development kit), jre (runtime environment).

    1. Dénomination « Java ».

    Le langage Java a été défini dans The Java Language Specification.
    Le « 1 » n'est jamais donné avant la sortie du « 2 », il n'est donné que pour le différencier, a posteriori.

    Les jdk/jre qui permettent d'utiliser ce langage sont les versions 1.0.x et 1.1.x (les 1.1x diffèrent dans l'api standard, notamment la gestion des évènements dans les interfaces utilisateur).

    2. Dénomination « Java 2 ».

    Il n'y a en fait pas eu beaucoup de modifications au langage lui-même, mais l'api standard a intégré Swing et le modèle sand-box des applets/applications a changé (avant : applet signée ou pas, après : + gestionnaire de sécurité avec des droits bien découpés (policy...)).

    Les sdk/jre correspondants sont les 1.2.x, 1.3.x et 1.4.x. Entre 1.2 et 1.3, des modifications de JVM. Entre 1.3 et 1.4, beaucoup de nouvelles api standards (regexp, log, xml...).

    On peut aussi noter l'apparition du mot-clef assert dans le 1.4 (avec la possibilité de l'activer/le désactiver par package).

    3. Dénomination « Java 5 ».

    Grosses modifications du langage : génériques, énumérations, autoboxing, annotations, nouveau for, import static...

    sdk/jre : 1.5.x

    Conclusion

    En fait, comme tu le dis, on peut penser que le 2 du Java 2, c'était surtout pour faire comprendre que les outils étaient débarassés des problèmes de jeunesse des précédentes versions et aussi un pour dire que le langage était stable (cf. le gros décalage d'api entre 1.0 - 1.1 (awt) et 1.1 - 1.2 (Swing)).