Pourquoi Java version 1.X est-il appelé Java X?

58

J'ai vu que Java 1.2 est également appelé Java 2. Est-ce que "Java 1.x" et "Java x" (par exemple "Java 1.6" et "Java 6") font référence à la même version de Java?

Et si oui, pourquoi le besoin de cette dualité?

Federico Zancan
la source
7
Des raisons marketing?
14
Encore mieux que Mozilla Firefox. 10+ versions majeures en moins de deux ans.
Andrzej Bobak
2
Oui, des raisons de marketing. Cette question SO concerne le même sujet.
Joachim Sauer
2
On pourrait le formuler différemment: Pourquoi Sun (et maintenant Oracle) ont-ils publié des mises à jour majeures (Java 5, 6, 7 et bientôt 8) en tant que versions ponctuelles (1.5, 1.6, 1.7 et bientôt 1.8)?
Joachim Sauer
3
@AndrzejBobak Google Chrome est pire, il approche de 20 versions dans 2 ans
Izkata

Réponses:

64

À l’époque, Sun Microsystems avait la mauvaise habitude de procéder à de nombreux changements de nom pour ses produits et de commencer par utiliser un nom déroutant.

Que contient un nom ou que signifie "Java"?

A l'origine, le terme "Java" était utilisé pour décrire indifféremment:

  • la langue ,
  • la plate - forme ,
  • et quelques autres se sont référés à la JVM et à la librairie de classes Java en tant que Java également.

Numéro interne et externe

En ce qui concerne les numéros de version, comme d'autres l'ont fait remarquer, c'était en partie à cause du marketing et parce qu'ils avaient simplement l'impression que Java avait fait de tels progrès, une mise à niveau majeure de la version convenait mieux (pour Java 1.2 / Java 2 et lorsque 5)

Donc, ce que nous appelons Java 2 était en réalité Java 1.2 à 1.4. Java 3 et Java 4 n’ont jamais existé et nous sommes passés directement à Java 5, comme ils ont essayé d’expliquer ici (à partir de cette page sur la dénomination et la gestion des versions ).

J'étais probablement aussi un peu trop pour ne pas déranger avec leur numérotation interne utilisée dans leurs systèmes de suivi et de développement. J'ai tendance à penser que c'est 1.x = version linguistique et X = langue et version du produit. Cela a du sens, étant donné que les utilisateurs normaux n’ont pas à s’inquiéter d’incréments et de mises à jour mineurs, car ils encouragent les mises à jour automatiques, et que celles-ci ne doivent pas introduire de modifications dans la langue ou le bytecode.

Notez également que cela devient plus étrange lorsque vous examinez des versions mineures et mettez à jour des nombres. Par exemple, nous avions Java 1.3.1 et plus tard Java 1.4.1 et 1.4.2.

Mises à jour

Cependant, il n'y a plus eu de 1.xy depuis, cela a toujours été 1.x.0_UPDATE:

Notez également que vous verrez également les mises à jour référencées avec l'une de ces conventions de dénomination:

  • comme 1.5.0_22 ou 1.7.0_04 (notez les 0 de remplissage dans la version de mise à jour, en vous alignant sur 2 chiffres),
  • mais aussi 1.5.0u22 ou 1.7.0u4 (notez que les 0 de remplissage sont partis, yay!).

Et pour plus de confusion et pour suivre la tradition de Sun Microsystems, Oracle supprime maintenant les annonces de ce type.

Noms de produits

Notez également que non seulement ils ont pris l’habitude de changer la numérotation, mais également les noms des offres de produits. Ainsi, Java 2 est doté de J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) et J2ME (Java 2 Mobile Edition). Depuis l'introduction de Java 5, ces conventions et acronymes ont été abandonnés (bien que certains aient une résistance incroyablement longue, surtout grâce aux agences de recrutement stupides qui n'ont aucune idée de quoi elles parlent) en faveur de Java SE, Java EE et Java ME. , qui sont parfois abrégés - mais ne devraient pas officiellement - JSE, JEE (assez commun) et JME.

Vous avez lu cette page pour plus d’informations sur le système de gestion de version utilisé par Sun Microsystems et maintenant Oracle depuis Java 1.3.1 .

(Pour les points bonus, essayez de consulter l'historique de NetBeans maintenant pour voir qu'il a également été renommé plusieurs fois).

Ils ne se connaissent pas

Ils ont également du mal à décider s’ils doivent ou non mettre à jour en arrière les références existantes. Par exemple, cette page sur les anciennes versions utilise l'ancien système de numérotation, mais les nouveaux noms de produits (Java SE 1.1, 1.2, 1.3 et 1.4 n'ont pas été publiés avec cette convention de dénomination).

Peut-être qu'ils ne font que baiser avec nous pour le plaisir. Qui sait?

Qu'en est-il du JVMS et du JLS?

Bien sûr, ils se sont amusés à nommer et à numéroter.

La spécification du langage Java utilisé pour être publié avec un livre « édition » versioning systè ,, suivant les numéros de produit. Alors:

  • Java 1 avait sa "spécification de langage Java",
  • Java 2 avait sa "spécification de langage Java, 2e édition".

Jusqu'ici tout va bien.

Sauf que la "spécification du langage Java" n'a été rééditée que lorsque des modifications de langue ont été introduites dans Java 5 (ce qui a du sens, vous ne publierez pas de nouvelles éditions de livres juste pour le plaisir). Comme c'était la 3ème fois qu'ils l'éditaient, ils l'appelaient (tada!) "Java Langauge Specification, 3ème édition".

Mais de toute évidence, les gens se sont alors demandé pourquoi les versions 1.3 et 1.4 n'avaient pas de spécification de langage ou pourquoi Java 5 était associé à une 3e édition de la spécification de langage.

Ainsi, Java 7 l’appelle maintenant simplement "Spécification du langage Java, édition Java SE 7", bien que nous nous référions souvent à celui-ci sous le nom JLS7 pour le raccourci et pour éviter RSI.


Ils ne sont pas les seuls ...

Pour plus de plaisir, regardez l'échec d'attribution de noms de Microsoft Windows RT, ou la folie de nommage et de numérotation d'Apple avec un iPhone, un iPad ou même un iPod.

haylem
la source
"notez les derniers 0" Que sont les derniers?
Samuel Edwin Ward
@SamuelEdwinWard: désolé, confusion de la langue là-bas. Je veux dire le préfixe 0 après le _ entre le numéro de version et le numéro de mise à jour.
Hayem
Je ne pense pas vraiment que ce soit ce que Porte-Manteau ou Portmanteau signifie.
Grady Player
@GradyPlayer: vous avez parfaitement raison, en fait. Merci d'avoir fait remarquer cela. (edit: mis à jour l'en-tête, c'était vraiment idiot de ma part).
Hayem
5

La réponse courte: le marketing.

Une réponse plus longue: la forme abrégée (par exemple, Java 6) correspond à la "version du produit" et représente la manière dont Java est commercialisé auprès des utilisateurs et des communiqués de presse, etc.

La forme la plus longue (par exemple, Java 1.6.0) est la "version pour développeur". Il est utilisé en interne et sera également rencontré par les développeurs Java (par exemple java.version, la propriété système utilise la forme longue).

Voir ces pages pour plus d'informations:

GénériqueJon
la source
2

Parce que le livre intitulé "Learn Shiny New Java 3" sera épuisé avant le livre intitulé "Quoi de neuf dans Java 1.3".

Alors oui, ce sont principalement des raisons de marketing. Par contre, je ne vois pas de crime grave ici. Après tout, dans certains produits, tels que Mozilla ou Chrome, le nombre de versions majeures est constamment incrémenté, tandis que d’autres s’en tiennent au nombre de versions mineures, bien que, parfois, de grandes modifications apparaissent à chaque nouvelle version.

Certains, comme Apple, ne veulent pas nous laisser, utilisateurs, avec des noms ternes comme "Mac OS 10.6".

Et auparavant, OK acceptait N alias au lieu d’introduire la version "Java Green Diplodocus".

shabunc
la source
4
Sidenote: il n'y a jamais eu de Java 3, c'était Java 2 SE 1.3 (ou J2SE 1.3). Seulement avec Java 1.5 / 5.0 / 5 ils se sont débarrassés des nombres "1.x" dans le marketing. Oui, même si Java 1.2 (et 1.3 et 1.4!) S'appelait "Java 2" ... marketing, yay!
Joachim Sauer
1

TheServerSide explique comment passer de "Java 1.x" à "Java x" comme suit :

Sun a coupé le "1" changer J2SE 1.5.0 en J2SE 5.0. La raison du changement? Sun affirme qu'il "s'agit de la mise à niveau la plus importante de la plate-forme Java et du langage de programmation Java depuis sa publication initiale il y a près de dix ans", et que cette version en vaut la peine.

Apparemment, il y avait des pourparlers pour renommer "J5SE", mais on pensait que la marque J2EE signifiait trop pour changer.

Les numéros de version ne sont-ils pas amusants?

Lire le communiqué de presse: Sun présente la version la plus importante et la plus avancée de la plate-forme Java depuis 5 ans

Le lien de note dans la citation ci-dessus est tué par Oracle . Autant que je sache , il est disponible sur prnewswire :

Sun Microsystems, Inc. (Nasdaq: SUNW), créateur
et principal défenseur de la technologie Java (TM), a présenté aujourd'hui la plate-forme Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, la plus importante mise à niveau à la plate-
forme Java et au langage de programmation depuis sa première publication il y a près de dix
ans. Connue sous le nom de Project Tiger, cette plate-forme Java mise à jour offre une grande facilité
de développement, de nouvelles fonctionnalités de surveillance et de gestion des applications, un
focus dédié sur la prise en charge de clients riches pour le bureau PC et des
performances sans précédent ...


Par souci d'exhaustivité, notez que le style de version 1.X n'a pas été complètement supprimé .

"Version 1.5.0" utilisé par les développeurs

J2SE conserve également le numéro de version 1.5.0 (ou 1.5) à certains endroits uniquement visibles pour les développeurs ou lorsque le numéro de version est analysé par les programmes. Comme mentionné, 1.5.0 fait référence à la même plate-forme et à des produits numérotés 5.0 ...

Notez également que, comme indiqué dans les commentaires, le terme "J2SE" utilisé ci-dessus a été remplacé par "Java SE".

moucheron
la source
4
Heureusement, ils ont abandonné les noms "J2SE" (et plus tard "J2EE") au profit de "Java SE" et "Java EE". "J2SE 5.0" était juste stupide.
Joachim Sauer