Widziałem, że Java 1.2 jest również znana jako Java 2. Czy „Java 1.x” i „Java x” (na przykład „Java 1.6” i „Java 6”) odnoszą się do tej samej wersji Java?
A jeśli tak, to po co ta dualność?
java
history
versioning
product-names
Federico Zancan
źródło
źródło
Odpowiedzi:
Firma Sun Microsystems miała wówczas zły nawyk przechodzenia przez liczne zmiany nazw dla swoich produktów i przede wszystkim używania mylącej nazwy.
Co zawiera nazwa lub co oznacza „Java”?
Pierwotnie termin „Java” był używany do bezkrytycznego opisu:
Numer wewnętrzny i zewnętrzny
W odniesieniu do numerów wersji, jak zauważyli inni, było to częściowo spowodowane marketingiem, a częściowo dlatego, że po prostu czuli, że Java poczyniła taki postęp, lepsza aktualizacja głównej wersji była bardziej odpowiednia (dla Java 1.2 / Java 2, a gdy Java 1.5 / Java 5).
Tak więc to, co nazywamy Java 2, to tak naprawdę Java 1.2 do 1.4. Java 3 i Java 4 nigdy nie istniały, a my przeskoczyliśmy bezpośrednio do Java 5, jak próbowali wyjaśnić tutaj (z tej strony na temat nazewnictwa i wersjonowania ).
Prawdopodobnie też trochę nie zadzierałem z ich wewnętrzną numeracją stosowaną w ich systemach śledzenia i rozwoju. Myślę o tym jako o 1.x = wersja językowa i X = wersja językowa i produktowa. Ma to sens, ponieważ zwykli użytkownicy nie muszą martwić się o niewielkie przyrosty i aktualizacje, ponieważ zachęcają do automatycznych aktualizacji, a one nie powinny wprowadzać żadnych zmian w języku ani kodzie bajtowym.
Zauważ też, że robi się dziwniej, gdy patrzysz na mniejsze wersje i numery aktualizacji. Na przykład mieliśmy Javę 1.3.1, a później Java 1.4.1 i 1.4.2.
Aktualizacje
Jednak od tamtej pory nie było 1.xy, zawsze była to 1.x.0_UPDATE:
Pamiętaj również, że zobaczysz także aktualizacje, których dotyczy jedna z następujących konwencji nazewnictwa:
Dla dodatkowego zamieszania i nadążania za tradycją Sun Microsystems Oracle wyrzuca teraz takie ogłoszenia.
Nazwy produktów
Należy również pamiętać, że nie tylko przyzwyczaili się do zmiany numeracji, ale także nazw ofert produktów. Tak więc Java 2 ma J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) i J2ME (Java 2 Mobile Edition). Od czasu wprowadzenia Java 5 te konwencje i akronimy zostały porzucone (choć niektóre mają niewiarygodnie długą odporność, głównie dzięki za głupie agencje rekrutacyjne, które nie mają pojęcia, o czym mówią) na rzecz Java SE, Java EE i Java ME , które czasami są skracane - ale nie powinny oficjalnie - do JSE, JEE (dość powszechne) i JME.
Przeczytaj tę stronę, aby uzyskać więcej informacji o bieżącym systemie kontroli wersji używanym przez Sun Microsystems, a teraz Oracle od wersji Java 1.3.1 .
(Aby uzyskać punkty bonusowe, spróbuj teraz przejrzeć historię NetBeans, aby zobaczyć, że została ona również zmieniona kilka razy).
Nie znają się
Próbują też zdecydować, czy powinni aktualizować istniejące odniesienia, czy nie. Na przykład ta strona o starszych wersjach używa starego systemu numerowania dla starszych wersji, ale nowsze nazwy produktów (Java SE 1.1, 1.2, 1.3 i 1.4 nie zostały wydane z tą konwencją nazewnictwa).
Może po prostu pieprzą się z nami dla zabawy. Kto wie?
Co z JVMS i JLS?
Oczywiście dobrze się też bawili, nazywając je i numerując.
Java Language Specification kiedyś zwolniony z książki „edycja” wersjonowania st ,, następujące numery produktów. Więc:
Na razie w porządku.
Z wyjątkiem tego, że „Specyfikacja języka Java” została później ponownie zredagowana dopiero po wprowadzeniu zmian językowych w Javie 5 (co ma sens, nie będziesz publikować nowych wydań książek dla zabawy). Ponieważ był to trzeci raz, kiedy go edytowali, nazwali go (tada!) „Java Langauge Specification, 3rd edition”.
Ale oczywiście ludzie zaczęli się zastanawiać, dlaczego 1.3 i 1.4 nie mają specyfikacji języka lub dlaczego Java 5 została dopasowana do 3. edycji specyfikacji języka.
Tak więc Java 7 nazywa ją teraz po prostu „Specyfikacją języka Java, Java SE 7 Edition”, choć często nazywamy ją JLS7 w celu skrócenia i uniknięcia RSI.
Nie są jedynymi ...
Aby uzyskać dodatkową zabawę, spójrz na niepowodzenie nazywania systemu Microsoft Windows RT lub szaleństwo nazywania i numerowania Apple na iPhone'ach, iPadach, a nawet iPodach.
źródło
Krótka odpowiedź: marketing.
Dłuższa odpowiedź: krótka forma (np. Java 6) jest tak zwaną „wersją produktu” i jest sposobem, w jaki Java jest sprzedawana użytkownikom, w komunikatach prasowych itp.
Dłuższa forma (np. Java 1.6.0) to „wersja dla programistów”. Jest on używany wewnętrznie i będzie również spotykany przez programistów Java (np. Właściwość
java.version
systemowa używa długiej formy).Zobacz te strony, aby uzyskać więcej informacji:
źródło
Ponieważ książka o tytule „Learn Shiny New Java 3” zostanie wyprzedana niż książka o tytule „Co nowego w Javie 1.3”.
Tak, to głównie przyczyny marketingowe. Z drugiej strony nie widzę tu poważnego przestępstwa. W końcu w niektórych produktach, takich jak Mozilla lub Chrome, główny numer kompilacji jest stale zwiększany, a inne trzymają się zwiększania mniejszego numeru kompilacji, jednak czasami przy każdej nowej wersji pojawiają się duże zmiany.
Niektórzy, jak Apple, nie chcą nas opuszczać, użytkownicy, o nudnych nazwach, takich jak „Mac OS 10.6”.
Sun nie miał nic przeciwko aliasowi N zamiast wprowadzenia wersji „Java Green Diplodocus”.
źródło
TheServerSide wyjaśnia zmianę z „Java 1.x” na „Java x” w następujący sposób :
Uwaga link w powyższym cytacie został zabity przez Oracle . O ile wiem, jest on dostępny w prnewswire :
Ze względu na kompletność zauważ, że styl wersji 1.X nie został całkowicie odrzucony .
Należy również zauważyć, że jak wskazano w komentarzach, termin „J2SE” użyty powyżej został później zmieniony na „Java SE”.
źródło