Ich habe gesehen, dass Java 1.2 auch als Java 2 bekannt ist. Verweisen "Java 1.x" und "Java x" (zum Beispiel "Java 1.6" und "Java 6") auf dieselbe Java-Version?
Und wenn ja, warum ist diese Dualität notwendig?
java
history
versioning
product-names
Federico Zancan
quelle
quelle
Antworten:
Sun Microsystems hatte damals die schlechte Angewohnheit, zahlreiche Namensänderungen für seine Produkte vorzunehmen und zunächst verwirrende Namen zu verwenden.
Was ist in einem Namen oder was bedeutet "Java"?
Ursprünglich wurde der Begriff "Java" verwendet, um unterschiedslos zu beschreiben:
Interne und externe Nummer
Was die Versionsnummern betrifft, so wurde darauf hingewiesen, dass dies zum Teil aus Marketinggründen und zum Teil nur aus Gründen des Fortschritts von Java geschah. Ein umfangreiches Versions-Upgrade war besser geeignet (für Java 1.2 / Java 2 und für Java 1.5 / Java) 5).
Was wir Java 2 nennen, war Java 1.2 bis 1.4. Java 3 und Java 4 gab es nie, und wir sind direkt zu Java 5 übergegangen, da hier versucht wurde, dies zu erklären (ab dieser Seite zur Benennung und Versionierung ).
Ich war wahrscheinlich auch ein wenig in der Lage, mich nicht an der internen Nummerierung zu stören, die in ihren Tracking- und Entwicklungssystemen verwendet wird. Ich neige dazu, es als 1.x = Sprachversion und X = Sprach- und Produktversion zu betrachten. Dies ist sinnvoll, da sich normale Benutzer nicht um geringfügige Inkremente und Aktualisierungen kümmern müssen, da sie zu automatischen Aktualisierungen auffordern und diese keine Änderungen an der Sprache oder dem Bytecode hervorrufen sollten.
Beachten Sie auch, dass es seltsamer wird, wenn Sie kleinere Versionen und Aktualisierungsnummern betrachten. Zum Beispiel hatten wir Java 1.3.1 und später Java 1.4.1 und 1.4.2.
Aktualisierung
Es gab jedoch keine 1.xy seitdem, es war immer 1.x.0_UPDATE:
Beachten Sie auch, dass Sie auch Aktualisierungen sehen, auf die mit einer der folgenden Namenskonventionen verwiesen wird:
Und um noch mehr Verwirrung zu stiften und mit der Tradition von Sun Microsystems Schritt zu halten, gibt Oracle solche Ankündigungen ab.
Produktnamen
Beachten Sie auch, dass sie es sich nicht nur zur Gewohnheit gemacht haben, die Nummerierung, sondern auch die Namen der Produktangebote zu ändern. Java 2 hat also J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) und J2ME (Java 2 Mobile Edition). Seit der Einführung von Java 5 wurden diese Konventionen und Akronyme zugunsten von Java SE, Java EE und Java ME gestrichen (obwohl einige eine unglaublich lange Ausfallsicherheit aufweisen, hauptsächlich dank dummer Personalagenturen, die keine Ahnung haben, wovon sie sprechen) , die manchmal mit JSE, JEE (ziemlich häufig) und JME abgekürzt werden - aber offiziell nicht sollten.
Auf dieser Seite finden Sie weitere Informationen zum aktuellen Versionssystem, das von Sun Microsystems und jetzt Oracle seit Java 1.3.1 verwendet wird .
(Um Bonuspunkte zu erhalten, versuchen Sie, die Geschichte von NetBeans nachzuschlagen, um festzustellen, dass sie auch einige Male umbenannt wurde.)
Sie kennen sich nicht
Sie haben auch Schwierigkeiten zu entscheiden, ob sie vorhandene Referenzen aktualisieren sollen oder nicht. Zum Beispiel diese Seite über ältere Versionen verwendet das alte Nummerierungssystem für alte Versionen, aber die neueren Produktnamen (Java SE 1.1, 1.2, 1.3 und 1.4 wurden nicht mit dieser Namenskonvention veröffentlicht).
Vielleicht machen sie nur Spaß mit uns. Wer weiß?
Was ist mit JVMS und JLS?
Natürlich hatten sie auch dort Spaß beim Benennen und Nummerieren.
Die Java-Sprachspezifikation wurde früher mit einem Buch "Edition" -Versionssystem veröffentlicht, das die folgenden Produktnummern enthält. Damit:
So weit, ist es gut.
Mit der Ausnahme, dass die "Java-Sprachspezifikation" später erst überarbeitet wurde, als Sprachänderungen in Java 5 eingeführt wurden (was Sinn macht, Sie werden neue Bucheditionen nicht nur zum Spaß veröffentlichen). Da dies das dritte Mal war, dass sie es bearbeiteten, nannten sie es (tada!) "Java Langauge Specification, 3rd edition".
Aber offensichtlich fragten sich die Leute, warum 1.3 und 1.4 keine Sprachspezifikation hatten oder warum Java 5 mit einer 3. Ausgabe der Sprachspezifikation abgeglichen wurde.
Java 7 nennt es jetzt einfach "Java Language Specification, Java SE 7 Edition", obwohl wir es häufig als JLS7 bezeichnen, um Abkürzungen zu verwenden und RSI zu vermeiden.
Sie sind nicht die Einzigen ...
Für zusätzlichen Spaß schauen Sie sich die Namensfehler von Microsoft Windows RT oder den Wahnsinn von Apple bei der Benennung und Nummerierung von iPhones, iPads oder sogar iPods an.
quelle
Die kurze Antwort: Marketing.
Eine längere Antwort: Die Kurzform (z. B. Java 6) ist die sogenannte "Produktversion" und beschreibt, wie Java an Benutzer und in Pressemitteilungen usw. vermarktet wird.
Die längere Form (zB Java 1.6.0) ist die "Entwicklerversion". Es wird intern verwendet und wird auch von Java-Entwicklern verwendet (z. B. Die
java.version
Systemeigenschaft verwendet die Langform).Weitere Informationen finden Sie auf diesen Seiten:
quelle
Weil das Buch mit dem Titel "Learn Shiny New Java 3" früher ausverkauft ist als das Buch mit dem Titel "What's new in Java 1.3".
Also ja, es sind hauptsächlich Marketinggründe. Andererseits sehe ich hier kein schweres Verbrechen. Schließlich wird in einigen Produkten wie Mozilla oder Chrome die Haupt-Build-Nummer ständig erhöht, und andere bleiben bei der Erhöhung der Neben-Build-Nummer, obwohl manchmal mit jeder neuen Version große Änderungen einhergehen.
Einige, wie Apple, möchten uns nicht verlassen, Benutzer mit langweiligen Namen wie "Mac OS 10.6".
Und früher war Sun mit N-Alias einverstanden, anstatt das Release "Java Green Diplodocus" einzuführen.
quelle
TheServerSide erklärt den Wechsel von "Java 1.x" zu "Java x" wie folgt :
Hinweis Link im obigen Zitat wird von Oracle getötet . Soweit ich das beurteilen kann, ist es bei prnewswire erhältlich :
Der Vollständigkeit halber sei angemerkt, dass der 1.X-Versionsstil nicht vollständig entfernt wurde .
Beachten Sie auch, dass der in den Kommentaren erwähnte Begriff "J2SE" später in "Java SE" geändert wurde.
quelle