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?
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?
Antworten:
Sun Microsystems hatte damals die schlechte Angewohnheit, zahlreiche Namensänderungen für seine Produkte vorzunehmen und zunächst verwirrende Namen zu verwenden.
Ursprünglich wurde der Begriff "Java" verwendet, um unterschiedslos zu beschreiben:
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.
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.
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 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ß?
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.
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.
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:
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.
TheServerSide erklärt den Wechsel von "Java 1.x" zu "Java x" wie folgt :
Sonne hat die "1" abgeschnitten J2SE 1.5.0 auf J2SE 5.0 ändern. Der Grund für die Änderung? Sun behauptet, dass "dies das bedeutendste Upgrade der Java-Plattform und der Programmiersprache seit ihrer Erstveröffentlichung vor fast einem Jahrzehnt ist", und dass diese Version es wert ist.
Anscheinend gab es Gespräche, die in "J5SE" umbenannt werden sollten, aber es wurde angenommen, dass die Marke J2EE zu viel bedeutet, um geändert zu werden.
Machen Versionsnummern keinen Spaß?
Pressemitteilung lesen: Sun führt die bedeutendste und fortschrittlichste Java-Plattform-Version seit 5 Jahren ein
Hinweis Link im obigen Zitat wird von Oracle getötet . Soweit ich das beurteilen kann, ist es bei prnewswire erhältlich :
Sun Microsystems, Inc. (Nasdaq: SUNW), der Erfinder
und führende Verfechter der Java (TM) -Technologie, stellte heute die Java 2 Platform
Standard Edition (J2SE (TM)) 5.0 vor, das bedeutendste Upgrade der Java-
Plattform und der Programmiersprache seitdem seine erste Veröffentlichung vor fast einem Jahrzehnt
. Diese aktualisierte Java-Plattform, die als Project Tiger bekannt ist, bietet eine einfache
Entwicklung, neue Funktionen zur Anwendungsüberwachung und -verwaltung, eine umfassende
Client-Unterstützung für den PC-Desktop und eine rekordverdächtige
Leistung ...
Der Vollständigkeit halber sei angemerkt, dass der 1.X-Versionsstil nicht vollständig entfernt wurde .
"Version 1.5.0" Wird von Entwicklern verwendet
J2SE behält die Versionsnummer 1.5.0 (oder 1.5) auch an einigen Stellen bei, die nur für Entwickler sichtbar sind oder an denen die Versionsnummer von Programmen analysiert wird. Wie bereits erwähnt, bezieht sich 1.5.0 auf genau dieselbe Plattform und Produkte mit der Nummer 5.0 ...
Beachten Sie auch, dass der in den Kommentaren erwähnte Begriff "J2SE" später in "Java SE" geändert wurde.