ฉันเห็นว่า Java 1.2 รู้จักกันในชื่อ Java 2 สนใจ "Java 1.x" และ "Java x" (เช่น "Java 1.6" และ "Java 6") อ้างถึง Java รุ่นเดียวกันหรือไม่
และถ้าใช่ทำไมต้องเป็นคู่นี้?
ฉันเห็นว่า Java 1.2 รู้จักกันในชื่อ Java 2 สนใจ "Java 1.x" และ "Java x" (เช่น "Java 1.6" และ "Java 6") อ้างถึง Java รุ่นเดียวกันหรือไม่
และถ้าใช่ทำไมต้องเป็นคู่นี้?
คำตอบ:
Sun Microsystems กลับมาเป็นนิสัยที่ไม่ดีในการผ่านการเปลี่ยนแปลงการตั้งชื่อจำนวนมากสำหรับผลิตภัณฑ์ของตนและใช้ชื่อที่สับสนเพื่อเริ่มต้นในตอนแรก
เดิมทีคำว่า "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 เสมอ:
โปรดทราบว่าคุณจะเห็นการอัปเดตที่อ้างอิงกับแบบแผนการตั้งชื่ออย่างใดอย่างหนึ่งต่อไปนี้:
และเพื่อความสับสนเป็นพิเศษและเพื่อให้สอดคล้องกับประเพณีของ 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 ไม่ได้เผยแพร่ด้วยหลักการตั้งชื่อนี้)
บางทีพวกเขาอาจจะแค่ทำให้เราสนุก ใครจะรู้?
พวกเขาสนุกกับการตั้งชื่อและนับเลขด้วยเช่นกัน
Java Language ข้อกำหนดที่ใช้ในการได้รับการปล่อยตัวด้วย syste หนังสือ "รุ่น" เวอร์ชัน ,, ต่อไปนี้หมายเลขสินค้า ดังนั้น:
จนถึงตอนนี้ดีมาก
ยกเว้น "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 หรือการตั้งชื่อและความบ้าคลั่งของแอปเปิลกับไอโฟน, ไอแพดหรือไอพอด
คำตอบสั้น ๆ : การตลาด
คำตอบที่ยาวกว่า: รูปแบบย่อ (เช่น 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 เคยเป็น OK ด้วยนามแฝง N แทนการเปิดตัว "Java Green Diplodocus"
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" ในภายหลัง