ทำไม 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+ เวอร์ชันหลักในเวลาน้อยกว่าสองปี
Andrzej Bobak

2
ใช่เหตุผลทางการตลาด คำถาม SOนี้เกี่ยวกับหัวข้อเดียวกัน
Joachim Sauer

2
หนึ่งวลีอาจแตกต่างกัน: เหตุใดซัน (และตอนนี้ Oracle) จึงปล่อยการอัปเดตที่สำคัญ (Java 5, 6, 7 และ 8 เร็ว ๆ นี้) ตามที่เผยแพร่ (1.5, 1.6, 1.7 และ 1.8)
Joachim Sauer

3
@AndrzejBobak Google Chrome แย่ลงกำลังเข้าใกล้ 20 รุ่นใน 2 ปี
Izkata

คำตอบ:


64

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 = ภาษาและรุ่นผลิตภัณฑ์ เป็นเรื่องที่สมเหตุสมผลเนื่องจากผู้ใช้ปกติไม่จำเป็นต้องกังวลเกี่ยวกับการเพิ่มและการอัพเดทเล็กน้อยเนื่องจากพวกเขาสนับสนุนการอัปเดตอัตโนมัติ

โปรดทราบว่ามันจะได้รับการ weirder เมื่อคุณดูรุ่นรองและหมายเลขการปรับปรุง ตัวอย่างเช่นเรามี Java 1.3.1 และใหม่กว่า Java 1.4.1 และ 1.4.2

อัพเดท

อย่างไรก็ตามไม่มี 1.xy ตั้งแต่นั้นมาจะเป็น 1.x.0_UPDATE เสมอ:

  • Java 5 มีการอัปเดตถึง1.5.0_22 ,
  • Java 6 - เพื่อให้ห่างไกล - ถึง 1.6.0_37 ,
  • Java 7 - เพื่อให้ห่างไกล - ถึง 1.7.0_09

โปรดทราบว่าคุณจะเห็นการอัปเดตที่อ้างอิงกับแบบแผนการตั้งชื่ออย่างใดอย่างหนึ่งต่อไปนี้:

  • เช่น 1.5.0_22 หรือ 1.7.0_04 (บันทึกการเติมเต็ม 0s ในเวอร์ชั่นอัปเดตโดยเรียงตามตัวเลข 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 การประชุมและคำย่อเหล่านี้ได้ถูกทิ้งลงไป (แม้ว่าบางคนจะมีความยืดหยุ่นยาวนานอย่างไม่น่าเชื่อส่วนใหญ่ขอขอบคุณสำหรับ บริษัท จัดหางานที่โง่ที่ไม่มีเงื่อนงำอะไรที่พวกเขากำลังพูดถึง) ซึ่งบางครั้งย่อ - แต่ไม่ควรเป็นทางการ - สำหรับ JSE, JEE (ค่อนข้างธรรมดา) และ JME

คุณอ่านหน้านี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเวอร์ชันระบบที่ใช้ในปัจจุบันโดย Sun Microsystems และตอนนี้ออราเคิลตั้งแต่ Java 1.3.1

(สำหรับคะแนนโบนัสลองค้นหาประวัติของ NetBeans ทันทีเพื่อดูว่ามันถูกเปลี่ยนชื่อไปสองสามครั้ง)

พวกเขาไม่รู้จักตัวเอง

พวกเขายังดิ้นรนเพื่อตัดสินใจว่าควรอัปเดตข้อมูลอ้างอิงที่มีอยู่หรือไม่ ตัวอย่างเช่นหน้านี้เกี่ยวกับการเปิดตัวรุ่นเก่าใช้ระบบการกำหนดหมายเลขแบบเก่าสำหรับรุ่นเก่า แต่ชื่อผลิตภัณฑ์ที่ใหม่กว่า (Java SE 1.1, 1.2, 1.3 และ 1.4 ไม่ได้เผยแพร่ด้วยหลักการตั้งชื่อนี้)

บางทีพวกเขาอาจจะแค่ทำให้เราสนุก ใครจะรู้?

สิ่งที่เกี่ยวกับ JVMS และ JLS?

พวกเขาสนุกกับการตั้งชื่อและนับเลขด้วยเช่นกัน

Java Language ข้อกำหนดที่ใช้ในการได้รับการปล่อยตัวด้วย syste หนังสือ "รุ่น" เวอร์ชัน ,, ต่อไปนี้หมายเลขสินค้า ดังนั้น:

  • Java 1 มี "Java Language Specification" ของมัน
  • Java 2 มี "Java Language Specification, 2nd edition"

จนถึงตอนนี้ดีมาก

ยกเว้น "Java Language Specification" ในภายหลังจะได้รับการแก้ไขอีกครั้งเมื่อมีการแนะนำการเปลี่ยนแปลงภาษาใน Java 5 (ซึ่งเป็นภาษาที่เหมาะสมคุณจะไม่เผยแพร่หนังสือเล่มใหม่เพื่อความสนุกสนาน) เนื่องจากนี่เป็นครั้งที่ 3 ที่พวกเขาแก้ไขพวกเขาจึงเรียกมันว่า (tada!) "Java Langauge Specification รุ่นที่ 3"

แต่เห็นได้ชัดว่าผู้คนเริ่มสงสัยว่าทำไม 1.3 และ 1.4 จึงไม่มีสเป็คภาษาหรือทำไมจาวา 5 จึงจับคู่กับสเป็คภาษารุ่นที่ 3

ดังนั้น Java 7 จึงเรียกมันว่า "Java Language Specification, Java SE 7 Edition" แม้ว่าเรามักจะอ้างถึงสิ่งนี้ว่าเป็น JLS7 สำหรับการจดชวเลขและเพื่อหลีกเลี่ยง RSI


พวกเขาไม่ใช่คนเดียว ...

เพื่อความสนุกสนานเพิ่มเติมดูที่การตั้งชื่อล้มเหลวของ Microsoft Windows RT หรือการตั้งชื่อและความบ้าคลั่งของแอปเปิลกับไอโฟน, ไอแพดหรือไอพอด


"จดบันทึก 0 ท้าย" อะไรติดตาม 0s
ซามูเอลเอ็ดวินวอร์ด

@SamuelEdwinWard: ขออภัยภาษามิกซ์อยู่ที่นั่น ฉันหมายถึงคำนำหน้า 0 หลังจาก _ ระหว่างหมายเลขรุ่นและหมายเลขการปรับปรุง
haylem

ฉันไม่คิดว่านั่นเป็นความหมายของ Porte-Manteau หรือ Portmanteau
ผู้เล่นเกรดี้

@GradyPlayer: คุณพูดถูกจริง ๆ ขอบคุณสำหรับการชี้ให้เห็นว่า (แก้ไข: อัปเดตส่วนหัวนั่นเป็นเรื่องที่ค่อนข้างน่าเบื่อสำหรับฉัน)
haylem

5

คำตอบสั้น ๆ : การตลาด

คำตอบที่ยาวกว่า: รูปแบบย่อ (เช่น Java 6) เป็นสิ่งที่เรียกว่า "รุ่นผลิตภัณฑ์" และเป็นวิธีการทำตลาด Java ให้กับผู้ใช้และในการแถลงข่าวเป็นต้น

แบบฟอร์มที่ยาวขึ้น (เช่น Java 1.6.0) คือ "เวอร์ชันสำหรับนักพัฒนา" มันถูกใช้ภายในและจะพบโดยนักพัฒนา Java (เช่นjava.versionคุณสมบัติของระบบใช้รูปแบบยาว)

ดูหน้าเหล่านี้สำหรับข้อมูลเพิ่มเติม:


2

เนื่องจากหนังสือที่มีชื่อ "Learn Shiny New Java 3" จะถูกขายก่อนหน้าหนังสือที่มีชื่อว่า "มีอะไรใหม่ใน Java 1.3"

ใช่มันเป็นเหตุผลทางการตลาดเป็นหลัก ในทางกลับกันฉันไม่เห็นอาชญากรรมร้ายแรงที่นี่ ท้ายที่สุดในบางผลิตภัณฑ์เช่น Mozilla หรือ Chrome หมายเลขบิวด์หลักจะเพิ่มขึ้นเรื่อย ๆ และบางรุ่นก็เพิ่มจำนวนบิวด์รองเล็กน้อย แต่บางครั้งก็มีการเปลี่ยนแปลงครั้งใหญ่ในแต่ละรีลีสใหม่

บางคนเช่น Apple ไม่ต้องการทิ้งเราผู้ใช้ที่มีชื่อน่าเบื่อเช่น "Mac OS 10.6"

และ Sun เคยเป็น OK ด้วยนามแฝง N แทนการเปิดตัว "Java Green Diplodocus"


4
Sidenote: ไม่เคยมี 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 x" ดังต่อไปนี้ :

ซันได้ตัดทอน "1. " เพื่อเปลี่ยน J2SE 1.5.0 เป็น J2SE 5.0 เหตุผลของการเปลี่ยนแปลงคืออะไร? ซุนอ้างว่า "นี่เป็นการอัพเกรดครั้งสำคัญที่สุดสำหรับแพลตฟอร์มภาษาจาวาและภาษาโปรแกรมตั้งแต่รุ่นแรกเกือบหนึ่งทศวรรษที่ผ่านมา" และรุ่นนี้ถือว่าคุ้มค่า

เห็นได้ชัดว่ามีการเจรจาเพื่อเปลี่ยนชื่อเป็น "J5SE" แต่มีความคิดว่าแบรนด์ J2EE เปลี่ยนไปมากเกินไป

ตัวเลขเวอร์ชันไม่สนุกใช่ไหม

อ่านข่าวประชาสัมพันธ์: Sun แนะนำแพลตฟอร์ม Java ที่สำคัญและก้าวหน้าที่สุดใน 5 ปี

การเชื่อมโยงหมายเหตุในใบเสนอราคาข้างต้นจะถูกฆ่าโดยออราเคิล เท่าที่ฉันสามารถบอกได้มีให้ที่ prnewswire :

Sun Microsystems, Inc. (Nasdaq: SUNW) ผู้สร้าง
และผู้สนับสนุนชั้นนำของเทคโนโลยี Java (TM) เปิดตัว Java 2 Platform
Standard Edition (J2SE (TM)) 5.0 ซึ่งเป็นการอัพเกรดที่สำคัญที่สุดสำหรับ
แพลตฟอร์มJava และภาษาโปรแกรมตั้งแต่ การเปิดตัวครั้งแรกของมันเกือบหนึ่งทศวรรษ
ที่ผ่านมา รู้จักกันในชื่อโครงการเสือแพลตฟอร์ม Java ปรับปรุงนี้มีความสะดวกอย่างมาก
ของการพัฒนาใหม่ตรวจสอบใบสมัครและคุณสมบัติการจัดการที่
มุ่งเน้นเฉพาะในการสนับสนุนลูกค้าที่หลากหลายสำหรับเดสก์ทอปพีซีและทำลายสถิติ
ประสิทธิภาพ ...


เพื่อประโยชน์ในการทราบความสมบูรณ์ที่ 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" กำลังโง่
Joachim Sauer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.