1 คะแนน โดย GN⁺ 2024-09-18 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • รันไทม์ 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 ความคิดเห็น

 
GN⁺ 2024-09-18
ความคิดเห็นจาก Hacker News
  • แชร์ผลเบนช์มาร์กที่เปรียบเทียบ GraalPy กับ JDK8

    • JDK8 เร็วกว่า GraalPython EE 22.3 Hotspot ประมาณ 2.4 เท่า
    • JDK8 เร็วกว่า CPython 3.11 ถึง 41 เท่า
    • GraalPython เร็วกว่า CPython ประมาณ 17 เท่า และเร็วกว่า PyPy ประมาณ 2 เท่า
    • Graal Enterprise Edition (EE) เร็วกว่า Community Edition (CE) ประมาณ 1.31 เท่า
  • พยายามรันโปรเจ็กต์ขนาดใหญ่ด้วย GraalVM แต่พบปัญหาหลายอย่าง

    • Maturin ไม่รองรับอินเทอร์พรีเตอร์ Graal จึงใช้แพ็กเกจ Py03 ไม่ได้
    • uv รันไม่ได้ และในแพ็กเกจ os ก็ไม่มี fork กับ execve
    • Graal ต้องใส่แพตช์จำนวนมากให้กับไลบรารียอดนิยม
    • การใช้ Graal กับโปรเจ็กต์ขนาดใหญ่ทำได้ยากเพราะมีความเสี่ยงสูง
  • มีความเห็นว่าถ้า GraalVM สามารถเรียกฟังก์ชัน Java (หรือ Scala) ได้โดยตรงแบบไม่ต้องมีบริดจ์ ก็น่าจะมีประโยชน์กับโปรแกรมที่ใช้ Spark

  • จุดที่น่าสนใจของ Python คือการผสานรวมกับ ML toolchain, CUDA, Metal/MLX, pytorch, tensorflow, ตัวเข้ารหัส/ถอดรหัสของ LLM เป็นต้น

    • จึงมีข้อสงสัยว่า GraalVM จะรันโค้ดเหล่านี้ได้อย่างมีความหมายหรือไม่
  • มีกรณีที่ทำ Java/Python integration ใน Clojure ได้อยู่แล้ว

    • เป็นไปได้ด้วย Chris Neurnberger และ libpython-clj
  • ตอนนี้ยังไม่รองรับ DuckDB แต่รองรับ Pandas และ matplotlib

    • มีความเห็นว่าถ้ารองรับ DuckDB และ Polars ก็จะช่วยงานด้านข้อมูลได้มาก
  • มีคนสังเกตว่า GraalPy ตั้งเป้าไปที่ Python 3.11

    • ไม่มีการพูดถึง GIL
    • มีคำเตือนว่าถ้าเป็นผู้ใช้ Python อย่ากดลิงก์เริ่มต้นใช้งานอย่างรวดเร็ว
  • มีการตั้งคำถามถึง use case ของ GraalPy

    • มีความเห็นว่ายังไม่เข้าใจว่าทำไมต้องใช้ GraalPy
  • มีคำถามว่า GraalPy จำเป็นต้องรันบน GraalVM เท่านั้นหรือไม่ หรือจะใช้กับ JVM implementation อื่นได้ด้วย

 
ahwjdekf 2024-09-29

โปรเจ็กต์ที่กำลังทำอยู่ตอนนี้เป็นโปรเจ็กต์หลุดโลกที่ให้เอาสิ่งที่ทำไว้ด้วย python numpy, pandas ไปทำใหม่ใน Java ตอนนี้เลยต้องสร้างใหม่ตั้งแต่ต้นอยู่ มันไร้สาระมาก ถ้า GraalPy รองรับ pandas, numpy ได้ดีจริง ๆ ก็คงไม่ต้องมาทำเรื่องเสียเวลาแบบนี้ แต่ในสภาพแวดล้อม Windows ก็ยังมีการพึ่งพา Visual Studio อยู่นะ เพื่อใช้เป็นสภาพแวดล้อมสำหรับคอมไพล์ C++ แล้วไอเดียมันก็ดีและมีประโยชน์มาก แต่ก็อดกังวลไม่ได้ว่าจะทำอีโคซิสเต็มที่ใหญ่ขนาดนี้ให้เสร็จสมบูรณ์ได้โดยไม่พลาดได้อย่างไร ก็ยังสงสัยเหมือนกันว่าสุดท้ายแล้วจะเสถียรพอให้เชื่อใจและใช้งานได้ไหม ถ้าเป็นแบบนั้นได้ก็คงดีมากเลย

 
ahwjdekf 2024-10-01

พอดูเพิ่มอีกหน่อยแล้ว เหมือนว่าผมจะเข้าใจผิดบางส่วนไปนะครับ การพึ่งพา gcc หรือ vs จำเป็นเฉพาะในกรณีที่ใช้ native image เท่านั้นครับ