- รันไทม์ Python 3 แบบฝังตัวประสิทธิภาพสูงสำหรับ Java
- สามารถโหลดและใช้งานแพ็กเกจ Python ได้โดยตรงจาก Java
- รองรับแพ็กเกจ AI และวิทยาการข้อมูลของ Python รุ่นใหม่
- สามารถรัน Python ได้ด้วยความเร็วระดับเนทีฟโค้ดผ่านคอมไพเลอร์ Graal JIT
- มอบเส้นทางอัปเกรดให้แก่ผู้ใช้ Jython
- สามารถใช้สคริปต์ Python จาก Java เพื่อโต้ตอบกับคลาสและเฟรมเวิร์กของ Java ได้
- สามารถแพ็กเกจแอปพลิเคชัน Python เป็นไบนารีเดี่ยวได้ด้วย GraalVM Native Image
สรุปโดย GN⁺
- GraalPy มอบรันไทม์ที่ช่วยให้รัน Python บน Java ได้อย่างมีประสิทธิภาพสูง
- มอบเส้นทางอัปเกรดให้ผู้ใช้ Jython เพื่อใช้งานความสามารถสมัยใหม่ของ Python
- สามารถผสานรวมไลบรารีด้านวิทยาการข้อมูลของ Python เข้ากับแอปพลิเคชัน Java ได้อย่างง่ายดายผ่านอินเทอร์เฟซ polyglot ของ GraalVM
- เพิ่มการทำงานร่วมกันระหว่าง Python และ Java เพื่อมอบความยืดหยุ่นให้แก่นักพัฒนา
- โครงการที่มีความสามารถคล้ายกัน ได้แก่ Jython และ Py4J
3 ความคิดเห็น
ความคิดเห็นจาก Hacker News
แชร์ผลเบนช์มาร์กที่เปรียบเทียบ GraalPy กับ JDK8
พยายามรันโปรเจ็กต์ขนาดใหญ่ด้วย GraalVM แต่พบปัญหาหลายอย่าง
forkกับexecveมีความเห็นว่าถ้า GraalVM สามารถเรียกฟังก์ชัน Java (หรือ Scala) ได้โดยตรงแบบไม่ต้องมีบริดจ์ ก็น่าจะมีประโยชน์กับโปรแกรมที่ใช้ Spark
จุดที่น่าสนใจของ Python คือการผสานรวมกับ ML toolchain, CUDA, Metal/MLX, pytorch, tensorflow, ตัวเข้ารหัส/ถอดรหัสของ LLM เป็นต้น
มีกรณีที่ทำ Java/Python integration ใน Clojure ได้อยู่แล้ว
ตอนนี้ยังไม่รองรับ DuckDB แต่รองรับ Pandas และ matplotlib
มีคนสังเกตว่า GraalPy ตั้งเป้าไปที่ Python 3.11
มีการตั้งคำถามถึง use case ของ GraalPy
มีคำถามว่า GraalPy จำเป็นต้องรันบน GraalVM เท่านั้นหรือไม่ หรือจะใช้กับ JVM implementation อื่นได้ด้วย
โปรเจ็กต์ที่กำลังทำอยู่ตอนนี้เป็นโปรเจ็กต์หลุดโลกที่ให้เอาสิ่งที่ทำไว้ด้วย
python numpy,pandasไปทำใหม่ใน Java ตอนนี้เลยต้องสร้างใหม่ตั้งแต่ต้นอยู่ มันไร้สาระมาก ถ้า GraalPy รองรับpandas,numpyได้ดีจริง ๆ ก็คงไม่ต้องมาทำเรื่องเสียเวลาแบบนี้ แต่ในสภาพแวดล้อม Windows ก็ยังมีการพึ่งพา Visual Studio อยู่นะ เพื่อใช้เป็นสภาพแวดล้อมสำหรับคอมไพล์ C++ แล้วไอเดียมันก็ดีและมีประโยชน์มาก แต่ก็อดกังวลไม่ได้ว่าจะทำอีโคซิสเต็มที่ใหญ่ขนาดนี้ให้เสร็จสมบูรณ์ได้โดยไม่พลาดได้อย่างไร ก็ยังสงสัยเหมือนกันว่าสุดท้ายแล้วจะเสถียรพอให้เชื่อใจและใช้งานได้ไหม ถ้าเป็นแบบนั้นได้ก็คงดีมากเลยพอดูเพิ่มอีกหน่อยแล้ว เหมือนว่าผมจะเข้าใจผิดบางส่วนไปนะครับ การพึ่งพา
gccหรือvsจำเป็นเฉพาะในกรณีที่ใช้ native image เท่านั้นครับ