Oracle đã công bố một sự thay đổi lớn trong chiến lược GraalVM của mình, chấm dứt hỗ trợ cho các tính năng liên quan đến Java trong khi chuyển hướng sang các ngôn ngữ lập trình khác ngoài Java như Python và JavaScript. Quyết định này đã gây ra sự nhầm lẫn và lo ngại trong cộng đồng nhà phát triển, đặc biệt là những người dựa vào công nghệ Native Image của GraalVM để tạo ra các ứng dụng Java độc lập.
Thông báo này đánh dấu sự kết thúc của một kỷ nguyên cho việc tích hợp Java của GraalVM. Oracle JDK 24 sẽ là phiên bản cuối cùng bao gồm trình biên dịch Graal JIT thử nghiệm, và GraalVM cho JDK 24 đại diện cho phiên bản cuối cùng được cấp phép như một phần của các sản phẩm Java SE của Oracle. Từ nay về sau, Oracle sẽ ngừng công nghệ Native Image cho khách hàng Java SE, thay vào đó hướng dẫn họ khám phá các tính năng sắp tới trong Project Leyden của OpenJDK.
Những gì đang bị ngừng:
- Sản phẩm GraalVM for Java SE dành cho khách hàng (hỗ trợ thương mại)
- Trình biên dịch Graal JIT trong Oracle JDK (sau JDK 24)
- Công nghệ Native Image cho khách hàng Java SE
- Phát triển tập trung vào Java trong nhóm GraalVM
Sự nhầm lẫn của cộng đồng về thông điệp của Oracle
Cộng đồng nhà phát triển đã bày tỏ sự nhầm lẫn đáng kể về thông báo được diễn đạt kém của Oracle. Nhiều nhà phát triển ban đầu hiểu tin tức này như việc đóng cửa hoàn toàn GraalVM, dẫn đến lo ngại về tương lai của quy trình biên dịch Java-to-native của họ. Ngôn ngữ mơ hồ trong tuyên bố của Oracle đã khiến các nhà phát triển không chắc chắn liệu các phiên bản GraalVM miễn phí có tiếp tục tồn tại hay toàn bộ dự án đang bị từ bỏ.
Nó được diễn đạt kém. Graal và NI không đi đâu cả. Cách diễn đạt là như thế này: 'Native Image, đang bị ngừng cho khách hàng sản phẩm Java SE.' Điều đó có nghĩa là nó sẽ không còn được bao gồm như một sản phẩm cho OracleJdk mà bạn sẽ phải trả tiền và đăng ký.
Sự nhầm lẫn này làm nổi bật một vấn đề giao tiếp rộng lớn hơn, vì các nhà phát triển mong đợi hướng dẫn rõ ràng hơn về các con đường di chuyển và các công cụ thay thế cho quy trình làm việc hiện tại của họ.
Sự thay đổi chiến lược đặt ra nhiều câu hỏi
Quyết định của Oracle từ bỏ hỗ trợ Java trong khi mở rộng vào lãnh thổ Python và JavaScript đã khiến các nhà quan sát ngành công nghiệp bối rối. Động thái này có vẻ phản trực giác khi xét đến vị thế của Oracle như người quản lý Java và nhu cầu ngày càng tăng về biên dịch native trong môi trường cloud và serverless. Các nhà phê bình đặt câu hỏi liệu có đủ nhu cầu thị trường cho các runtime Python và JavaScript được Oracle hỗ trợ hay không, đặc biệt khi các lựa chọn thay thế đã được thiết lập sẵn đã thống trị các hệ sinh thái này.
Thời điểm của sự thay đổi này trùng với việc Oracle tích hợp các tối ưu hóa GraalVM thành công vào HotSpot JVM tiêu chuẩn và tiến bộ trên Project Leyden, cho thấy Oracle có thể coi các đổi mới cốt lõi liên quan đến Java đã đủ trưởng thành để được áp dụng rộng rãi.
Các Sự Kiện Quan Trọng Theo Thời Gian:
- 2022: Oracle công bố kế hoạch đồng bộ hóa GraalVM với quá trình phát triển Java
- 2023: GraalVM áp dụng chu kỳ phát hành của Java
- 2024: Oracle đưa Graal JIT vào Oracle JDK như một tùy chọn
- JDK 24: Phiên bản cuối cùng bao gồm Graal JIT ở dạng thử nghiệm
- JDK 25: Sẽ bao gồm JEP 514 (Ahead-of-Time Command-Line Ergonomics) và JEP 515 (Ahead-of-Time Method Profiling)
Con đường di chuyển và các lựa chọn thay thế trong tương lai
Oracle đang khuyến khích người dùng GraalVM chuyển sang các phiên bản Oracle JDK hoặc OpenJDK tiêu chuẩn. Đối với các nhà phát triển tìm kiếm các tính năng biên dịch ahead-of-time, Oracle chỉ đến các cải tiến sắp tới trong JDK 25, bao gồm JEP 514 cho tối ưu hóa command-line ahead-of-time và JEP 515 cho profiling method ahead-of-time. Công việc đang diễn ra của Project Leyden về biên dịch mã ahead-of-time đại diện cho tầm nhìn dài hạn của Oracle về cải thiện hiệu suất Java native.
Tuy nhiên, giai đoạn chuyển đổi này khiến nhiều nhà phát triển trong tình trạng bất định, đặc biệt là những người xây dựng các dịch vụ nhẹ phụ thuộc vào khả năng của GraalVM để tạo ra các tệp nhị phân native độc lập mà không cần cài đặt Java runtime đầy đủ.
Thông báo này phản ánh chiến lược rộng lớn hơn của Oracle trong việc hợp nhất các công nghệ thử nghiệm thành công vào Java chính thống trong khi khám phá các cơ hội mới trong bối cảnh lập trình đa ngôn ngữ. Liệu cuộc đánh bạc này trên các ngôn ngữ khác ngoài Java có thành công hay không vẫn còn phải xem, nhưng tác động ngay lập tức đến cộng đồng Java là rõ ràng: một giai đoạn bất định và di chuyển bắt buộc cho những người sử dụng GraalVM.