Почему 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 (обратите внимание на отступы 0 в версии обновления, выравнивание по 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 были введены изменения языка (что имеет смысл, вы не будете публиковать новые книжные издания просто для удовольствия). Поскольку это был третий раз, когда они редактировали его, они назвали его (tada!) «Спецификация Java Langauge, 3-е издание».

Но очевидно, что люди начали задаваться вопросом, почему 1.3 и 1.4 не имели языковой спецификации или почему Java 5 соответствовала третьей редакции языковой спецификации.

Итак, Java 7 теперь просто называет это «Спецификацией языка Java, Java SE 7 Edition», хотя мы часто называем это JLS7 для краткости и избегания RSI.


Они не единственные ...

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

haylem
источник
"обратите внимание на конечные 0" Какие конечные 0?
Сэмюэль Эдвин Уорд
@SamuelEdwinWard: извините, там перепутаны языки. Я имею в виду префикс 0s после _ между номером версии и номером обновления.
Хайлем
я действительно не думаю, что это то, что означает Porte-Manteau или Portmanteau.
Grady Player
@GradyPlayer: на самом деле вы совершенно правы. Спасибо что подметил это. (изменить: обновил заголовок, это было довольно глупо с моей стороны).
Хайлем
5

Краткий ответ: маркетинг.

Более длинный ответ: краткая форма (например, Java 6) представляет собой так называемую «версию продукта» и показывает, как Java продается пользователям, в пресс-релизах и т. Д.

Более длинная форма (например, Java 1.6.0) является «версией разработчика». Он используется внутри, и также будет встречаться разработчиками Java (например, java.versionсвойство системы использует длинную форму).

Смотрите эти страницы для получения дополнительной информации:

GenericJon
источник
2

Потому что книга с названием «Learn Shiny New Java 3» будет продана раньше, чем книга с названием «Что нового в Java 1.3».

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

Некоторые, как Apple, не хотят оставлять нас, пользователей, с такими скучными именами, как «Mac OS 10.6».

А у Sun раньше было нормально работать с N-псевдонимом вместо того, чтобы выпускать «Java Green Diplodocus».

shabunc
источник
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 х» следующим образом :

Солнце отрезало "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» был просто глупым.
Йоахим Зауэр