Я видел, что Java 1.2 также известна как Java 2. Означают ли «Java 1.x» и «Java x» (например, «Java 1.6» и «Java 6») одну и ту же версию Java?
И если да, то зачем нужна эта двойственность?
java
history
versioning
product-names
Федерико Занкан
источник
источник
Ответы:
У Sun Microsystems в то время была плохая привычка проходить через многочисленные изменения в наименованиях своих продуктов и в первую очередь использовать запутанное имя.
Что в имени, или что означает «Java»?
Первоначально термин «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:
Также обратите внимание, что вы также увидите обновления, на которые ссылается одно из следующих соглашений об именах:
И для дополнительной путаницы и чтобы идти в ногу с традицией 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» была позже отредактирована только тогда, когда в 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.
источник
Краткий ответ: маркетинг.
Более длинный ответ: краткая форма (например, Java 6) представляет собой так называемую «версию продукта» и показывает, как Java продается пользователям, в пресс-релизах и т. Д.
Более длинная форма (например, Java 1.6.0) является «версией разработчика». Он используется внутри, и также будет встречаться разработчиками Java (например,
java.version
свойство системы использует длинную форму).Смотрите эти страницы для получения дополнительной информации:
источник
Потому что книга с названием «Learn Shiny New Java 3» будет продана раньше, чем книга с названием «Что нового в Java 1.3».
Так что да, это в основном маркетинговые причины. С другой стороны, я не вижу здесь серьезного преступления. В конце концов, в некоторых продуктах, таких как Mozilla или Chrome, основной номер сборки постоянно увеличивается, а другие придерживаются увеличения незначительного номера сборки, хотя иногда с каждым новым выпуском происходят большие изменения.
Некоторые, как Apple, не хотят оставлять нас, пользователей, с такими скучными именами, как «Mac OS 10.6».
А у Sun раньше было нормально работать с N-псевдонимом вместо того, чтобы выпускать «Java Green Diplodocus».
источник
TheServerSide объясняет переход от «Java 1.x» на «Java х» следующим образом :
Примечание ссылка в цитате выше, убит Oracle . Насколько я могу судить, он доступен на prnewswire :
Для полноты заметим, что стиль версии 1.X не был полностью отброшен .
Также обратите внимание, что, как указано в комментариях, термин «J2SE», использованный выше, был позже изменен на «Java SE».
источник