Dlaczego Java 1.X jest nazywana Java X?

58

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ść?

Federico Zancan
źródło
7
Powody marketingowe?
14
Nadal lepszy niż Mozilla Firefox. Ponad 10 głównych wersji w mniej niż dwa lata.
Andrzej Bobak
2
Tak, powody marketingowe. To SO pytanie dotyczy tego samego tematu.
Joachim Sauer
2
Można to inaczej sformułować: dlaczego Sun (a teraz Oracle) wydał główne aktualizacje (Java 5, 6, 7 i wkrótce 8) jako wydania punktowe (1.5, 1.6, 1.7 i wkrótce 1.8)?
Joachim Sauer
3
@AndrzejBobak Google Chrome jest gorszy, zbliża się do 20 wersji w ciągu 2 lat
Izkata

Odpowiedzi:

64

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:

  • język ,
  • platforma ,
  • a niektórzy inni nazywali JVM i Java Class Lib również tylko Javą.

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:

  • jak 1.5.0_22 lub 1.7.0_04 (zwróć uwagę na dopełnianie 0 w wersji aktualizacji, wyrównanie do 2 cyfr),
  • ale także 1.5.0u22 lub 1.7.0u4 (pamiętaj, że dopełnianie 0 zniknęło, tak!).

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:

  • Java 1 miała swoją „specyfikację języka Java”,
  • Java 2 miała swoją „specyfikację języka Java, wydanie drugie”.

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.

Haylem
źródło
„Uwaga końcowe zera” Jakie końcowe zera?
Samuel Edwin Ward
@SamuelEdwinWard: przepraszam, pomieszanie języków tam. Mam na myśli prefiks 0 po znaku _ między numerem wersji a numerem aktualizacji.
haylem
tak naprawdę nie sądzę, że to właśnie oznacza Porte-Manteau lub Portmanteau.
Grady Player
@GradyPlayer: właściwie masz całkowitą rację. Dzięki za zwrócenie na to uwagi. (edytuj: zaktualizowałem nagłówek, co było naprawdę głupie ze mnie).
haylem
5

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.versionsystemowa używa długiej formy).

Zobacz te strony, aby uzyskać więcej informacji:

GenericJon
źródło
2

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”.

shabunc
źródło
4
Sidenote: nigdy nie było Java 3, to była Java 2 SE 1.3 (lub J2SE 1.3). Tylko w Javie 1.5 / 5.0 / 5 pozbyli się liczb „1.x” w marketingu. Tak, nawet „chociaż Java 1.2 (oraz 1.3 i 1.4!) Zostały nazwane„ Java 2 ”... marketing, tak!
Joachim Sauer
1

TheServerSide wyjaśnia zmianę z „Java 1.x” na „Java x” w następujący sposób :

Słońce odcięło „1”. zmienić J2SE 1.5.0 na J2SE 5.0. Powód zmiany? Firma Sun twierdzi, że „jest to najbardziej znacząca aktualizacja platformy Java i języka programowania od czasu jej pierwszego wydania prawie dekadę temu” oraz że ta wersja jest godna.

Najwyraźniej trwały rozmowy o zmianie nazwy na „J5SE”, ale uważano, że marka J2EE oznacza zbyt wiele do zmiany.

Czy numery wersji nie są zabawne?

Przeczytaj komunikat prasowy: Sun wprowadza najbardziej znaczącą i zaawansowaną wersję platformy Java od 5 lat

Uwaga link w powyższym cytacie został zabity przez Oracle . O ile wiem, jest on dostępny w prnewswire :

Sun Microsystems, Inc. (Nasdaq: SUNW), twórca
i wiodący zwolennik technologii Java (TM), przedstawił dziś Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, najbardziej znaczącą aktualizację
platformy Java i języka programowania od czasu jego pierwsze wydanie prawie dziesięć lat
temu. Ta zaktualizowana platforma Java, znana jako Project Tiger, oferuje ogromną łatwość
programowania, nowe funkcje monitorowania i zarządzania aplikacjami,
koncentruje się na bogatej obsłudze klienta na komputerze stacjonarnym i rekordowej
wydajności ...


Ze względu na kompletność zauważ, że styl wersji 1.X nie został całkowicie odrzucony .

„Wersja 1.5.0” używana przez programistów

J2SE zachowuje również wersję w wersji 1.5.0 (lub 1.5) w niektórych miejscach, które są widoczne tylko dla programistów lub tam, gdzie numer wersji jest analizowany przez programy. Jak wspomniano, 1.5.0 odnosi się do dokładnie tej samej platformy i produktów o numerach 5.0 ...

Należy również zauważyć, że jak wskazano w komentarzach, termin „J2SE” użyty powyżej został później zmieniony na „Java SE”.

komar
źródło
4
Na szczęście porzucili nazwy „J2SE” (a później „J2EE”) na rzecz „Java SE” i „Java EE”. „J2SE 5.0” było po prostu głupie.
Joachim Sauer