Mengapa Java versi 1.X disebut sebagai Java X?

58

Saya melihat bahwa Java 1.2 juga dikenal sebagai Java 2. Apakah "Java 1.x" dan "Java x" (misalnya "Java 1.6" dan "Java 6") merujuk ke versi Java yang sama?

Dan jika ya, mengapa perlu dualitas ini?

Federico Zancan
sumber
7
Alasan pemasaran?
14
Masih lebih baik dari Mozilla Firefox. 10+ versi utama dalam waktu kurang dari dua tahun.
Andrzej Bobak
2
Ya, alasan pemasaran. Pertanyaan SO ini adalah tentang topik yang sama.
Joachim Sauer
2
Orang dapat mengatakannya secara berbeda: Mengapa Sun (dan sekarang Oracle) merilis pembaruan besar (Java 5, 6, 7 dan segera 8) sebagai rilis poin (1.5, 1.6, 1.7 dan segera 1.8)?
Joachim Sauer
3
@AndrzejBobak Google Chrome lebih buruk, mendekati 20 versi dalam 2 tahun
Izkata

Jawaban:

64

Sun Microsystems pada waktu itu memiliki kebiasaan buruk melalui berbagai perubahan penamaan untuk produk-produknya, dan menggunakan nama yang membingungkan untuk memulainya.

Apa yang ada di Nama, atau apa artinya "Java"?

Awalnya istilah "Jawa" digunakan untuk menggambarkan tanpa pandang bulu:

  • yang bahasa ,
  • yang platform yang ,
  • dan beberapa yang lain merujuk pada JVM dan Java Class Lib sebagai Java juga.

Nomor Internal dan Eksternal

Berkenaan dengan nomor versi, seperti yang lain menunjukkan itu sebagian karena pemasaran, dan sebagian lagi karena mereka merasa seperti Jawa telah melakukan kemajuan seperti itu, upgrade versi utama lebih cocok (untuk Java 1.2 / Java 2, dan ketika Java 1.5 / Java 5).

Jadi, apa yang kita sebut Java 2 sebenarnya adalah Java 1.2 hingga 1.4. Java 3 dan Java 4 tidak pernah ada, dan kami melompat langsung ke Java 5, karena mereka mencoba menjelaskan di sini (dari halaman ini tentang penamaan dan versi ).

Saya juga mungkin sedikit juga tidak mengacaukan penomoran internal yang digunakan dalam sistem pelacakan dan pengembangan mereka. Saya cenderung menganggapnya sebagai 1.x = versi bahasa dan X = bahasa dan versi produk. Masuk akal, karena pengguna normal tidak perlu khawatir tentang peningkatan dan pembaruan kecil, karena mereka mendorong pembaruan otomatis, dan ini seharusnya tidak memperkenalkan perubahan apa pun pada bahasa atau kode kunci.

Perhatikan juga bahwa itu menjadi lebih aneh ketika Anda melihat versi minor dan memperbarui nomor. Misalnya, kami memiliki Java 1.3.1 dan kemudian Java 1.4.1 dan 1.4.2.

Pembaruan

Namun, tidak ada 1.xy sejak saat itu, selalu 1.x.0_UPDATE:

Perhatikan juga bahwa Anda juga akan melihat pembaruan yang dirujuk dengan salah satu dari konvensi penamaan ini:

  • seperti 1.5.0_22 atau 1.7.0_04 (perhatikan padding 0s pada versi pembaruan, selaraskan pada 2 digit),
  • tetapi juga 1.5.0u22 atau 1.7.0u4 (perhatikan 0 padding hilang, yay!).

Dan untuk kebingungan tambahan dan untuk mengikuti tradisi Sun Microsystems, Oracle sekarang menjatuhkan pengumuman seperti ini.

Nama Produk

Perhatikan juga bahwa mereka tidak hanya terbiasa mengubah penomoran, tetapi juga nama-nama penawaran produk. Jadi, Java 2 memiliki J2SE (Java 2 Edisi Standar), J2EE (Java 2 Enterprise Edition) dan J2ME (Java 2 Mobile Edition). Sejak diperkenalkannya Java 5, konvensi dan akronim ini telah dibatalkan (meskipun beberapa memiliki ketahanan yang sangat panjang, sebagian besar terima kasih untuk agen perekrutan bodoh yang tidak tahu apa yang mereka bicarakan) yang mendukung Java SE, Java EE dan Java ME , yang kadang disingkat - tetapi tidak seharusnya secara resmi - untuk JSE, JEE (cukup umum) dan JME.

Anda membaca halaman ini untuk informasi lebih lanjut tentang sistem versi saat ini yang digunakan oleh Sun Microsystems dan sekarang Oracle sejak Java 1.3.1 .

(Untuk poin bonus, cobalah mencari sejarah NetBeans sekarang untuk melihat bahwa itu juga berganti nama beberapa kali).

Mereka Tidak Tahu Diri

Mereka juga berjuang untuk memutuskan apakah mereka harus memperbarui kembali referensi yang ada atau tidak. Misalnya, halaman ini tentang rilis yang lebih lama menggunakan sistem penomoran yang lama untuk rilis yang lama, tetapi nama produk yang lebih baru (Java SE 1.1, 1.2, 1.3 dan 1.4 tidak dirilis dengan konvensi penamaan ini).

Mungkin mereka hanya bersenang-senang dengan kami. Siapa tahu?

Bagaimana dengan JVMS dan JLS?

Mereka bersenang-senang dengan penamaan dan penomoran di sana juga, tentu saja.

The Java Language Specification digunakan akan dirilis dengan buku "edisi" versioning syste ,, berikut nomor produk. Begitu:

  • Java 1 memiliki "Spesifikasi Bahasa Jawa",
  • Java 2 memiliki "Spesifikasi Bahasa Jawa, edisi kedua".

Sejauh ini bagus.

Kecuali "Spesifikasi Bahasa Jawa" belakangan diedit ulang ketika perubahan bahasa diperkenalkan di Java 5 (yang masuk akal, Anda tidak akan menerbitkan edisi buku baru hanya untuk bersenang-senang). Karena ini adalah ketiga kalinya mereka mengeditnya, mereka menyebutnya (tada!) "Spesifikasi Java Langauge, edisi ke-3".

Namun yang jelas, orang-orang kemudian mulai bertanya-tanya mengapa 1.3 dan 1.4 tidak memiliki spesifikasi bahasa, atau mengapa Java 5 dicocokkan dengan edisi ketiga dari spesifikasi bahasa.

Jadi, Java 7 sekarang hanya menyebutnya "Spesifikasi Bahasa Jawa, Edisi Java 7 SE", meskipun kita sering menyebutnya sebagai JLS7 untuk singkatan dan untuk menghindari RSI.


Mereka Bukan Satu-Satunya ...

Untuk kesenangan tambahan, lihat kegagalan penamaan Microsoft Windows RT, atau kegilaan penamaan dan penomoran Apple dengan iPhone, iPad atau bahkan iPod.

haylem
sumber
"note the trailing 0s" Apa yang tertinggal 0s?
Samuel Edwin Ward
@SamuelEdwinWard: maaf, bahasa campuran di sana. Maksud saya awalan 0s setelah _ antara nomor versi dan nomor pembaruan.
haylem
Saya tidak benar-benar berpikir itulah yang dimaksud Porte-Manteau atau Portmanteau.
Pemain Grady
@ GradyPlayer: Anda benar, sebenarnya. Terima kasih telah menunjukkannya. (sunting: perbarui tajuk, itu memang cukup bodoh dari saya).
haylem
5

Jawaban singkatnya: Pemasaran.

Jawaban yang lebih panjang: Formulir singkat (mis. Java 6) adalah apa yang disebut "versi produk" dan bagaimana Java dipasarkan kepada pengguna dan dalam siaran pers, dll.

Bentuk yang lebih panjang (mis. Java 1.6.0) adalah "versi pengembang". Ini digunakan secara internal, dan juga akan ditemui oleh pengembang Java (mis. java.versionProperti sistem menggunakan formulir panjang).

Lihat halaman ini untuk informasi lebih lanjut:

GenericJon
sumber
2

Karena buku dengan judul "Pelajari Shiny New Java 3" akan terjual lebih awal dari buku dengan judul "Apa yang baru di Jawa 1.3".

Jadi ya, itu terutama alasan pemasaran. Di sisi lain, saya tidak melihat kejahatan berat di sini. Lagipula, di beberapa produk, seperti Mozilla atau Chrome, angka build besar terus bertambah, dan yang lain tetap menambah angka build minor, meskipun, kadang-kadang, ada perubahan besar pada setiap rilis baru.

Beberapa, seperti Apple, tidak ingin meninggalkan kami, pengguna, dengan nama-nama membosankan seperti "Mac OS 10.6".

Dan Sun dulu baik-baik saja dengan N alias alih-alih memperkenalkan rilis "Java Green Diplodocus".

shabunc
sumber
4
Catatan: tidak pernah ada Java 3, itu Java 2 SE 1.3 (atau J2SE 1.3). Hanya dengan Java 1.5 / 5.0 / 5 mereka menyingkirkan angka "1.x" dalam pemasaran. Ya, meskipun Java 1.2 (dan 1.3 dan 1.4!) Disebut "Java 2" ... pemasaran, yay!
Joachim Sauer
1

TheServerSide menjelaskan perubahan dari "Java 1.x" ke "Java x" sebagai berikut :

Sun telah memotong "1." untuk mengubah J2SE 1.5.0 ke J2SE 5.0. Alasan untuk perubahan itu? Sun mengklaim bahwa "ini adalah peningkatan paling signifikan ke platform Java dan bahasa pemrograman sejak rilis awal hampir satu dekade yang lalu", dan bahwa versi ini layak.

Rupanya ada pembicaraan untuk mengubah nama menjadi "J5SE", tetapi ada pemikiran bahwa merek J2EE terlalu berarti untuk berubah.

Bukankah nomor versi itu menyenangkan?

Baca siaran pers: Sun memperkenalkan rilis platform Java paling signifikan dan canggih dalam 5 tahun

Tautan catatan dalam kutipan di atas dibunuh oleh Oracle . Sejauh yang saya tahu, ini tersedia di prnewswire :

Sun Microsystems, Inc. (Nasdaq: SUNW), pencipta
dan advokat terkemuka teknologi Java (TM), hari ini memperkenalkan Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, peningkatan paling signifikan ke
platform Java dan bahasa pemrograman sejak rilis awal hampir satu dekade
lalu. Dikenal sebagai Project Tiger, platform Java yang diperbarui ini menawarkan kemudahan
pengembangan yang dramatis , pemantauan aplikasi baru dan fitur manajemen,
fokus khusus pada dukungan klien yang kaya untuk desktop PC dan
kinerja yang memecahkan rekor ...


Demi kelengkapan, perhatikan bahwa gaya versi 1.X belum sepenuhnya dihapus .

"Versi 1.5.0" Digunakan oleh Pengembang

J2SE juga menyimpan nomor versi 1.5.0 (atau 1.5) di beberapa tempat yang hanya dapat dilihat oleh pengembang, atau di mana nomor versi diuraikan oleh program. Seperti disebutkan, 1.5.0 mengacu pada platform yang persis sama dan produk-produk bernomor 5.0 ...

Perhatikan juga bahwa sebagaimana ditunjukkan dalam komentar, istilah "J2SE" yang digunakan di atas kemudian diubah menjadi "Java SE".

agas
sumber
4
Untungnya mereka menjatuhkan nama "J2SE" (dan kemudian "J2EE") yang mendukung "Java SE" dan "Java EE". "J2SE 5.0" hanya konyol.
Joachim Sauer