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よりも優れています。2年以内に10以上のメジャーバージョン。
アンジェイBobak

2
はい、マーケティングの理由。このSOの質問は、同じトピックに関するものです。
ヨアヒムザウアー

2
別の言い方をすることもできます:なぜSun(そして今はOracle)がメジャーリリース(Java 5、6、7、そしてすぐに8)をポイントリリース(1.5、1.6、1.7、すぐに1.8)としてリリースしたのですか?
ヨアヒムザウアー

3
Google Chromeが悪化している、それは2年間で20件のバージョンに近づいています@AndrzejBobak
Izkata

回答:


64

サン・マイクロシステムズは当時、自社製品の多数の名前変更を経て、そもそも混乱する名前を使用するという悪い習慣がありました。

名前に含まれるもの、または「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でした。

また、これらの命名規則のいずれかで参照される更新も表示されることに注意してください。

  • 1.5.0_22や1.7.0_04など(更新バージョンのパディング0に注意してください。2桁に揃えられています)、
  • ただし、1.5.0u22または1.7.0u4(パディング0がなくなっていることに注意してください!)

さらに混乱を招き、Sun Microsystemsの伝統に追いつくために、オラクルはこのような発表を廃止しました。

製品名

また、番号付けを変更する習慣だけでなく、製品の名前も変更したことに注意してください。そのため、Java 2にはJ2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、およびJ2ME(Java 2 Mobile Edition)があります。Java 5の導入以降、これらの規則と頭字語はドロップされました(ただし、非常に長い弾力性を持っているものもありますが、ほとんどの場合、彼らが話していることを知らない愚かな募集機関のおかげです)。JavaSE、Java EE、およびJava ME 、JSE、JEE(かなり一般的)、およびJMEに省略されることもありますが、公式にすべきではありません。

Java 1.3.1以降、Sun Microsystemsおよび現在Oracleで使用されている現在のバージョン管理システムの詳細については、このページをお読みください。

(ボーナスポイントについては、NetBeansの履歴を今すぐ検索して、数回名前が変更されたことを確認してください)。

彼らは自分自身を知らない

また、既存の参照を逆更新する必要があるかどうかの判断にも苦労しています。たとえば、古いリリースに関するこのページでは、古いリリースに古い番号付けシステムを使用していますが、新しい製品名(Java SE 1.1、1.2、1.3、および1.4はこの命名規則ではリリースされていません)。

たぶん彼らは楽しみのために私たちと一緒にねじ込みます。知るか?

JVMSとJLSはどうですか?

もちろん、名前と番号付けも楽しんでいた。

Java言語仕様は、製品番号以下,,本「版」バージョン管理systeでリリースされていました。そう:

  • 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の命名失敗、またはiPhone、iPad、さらにはiPodでのAppleの命名と番号付けの狂気を見てください。


「末尾の0に注意してください」末尾の0は何ですか?
サミュエルエドウィン区

@SamuelEdwinWard:申し訳ありませんが、言語が混同されています。バージョン番号と更新番号の間の_の後のプレフィックス0を意味します。
ヘイレム

ポルト・マントーやポルトマントーが意味するものだとは本当に思いません。
グレイディプレーヤー

@GradyPlayer:実際、あなたは完全に正しいです。それを指摘してくれてありがとう。(編集:ヘッダーを更新しましたが、それは実にかなり愚かでした)。
ヘイレム

5

簡単な答え:マーケティング。

より長い答え:短い形式(Java 6など)はいわゆる「製品バージョン」であり、ユーザーやプレスリリースなどでのJavaの販売方法です。

長い形式(Java 1.6.0など)は「開発者バージョン」です。内部で使用され、Java開発者も遭遇します(たとえば、java.versionシステムプロパティは長い形式を使用します)。

詳細については、次のページを参照してください。


2

タイトルが「Learn Shiny New Java 3」の本は、タイトルが「What's new in Java 1.3」の本よりも早く完売するためです。

はい、それは主にマーケティング上の理由です。一方、ここでは重大な犯罪は見られません。結局のところ、MozillaやChromeなどの一部の製品では、メジャービルド番号が常に増加し、他の製品はマイナービルド番号の増加に固執しますが、新しいリリースごとに大きな変更が行われる場合があります。

Appleのように、「Mac OS 10.6」のような退屈な名前をユーザーに残したくない人もいます。

また、Sunは「Java Green Diplodocus」リリースを導入する代わりに、Nエイリアスを使用しても問題ありませんでした。


4
補足:Java 3はありませんでした。Java2 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は、「これはほぼ10年前の初期リリース以来のJavaプラットフォームとプログラミング言語の最も重要なアップグレードであり、このバージョンは価値があると主張しています。

どうやら「J5SE」に名前を変更する話があったようですが、J2EEブランドは変更するには多すぎることを意味すると考えられていました。

バージョン番号は面白くないですか?

プレスリリースを読む:Sunは5年間で最も重要で高度なJavaプラットフォームリリースを発表します

上記の引用のリンクはOracleによって強制終了されます。私が知る限り、それはprnewswireで利用可能です:


Java(TM)テクノロジの作成者であり、主要な支持者であるSun Microsystems、Inc.(Nasdaq:SUNW)は本日
、Java
プラットフォームおよびプログラミング言語の最も重要なアップグレードであるJava 2 Platform Standard Edition(J2SE(TM))5.0を導入しました最初のリリースはほぼ10年
前です。Project Tigerとして知られるこの更新されたJavaプラットフォームは、劇的な
開発の容易さ、新しいアプリケーションの監視と管理機能、
PCデスクトップと記録的な
パフォーマンスのためのリッチクライアントサポートに専念しています。


完全を期すために、1.Xバージョンのスタイルが完全に削除されていないことに注意してください。

開発者が使用する「バージョン1.5.0」

J2SEは、開発者だけが見ることができる場所や、プログラムによってバージョン番号が解析される場所でもバージョン番号1.5.0(または1.5)を保持します。前述のように、1.5.0は5.0と番号付けられたまったく同じプラットフォームと製品を指します...

また、コメントで指摘したように、上記で使用した「J2SE」という用語は、後に「Java SE」に変更されています。


4
幸いなことに、彼らは「Java SE」と「Java EE」を支持して「J2SE」(およびその後の「J2EE」)名を落としました。「J2SE 5.0」はばかげていました。
ヨアヒムザウアー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.