Чому Java версію 1.X називають Java X?


58

Я бачив, що Java 1.2 також відомий як Java 2. Чи "Java 1.x" і "Java x" (наприклад, "Java 1.6" і "Java 6") відносяться до тієї ж версії Java?

І якщо так, то навіщо потреба в цій подвійності?


7
Причини маркетингу?

14
Ще краще, ніж Mozilla Firefox. 10+ основних версій менш ніж за два роки.
Анджей Бобак

2
Так, причини маркетингу. Це запитання щодо такої ж теми приблизно з тієї ж теми.
Йоахім Зауер

2
Можна сказати це інакше: Чому Sun (і тепер Oracle) випустив основні оновлення (Java 5, 6, 7 і незабаром 8) як точкові випуски (1.5, 1.6, 1.7 і незабаром 1.8)?
Йоахім Зауер

3
@AndrzejBobak Google Chrome гірший, він наближається до 20 версій за 2 роки
Izkata

Відповіді:


64

У Sun Microsystems тоді була погана звичка переживати численні зміни в іменуванні своїх продуктів, і в першу чергу використовувати заплутане ім'я.

Що в назві, або що означає "Java"?

Спочатку термін "Java" використовувався для опису без розбору:

  • мова ,
  • платформа ,
  • а деякі інші траплялися згадувати JVM та Java Class Lib як просто Java.

Внутрішній і зовнішній номер

Що стосується номерів версій, то, як інші зазначали, це було частково через маркетинг, а частково тому, що вони просто відчували, що Java досягла такого прогресу, головне оновлення версій краще підходило (для Java 1.2 / Java 2 та коли Java 1.5 / Java 5).

Отже, те, що ми називаємо Java 2, насправді була Java 1.2 - 1.4. Java 3 і Java 4 ніколи не існували, і ми перейшли безпосередньо до Java 5, як вони намагалися пояснити тут (з цієї сторінки про іменування та версії ).

Я також, мабуть, трохи не змішувався з їх внутрішньою нумерацією, яка використовується в їх системах відстеження та розвитку. Я схильний вважати це як 1.x = мовна версія та X = мова та версія продукту. Це має сенс, оскільки звичайним користувачам не потрібно турбуватися про незначні збільшення та оновлення, оскільки вони заохочують автоматичне оновлення, і вони не повинні вносити жодних змін у мову чи байт-код.

Зауважте також, що воно стає дивнішим, коли ви переглядаєте незначні версії та номери оновлень. Наприклад, у нас була Java 1.3.1 та пізніші Java 1.4.1 та 1.4.2.

Оновлення

Однак з тих пір не було жодного 1.xy, це завжди було 1.x.0_UPDATE:

Зауважте також, що ви також побачите оновлення, на які посилається будь-яка з цих умов іменування:

  • на зразок 1.5.0_22 або 1.7.0_04 (зверніть увагу на прокладку 0s у версії оновлення, вирівнюючи на 2 цифри),
  • але також 1.5.0u22 або 1.7.0u4 (зауважте, прокладки 0 зникли, так!).

А для додаткової плутанини та не відставання від традиції Sun Microsystems, Oracle тепер опускає подібні повідомлення.

Назви продуктів

Зауважте також, що вони не лише звикли змінювати нумерацію, але й назви пропозицій товарів. Так, у Java 2 є J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) та J2ME (Java 2 Mobile Edition). З моменту впровадження Java 5 ці конвенції та абревіатури були відмінені (хоча деякі з них мають неймовірно довгу стійкість, в основному дякують тупим рекрутинговим агенціям, які не мають поняття, про що вони говорять) на користь Java SE, Java EE та Java ME , які іноді скорочуються - але офіційно не повинні - до JSE, JEE (досить поширені) та JME.

Прочитайте цю сторінку для отримання додаткової інформації про поточну систему версій, яку використовує Sun Microsystems і тепер Oracle з Java 1.3.1 .

(Щоб отримати бонусні бали, спробуйте знайти історію NetBeans зараз, щоб побачити, що вона також була перейменована кілька разів).

Вони самі цього не знають

Вони також намагаються вирішити, чи слід оновити існуючі посилання чи ні. Наприклад, на цій сторінці про старіші випуски використовується стара система нумерації старих випусків, але нові назви продуктів (Java SE 1.1, 1.2, 1.3 та 1.4 не були випущені за допомогою цього правила іменування).

Можливо, вони просто лукавлять нас із задоволенням. Хто знає?

Що про JVMS та JLS?

Вони, звичайно, розважалися з називанням та нумерацією, звичайно.

Специфікація мови Java використовується, буде випущена з книгою «видання» контроль версій противірусних ,, наступних номерами продукту. Тому:

  • У Java 1 була "Специфікація мови Java",
  • У Java 2 була "Специфікація мови Java, 2-е видання".

Все йде нормально.

За винятком того, що "Специфікація мови Java" пізніше була відредагована лише тоді, коли в Java 5 були внесені зміни мови (що має сенс, ви не будете публікувати нові видання книг лише для задоволення). Оскільки це був 3-й раз, коли вони редагували його, вони назвали його (тада!) "Специфікацією Java Langauge, 3-е видання".

Але, очевидно, люди тоді почали задаватися питанням, чому 1.3 та 1.4 не мають специфікації мови, або чому Java 5 співпадає з 3-м виданням мовної специфікації.

Отже, Java 7 тепер просто називає її "Специфікація мови Java, версія Java SE 7", хоча ми часто називаємо її як JLS7 для скорочення та уникати RSI.


Вони не єдині ...

Для додаткової розваги, подивіться на помилку в назві Microsoft Windows RT, або на божевілля іменування та нумерації Apple з iPhone, iPad або навіть iPod.


"Зверніть увагу на кінцеві 0" Що таке 0?
Семюель Едвін Уорд

@SamuelEdwinWard: вибачте, мова переплутана. Я маю на увазі префікс 0 після _ між номером версії та номером оновлення.
хайлем

я не думаю, що саме це означає Порт-Манто або Портманто.
Гравець Граді

@GradyPlayer: ти насправді маєш рацію. Дякуємо, що вказали на це. (редагувати: оновлено заголовок, що мене справді було дуже німим).
haylem

5

Коротка відповідь: Маркетинг.

Більш довга відповідь: коротка форма (наприклад, Java 6) - це так звана "версія продукту", і це те, як Java продається користувачам та в прес-релізах тощо.

Більш довга форма (наприклад, Java 1.6.0) - це "версія для розробників". Він використовується внутрішньо, і з ним також будуть стикатися розробники Java (наприклад, java.versionвластивість системи використовує довгу форму).

Дивіться ці сторінки для отримання додаткової інформації:


2

Тому що книга з назвою "Learn Shiny New Java 3" буде розпродана раніше, ніж книга з заголовком "Що нового в Java 1.3".

Так, так, це в основному маркетингові причини. З іншого боку, я не бачу тут серйозного злочину. Зрештою, в деяких продуктах, таких як Mozilla або Chrome, основна кількість збірки постійно збільшується, а в інших дотримується збільшення незначної кількості збірки, хоча, з кожним новим випуском, іноді відбуваються великі зміни.

Деякі, як Apple, не хочуть залишати нас, користувачів, з тупими іменами на кшталт "Mac OS 10.6".

І Sun раніше був добре з N псевдонімом замість того, щоб ввести "Java Green Diplodocus".


4
Сторінка: ніколи не було Java 3, це було Java 2 SE 1.3 (або J2SE 1.3). Тільки за допомогою Java 1.5 / 5.0 / 5 вони позбулися числа "1.x" в маркетингу. Так, навіть якщо Java 1.2 (і 1.3 і 1.4!) Називали "Java 2" ... маркетинг, так!
Йоахім Зауер

1

TheServerSide пояснює зміну з "Java 1.x" на "Java x" наступним чином :

Сонце відрізало "1" змінити J2SE 1.5.0 на J2SE 5.0. Причина зміни? Sun стверджує, що "це найзначніше оновлення платформи Java та мови програмування з моменту її початкового випуску майже десятиліття тому", і що ця версія гідна.

Мабуть, були переговори про перейменування на "J5SE", але вважалося, що бренд J2EE означає занадто багато, щоб змінити.

Чи не цікаві номери версій?

Прочитайте прес-реліз: Sun впроваджує найважливіший та передовий реліз платформи Java за 5 років

Зауважте, що посилання в наведеній цитаті вбита Oracle . Наскільки я можу сказати, він доступний на prnewswire :

Компанія Sun Microsystems, Inc. (Nasdaq: SUNW), творець
і провідний прихильник технології Java (TM), сьогодні представила платформу Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, найважливіше оновлення
платформи Java та мови програмування з тих пір. його початковий реліз майже десять років
тому. Ця відома платформа Java, відома як Project Tiger, пропонує драматичну простоту
розробки, нові функції моніторингу та управління додатками, особливий
акцент на багатій підтримці клієнтів для робочого столу ПК та рекордною
продуктивністю ...


Для повноти зауважте, що стиль версії 1.X повністю не відмовився .

"Версія 1.5.0" використовується розробниками

J2SE також зберігає номер версії 1.5.0 (або 1.5) у деяких місцях, які видно лише розробникам, або де номер версії розбирається програмами. Як уже згадувалося, 1.5.0 стосується точно такої самої платформи та продуктів із номером 5.0 ...

Також зауважте, що, як зазначалося в коментарях, термін "J2SE", використаний вище, пізніше було змінено на "Java SE".


4
На щастя, вони відкинули назви "J2SE" (а пізніше "J2EE") на користь "Java SE" та "Java EE". "J2SE 5.0" був просто дурним.
Йоахім Зауер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.