Tại sao phiên bản Java 1.X được gọi là Java X?


58

Tôi thấy rằng Java 1.2 còn được gọi là Java 2. Do "Java 1.x" và "Java x" (ví dụ "Java 1.6" và "Java 6") có đề cập đến cùng một phiên bản Java không?

Và nếu có, tại sao cần phải có sự đối ngẫu này?


7
Lý do tiếp thị?

14
Vẫn tốt hơn Mozilla Firefox. Hơn 10 phiên bản chính trong vòng chưa đầy hai năm.
Andrzej Bobak

2
Vâng, lý do tiếp thị. Câu hỏi SO này là về cùng một chủ đề.
Joachim Sauer

2
Người ta có thể diễn đạt nó theo cách khác: Tại sao Sun (và bây giờ là Oracle) phát hành các bản cập nhật lớn (Java 5, 6, 7 và sớm 8) khi phát hành điểm (1.5, 1.6, 1.7 và sớm 1.8)?
Joachim Sauer

3
@AndrzejBobak Google Chrome tệ hơn, nó đã tiếp cận 20 phiên bản trong 2 năm
Izkata

Câu trả lời:


64

Sun microsystems đã có thói quen xấu khi trải qua nhiều thay đổi đặt tên cho các sản phẩm của mình và sử dụng tên khó hiểu để bắt đầu ngay từ đầu.

Cái gì trong Tên hoặc "Java" nghĩa là gì?

Ban đầu thuật ngữ "Java" đã được sử dụng để mô tả một cách bừa bãi:

  • các ngôn ngữ ,
  • các nền tảng ,
  • và một số người khác tình cờ đề cập đến JVM và Java Class Lib cũng như Java.

Số nội bộ và bên ngoài

Liên quan đến số phiên bản, như những người khác chỉ ra rằng một phần là do tiếp thị và một phần vì họ cảm thấy đơn giản là Java đã thực hiện tiến trình như vậy, một bản nâng cấp phiên bản chính phù hợp hơn (đối với Java 1.2 / Java 2 và khi Java 1.5 / Java 5).

Vì vậy, cái mà chúng ta gọi là Java 2 thực ra là Java 1.2 đến 1.4. Java 3 và Java 4 chưa bao giờ tồn tại và chúng tôi đã chuyển trực tiếp sang Java 5, vì họ đã cố gắng giải thích ở đây (từ trang này về cách đặt tên và phiên bản ).

Tôi cũng có thể là một chút để không gây rối với đánh số nội bộ của họ được sử dụng trong các hệ thống theo dõi và phát triển của họ. Tôi có xu hướng nghĩ về nó như 1.x = phiên bản ngôn ngữ và X = phiên bản ngôn ngữ và sản phẩm. Điều này có ý nghĩa, vì người dùng bình thường không cần phải lo lắng về các mức tăng và cập nhật nhỏ, vì họ khuyến khích cập nhật tự động và những điều này không nên đưa ra bất kỳ thay đổi nào đối với ngôn ngữ hoặc mã byte.

Cũng lưu ý rằng nó sẽ lạ hơn khi bạn xem các phiên bản nhỏ và số cập nhật. Chẳng hạn, chúng ta đã có Java 1.3.1 và sau đó là Java 1.4.1 và 1.4.2.

Cập nhật

Tuy nhiên, không có 1.xy kể từ đó, nó luôn là 1.x.0_UPDATE:

Cũng lưu ý rằng bạn cũng sẽ thấy các bản cập nhật được giới thiệu theo một trong các quy ước đặt tên sau:

  • như 1.5.0_22 hoặc 1.7.0_04 (lưu ý phần đệm 0 trên phiên bản cập nhật, căn chỉnh 2 chữ số),
  • nhưng cũng có 1.5.0u22 hoặc 1.7.0u4 (lưu ý phần đệm 0s đã biến mất, yay!).

Và để thêm phần bối rối và để theo kịp truyền thống của Sun microsystems, Oracle hiện bỏ các thông báo như thế này.

Tên sản phẩm

Cũng lưu ý rằng họ không chỉ có thói quen thay đổi cách đánh số mà còn cả tên của các sản phẩm được cung cấp. Vì vậy, Java 2 có J2SE (Phiên bản tiêu chuẩn Java 2), J2EE (Phiên bản doanh nghiệp Java 2) và J2ME (Phiên bản di động Java 2). Kể từ khi giới thiệu Java 5, các quy ước và từ viết tắt này đã bị loại bỏ (mặc dù một số có khả năng phục hồi cực kỳ lâu, chủ yếu là nhờ các cơ quan tuyển dụng ngu ngốc không biết họ đang nói gì) ủng hộ Java SE, Java EE và Java ME , đôi khi được viết tắt - nhưng không nên chính thức - thành JSE, JEE (khá phổ biến) và JME.

Bạn đọc trang này để biết thêm thông tin về hệ thống phiên bản hiện tại được sử dụng bởi Sun microsystems và bây giờ là Oracle kể từ Java 1.3.1 .

(Đối với điểm thưởng, hãy thử tra cứu lịch sử của NetBeans ngay bây giờ để thấy rằng nó cũng được đổi tên một vài lần).

Họ không biết mình

Họ cũng đang vật lộn để quyết định xem họ có nên cập nhật lại các tài liệu tham khảo hiện có hay không. Chẳng hạn, trang này về các bản phát hành cũ sử dụng hệ thống đánh số cũ cho các bản phát hành cũ, nhưng tên sản phẩm mới hơn (Java SE 1.1, 1.2, 1.3 và 1.4 không được phát hành theo quy ước đặt tên này).

Có lẽ họ chỉ làm phiền chúng tôi cho vui. Ai biết?

Điều gì về JVMS và JLS?

Họ đã có niềm vui với việc đặt tên và đánh số ở đó, tất nhiên.

Các ngôn ngữ Java Specification sử dụng sẽ được phát hành với một syste cuốn sách "phiên bản" versioning ,, sau số sản phẩm. Vì thế:

  • Java 1 có "Đặc tả ngôn ngữ Java",
  • Java 2 có "Đặc tả ngôn ngữ Java, phiên bản 2".

Càng xa càng tốt.

Ngoại trừ "Đặc tả ngôn ngữ Java" sau đó chỉ được chỉnh sửa lại khi các thay đổi ngôn ngữ được giới thiệu trong Java 5 (loại này có ý nghĩa, bạn sẽ không xuất bản các phiên bản sách mới chỉ để giải trí). Vì đây là lần thứ 3 họ chỉnh sửa nó, họ gọi nó là (tada!) "Đặc tả kỹ thuật Java Langauge, phiên bản thứ 3".

Nhưng rõ ràng, mọi người sau đó bắt đầu tự hỏi tại sao 1.3 và 1.4 không có thông số ngôn ngữ hoặc tại sao Java 5 lại phù hợp với phiên bản thứ 3 của thông số ngôn ngữ.

Vì vậy, Java 7 bây giờ chỉ gọi nó là "Đặc tả ngôn ngữ Java, Phiên bản Java SE 7", mặc dù chúng ta thường gọi cái này là JLS7 để viết tắt và để tránh RSI.


Họ không phải là những người duy nhất ...

Để có thêm niềm vui, hãy xem thất bại trong việc đặt tên của Microsoft Windows RT, hoặc việc đặt tên và đánh số điên của Apple với iPhone, iPad hoặc thậm chí là iPod.


"Lưu ý các dấu 0" Dấu 0 nào?
Phường Samuel Edwin

@SamuelEdwinWard: xin lỗi, trộn lẫn ngôn ngữ ở đó. Ý tôi là tiền tố 0s sau dấu _ giữa số phiên bản và số cập nhật.
haylem

tôi thực sự không nghĩ đó là ý nghĩa của Porte-Manteau hay Portmanteau.
Người chơi Grady

@GradyPlayer: thực sự bạn hoàn toàn đúng. Cảm ơn đã chỉ ra rằng. (chỉnh sửa: đã cập nhật tiêu đề, điều đó thực sự khá ngu ngốc đối với tôi).
haylem

5

Câu trả lời ngắn gọn: Marketing.

Câu trả lời dài hơn: Dạng ngắn (ví dụ Java 6) là cái gọi là "phiên bản sản phẩm" và là cách Java được bán cho người dùng và trong các thông cáo báo chí, v.v.

Dạng dài hơn (ví dụ Java 1.6.0) là "phiên bản dành cho nhà phát triển". Nó được sử dụng nội bộ và cũng sẽ được các nhà phát triển Java bắt gặp (ví dụ: java.versionThuộc tính hệ thống sử dụng dạng dài).

Xem các trang này để biết thêm thông tin:


2

Bởi vì cuốn sách có tiêu đề "Tìm hiểu sáng bóng Java 3 mới" sẽ được bán hết sớm hơn cuốn sách có tiêu đề "Có gì mới trong Java 1.3".

Vì vậy, có, nó chủ yếu là lý do tiếp thị. Mặt khác, tôi không thấy một tội ác nghiêm trọng ở đây. Rốt cuộc, trong một số sản phẩm, như Mozilla hay Chrome, số lượng bản dựng chính liên tục được tăng lên và những sản phẩm khác dính vào việc tăng số bản dựng nhỏ, mặc dù, đôi khi, có những thay đổi lớn xuất hiện trong mỗi bản phát hành mới.

Một số người, như Apple, không muốn rời xa chúng tôi, những người dùng, với những cái tên buồn tẻ như "Mac OS 10.6".

Và Sun đã từng ổn với bí danh N thay vì giới thiệu bản phát hành "Java Green Wikimedia Focus".


4
Sidenote: chưa bao giờ có Java 3, đó là Java 2 SE 1.3 (hoặc J2SE 1.3). Chỉ với Java 1.5 / 5.0 / 5, họ mới thoát khỏi số "1.x" trong tiếp thị. Có, thậm chí 'mặc dù Java 1.2 (và 1.3 và 1.4!) Được gọi là "Java 2" ... tiếp thị, yay!
Joachim Sauer

1

TheServerSide giải thích sự thay đổi từ "Java 1.x" thành "Java x" như sau :

Sun đã cắt "1." để thay đổi J2SE 1.5.0 thành J2SE 5.0. Lý do của sự thay đổi? Sun tuyên bố rằng "đây là bản nâng cấp quan trọng nhất đối với nền tảng và ngôn ngữ lập trình Java kể từ khi phát hành lần đầu cách đây gần một thập kỷ" và phiên bản này rất xứng đáng.

Rõ ràng đã có những cuộc đàm phán để đổi tên thành "J5SE", nhưng đã có suy nghĩ rằng thương hiệu J2EE có nghĩa là quá nhiều để thay đổi.

Không phải là số phiên bản vui vẻ?

Đọc thông cáo báo chí: Sun giới thiệu bản phát hành nền tảng Java tiên tiến và quan trọng nhất trong 5 năm

Lưu ý liên kết trong trích dẫn ở trên bị giết bởi Oracle . Theo như tôi có thể nói, nó có sẵn tại prnewswire :

Sun microsystems, Inc. (Nasdaq: SUNW), người sáng tạo
và là người ủng hộ hàng đầu của công nghệ Java (TM), hôm nay đã giới thiệu Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, bản nâng cấp quan trọng nhất cho
nền tảng Java và ngôn ngữ lập trình kể từ đó phát hành ban đầu của nó gần một thập kỷ
trước. Được biết đến với tên Project Tiger, nền tảng Java được cập nhật này mang đến sự
phát triển dễ dàng , các tính năng quản lý và giám sát ứng dụng mới,
tập trung vào hỗ trợ khách hàng phong phú cho máy tính để bàn PC và
hiệu suất phá kỷ lục ...


Để hoàn thiện lưu ý rằng kiểu phiên bản 1.X đã không bị loại bỏ hoàn toàn .

"Phiên bản 1.5.0" Được sử dụng bởi Nhà phát triển

J2SE cũng giữ số phiên bản 1.5.0 (hoặc 1.5) ở một số nơi chỉ hiển thị cho nhà phát triển hoặc nơi số phiên bản được phân tích cú pháp bởi các chương trình. Như đã đề cập, 1.5.0 đề cập chính xác đến cùng một nền tảng và các sản phẩm được đánh số 5.0 ...

Cũng lưu ý rằng như được chỉ ra trong các nhận xét thuật ngữ "J2SE" được sử dụng ở trên đã được đổi thành "Java SE".


4
May mắn thay, họ đã bỏ tên "J2SE" (và sau này là "J2EE") để ủng hộ "Java SE" và "Java EE". "J2SE 5.0" thật ngớ ngẩn.
Joachim Sauer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.