Oracle ได้ประกาศการเปลี่ยนแปลงครั้งสำคัญในกลยุทธ์ GraalVM โดยยุติการสนับสนุนฟีเจอร์ที่เกี่ยวข้องกับ Java และหันไปมุ่งเน้นภาษาโปรแกรมมิ่งที่ไม่ใช่ Java อย่าง Python และ JavaScript การตัดสินใจนี้ได้สร้างความสับสนและความกังวลในชุมชนนักพัฒนา โดยเฉพาะผู้ที่พึ่งพาเทคโนโลยี Native Image ของ GraalVM ในการสร้างแอปพลิเคชัน Java แบบ standalone
การประกาศนี้เป็นการสิ้นสุดยุคของการรวม Java เข้ากับ GraalVM Oracle JDK 24 จะเป็นรุ่นสุดท้ายที่รวม Graal JIT compiler แบบทดลอง และ GraalVM สำหรับ JDK 24 เป็นเวอร์ชันสุดท้ายที่ได้รับใบอนุญาตเป็นส่วนหนึ่งของผลิตภัณฑ์ Java SE ของ Oracle ต่อจากนี้ Oracle จะยุติเทคโนโลยี Native Image สำหรับลูกค้า Java SE และแนะนำให้พวกเขาไปสำรวจฟีเจอร์ที่จะมาใน Project Leyden ของ OpenJDK แทน
สิ่งที่จะถูกยกเลิก:
- ผลิตภัณฑ์ GraalVM for Java SE สำหรับลูกค้า (การสนับสนุนเชิงพาณิชย์)
- Graal JIT compiler ใน Oracle JDK (หลังจาก JDK 24)
- เทคโนโลยี Native Image สำหรับลูกค้า Java SE
- การพัฒนาที่เน้น Java ในทีม GraalVM
ความสับสนในชุมชนเกี่ยวกับข้อความของ Oracle
ชุมชนนักพัฒนาได้แสดงความสับสนอย่างมากเกี่ยวกับการประกาศที่เขียนไม่ชัดเจนของ Oracle นักพัฒนาหลายคนตีความข่าวนี้ในตอนแรกว่าเป็นการปิด GraalVM ทั้งหมด ทำให้เกิดความกังวลเกี่ยวกับอนาคตของเวิร์กโฟลว์การคอมไพล์ Java-to-native ของพวกเขา ภาษาที่คลุมเครือในแถลงการณ์ของ Oracle ทำให้นักพัฒนาไม่แน่ใจว่า GraalVM เวอร์ชันฟรีจะยังคงมีอยู่ต่อไปหรือไม่ หรือโปรเจกต์ทั้งหมดจะถูกยกเลิก
มันเขียนไม่ชัดเจน Graal และ NI ไม่ได้ไปไหน ถ้อยคำที่ใช้คือ 'Native Image กำลังถูกยุติสำหรับลูกค้า Java SE Product' นั่นหมายความว่ามันจะไม่ถูกรวมเป็นผลิตภัณฑ์สำหรับ OracleJdk ที่คุณจะต้องจ่ายเงินและสมัครสมาชิกอีกต่อไป
ความสับสนนี้เน้นย้ำถึงปัญหาการสื่อสารในวงกว้าง เนื่องจากนักพัฒนาคาดหวังคำแนะนำที่ชัดเจนกว่านี้เกี่ยวกับเส้นทางการย้ายข้อมูลและเครื่องมือทางเลือกสำหรับเวิร์กโฟลว์ที่มีอยู่
การเปลี่ยนแปลงกลยุทธ์ทำให้เกิดคำถาม
การตัดสินใจของ Oracle ที่จะยกเลิกการสนับสนุน Java ในขณะที่ขยายไปยังพื้นที่ของ Python และ JavaScript ทำให้ผู้สังเกตการณ์ในอุตสาหกรรมงงงวย การเคลื่อนไหวนี้ดูขัดแย้งกับสามัญสำนึกเมื่อพิจารณาจากตำแหน่งของ Oracle ในฐานะผู้ดูแล Java และความต้องการที่เพิ่มขึ้นสำหรับ native compilation ในสภาพแวดล้อม cloud และ serverless นักวิจารณ์ตั้งคำถามว่ามีความต้องการในตลาดเพียงพอหรือไม่สำหรับ Python และ JavaScript runtimes ที่ได้รับการสนับสนุนจาก Oracle โดยเฉพาะเมื่อทางเลือกที่มีอยู่แล้วครองตลาดในระบบนิเวศเหล่านี้
จังหวะเวลาของการเปลี่ยนแปลงนี้เกิดขึ้นพร้อมกับการรวมการปรับปรุง GraalVM ที่ประสบความสำเร็จเข้ากับ HotSpot JVM มาตรฐานของ Oracle และความคืบหน้าใน Project Leyden ซึ่งบ่งชี้ว่า Oracle อาจมองว่านวัตกรรมหลักที่เกี่ยวข้องกับ Java มีความสุกงอมเพียงพอสำหรับการนำมาใช้ในกระแสหลัก
เหตุการณ์สำคัญตามลำดับเวลา:
- 2022: Oracle ประกาศแผนการปรับ GraalVM ให้สอดคล้องกับการพัฒนา Java
- 2023: GraalVM นำรอบการเปิดตัว Java มาใช้
- 2024: Oracle รวม Graal JIT เป็นตัวเลือกใน Oracle JDK
- JDK 24: รุ่นสุดท้ายที่จะรวม Graal JIT แบบทดลอง
- JDK 25: จะรวม JEP 514 (Ahead-of-Time Command-Line Ergonomics) และ JEP 515 (Ahead-of-Time Method Profiling)
เส้นทางการย้ายข้อมูลและทางเลือกในอนาคต
Oracle กำลังสนับสนุนให้ผู้ใช้ GraalVM เปลี่ยนไปใช้ Oracle JDK หรือ OpenJDK รุ่นมาตรฐาน สำหรับนักพัฒนาที่ต้องการฟีเจอร์ ahead-of-time compilation Oracle ชี้ไปที่การปรับปรุงที่จะมาใน JDK 25 รวมถึง JEP 514 สำหรับการปรับปรุง ahead-of-time command-line และ JEP 515 สำหรับ ahead-of-time method profiling งานที่กำลังดำเนินการอยู่ของ Project Leyden เกี่ยวกับ ahead-of-time code compilation แสดงถึงวิสัยทัศน์ระยะยาวของ Oracle สำหรับการปรับปรุงประสิทธิภาพ native Java
อย่างไรก็ตาม ช่วงเวลาการเปลี่ยนผ่านนี้ทำให้นักพัฒนาหลายคนอยู่ในสภาพไม่แน่นอน โดยเฉพาะผู้ที่สร้างบริการขนาดเล็กที่พึ่งพาความสามารถของ GraalVM ในการสร้าง native binaries แบบ standalone โดยไม่ต้องติดตั้ง Java runtime แบบเต็ม
การประกาศนี้สะท้อนถึงกลยุทธ์ที่กว้างขึ้นของ Oracle ในการรวมเทคโนโลยีทดลองที่ประสบความสำเร็จเข้ากับ Java กระแสหลัก ในขณะที่สำรวจโอกาสใหม่ในภูมิทัศน์การเขียนโปรแกรม polyglot ว่าการเสี่ยงกับภาษาที่ไม่ใช่ Java นี้จะคุ้มค่าหรือไม่ยังต้องรอดู แต่ผลกระทบทันทีต่อชุมชน Java นั้นชัดเจน: ช่วงเวลาของความไม่แน่นอนและการย้ายข้อมูลแบบบังคับสำหรับผู้ใช้ GraalVM
