ที่ผ่านมาโลกของ Virtual Machine สำหรับรองรับภาษาพัฒนาโปรแกรมใดๆ นั้นมักมีการพัฒนาแยกขาดจากกันสำหรับแต่ละภาษา ทำให้การออกแบบ Component ต่างๆ ที่ซ้ำซ้อนกัน และการดูแลรักษาโค้ดของระบบเหล่านั้นกลายเป็นภาระ ด้วยเหตุนี้ในช่วงหลายปีที่ผ่านมา ทาง Oracle จึงได้ทำการออกแบบ Virtual Machine ที่สามารถรองรับได้หลายภาษาในหนึ่งเดียว กำเนิดเป็นโครงการ GraalVM ที่ก้าวสู่รุ่น 1.0 แล้วในปัจจุบัน
GraalVM นี้เป็นระบบ Universal Virtual Machine ที่ถูกออกแบบมาเพื่อรองรับโลกยุคสมัยแห่ง Polyglot โดยเฉพาะ ทำให้เหล่านักพัฒนาสามารถเลือกใช้ภาษาที่แตกต่างกันในการพัฒนาส่วนประกอบต่างๆ ของ Software ได้ตามความเหมาะสม และระบบทั้งหมดยังคงทำงานร่วมกันได้อย่างสมบูรณ์ โดยปัจจุบัน GraalVM 1.0 นี้รองรับภาษาต่างๆ ดังนี้
-
ภาษาแบบ JVM-based เช่น Java, Scala, Groovy และ Kotlin
-
JavaScript รวม Node.js ด้วย
-
LLVM bitcode ที่ถูกสร้างมาจากภาษา C, C++ และ Rust
-
Ruby, R และ Python (กำลังอยู่ในช่วงทดสอบ)
GraalVM นี้สามารถถูกใช้งานได้ทั้งในแบบ Standalone หรือแบบ Embedded เป็นส่วนหนึ่งของระบบอื่นๆ อย่าง OpenJDK, Node.js, MySQL หรือ Oracle RDBMS ก็ได้ โดยในการติดตั้ง GraalVM นี้จะมีเครื่องมือต่างๆ มาให้ทั้ง Debugger, Profiler, Heap Viewer และปัจจุบันกำลังเปิดรับการเชื่อมต่อทำงานร่วมกับเครื่องมือจาก 3rd Party ค่ายต่างๆ ด้วย
ตอนนี้มีบริษัทที่เริ่มใช้งาน GraalVM ในระดับ Production แล้วคือ Twitter ซึ่งนำ GraalVM ไปใช้ในระบบ Microservices ที่ใช้ภาษา Scala ทำให้สามารถลดเหตุการณ์การ Pause ของระบบที่เกิดจาก Garbage Collection ลงได้ และลดปริมาณการประมวลผลที่เกิดขึ้น ส่งผลให้ค่าใช้จ่ายโดยรวมของระบบลดลงได้
สำหรับผู้ที่ต้องการศึกษารายละเอียดฉบับเต็ม สามารถศึกษาได้ที่ https://github.com/oracle/graal/releases ครับ
ที่มา: https://blogs.oracle.com/developers/announcing-graalvm