Oracle ยุติการสนับสนุน Java ใน GraalVM เปลี่ยนโฟกัสไปที่ Python และ JavaScript

ทีมชุมชน BigGo
Oracle ยุติการสนับสนุน Java ใน GraalVM เปลี่ยนโฟกัสไปที่ Python และ JavaScript

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

อ้างอิง: Detaching GraalVM from the Java Ecosystem Train