1 điểm bởi GN⁺ 2024-09-18 | 3 bình luận | Chia sẻ qua WhatsApp
  • Môi trường chạy Python 3 có thể nhúng hiệu năng cao cho Java
  • Có thể tải và sử dụng trực tiếp các gói Python từ Java
  • Tương thích với các gói AI và khoa học dữ liệu Python mới nhất
  • Có thể chạy Python với tốc độ mã gốc thông qua trình biên dịch JIT của Graal
  • Cung cấp lộ trình nâng cấp cho người dùng Jython
  • Có thể sử dụng script Python trong Java để tương tác với các lớp và framework Java
  • Có thể đóng gói ứng dụng Python thành một tệp nhị phân duy nhất bằng GraalVM Native Image

Tóm tắt của GN⁺

  • GraalPy cung cấp một môi trường chạy giúp thực thi Python hiệu năng cao trong Java
  • Cung cấp lộ trình nâng cấp cho người dùng Jython để sử dụng các tính năng Python hiện đại
  • Có thể dễ dàng tích hợp các thư viện khoa học dữ liệu Python vào ứng dụng Java thông qua giao diện đa ngôn ngữ của GraalVM
  • Tăng khả năng tương tác giữa Python và Java, mang lại sự linh hoạt cho nhà phát triển
  • Các dự án cung cấp chức năng tương tự gồm có Jython và Py4J

3 bình luận

 
GN⁺ 2024-09-18
Ý kiến trên Hacker News
  • Chia sẻ kết quả benchmark so sánh GraalPy và JDK8

    • JDK8 nhanh hơn khoảng 2,4 lần so với GraalPython EE 22.3 Hotspot
    • JDK8 nhanh hơn CPython 3.11 tới 41 lần
    • GraalPython nhanh hơn CPython khoảng 17 lần và nhanh hơn PyPy khoảng 2 lần
    • Graal Enterprise Edition (EE) nhanh hơn Community Edition (CE) khoảng 1,31 lần
  • Đã thử chạy một dự án lớn bằng GraalVM nhưng gặp một số vấn đề

    • Maturin không hỗ trợ trình thông dịch Graal nên không thể dùng các gói Py03
    • uv không chạy được, và gói os thiếu fork cùng execve
    • Graal cần áp dụng nhiều bản vá cho các thư viện phổ biến
    • Việc dùng Graal cho dự án lớn là khó khả thi do mức độ rủi ro cao
  • Có ý kiến cho rằng nếu GraalVM có thể gọi trực tiếp các hàm Java (hoặc Scala) mà không cần bridge, thì sẽ hữu ích cho các chương trình dùng Spark

  • Điểm thú vị của Python là khả năng tích hợp với chuỗi công cụ ML, CUDA, Metal/MLX, pytorch, tensorflow, bộ mã hóa/giải mã LLM, v.v.

    • Có nghi vấn liệu GraalVM có thể chạy các đoạn mã đó một cách đủ ý nghĩa hay không
  • Đã có trường hợp triển khai tích hợp Java/Python trong Clojure

    • Điều này khả thi nhờ Chris Neurnberger và libpython-clj
  • DuckDB hiện chưa được hỗ trợ, nhưng Pandas và matplotlib thì có

    • Có ý kiến cho rằng nếu DuckDB và Polars được hỗ trợ thì sẽ rất hữu ích cho nhiều tác vụ dữ liệu
  • Phát hiện rằng GraalPy nhắm tới Python 3.11

    • Không thấy đề cập đến GIL
    • Cảnh báo rằng nếu là người dùng Python thì đừng nhấp vào liên kết khởi động nhanh
  • Đặt câu hỏi về trường hợp sử dụng của GraalPy

    • Có ý kiến cho biết họ không hiểu vì sao nên dùng GraalPy
  • Câu hỏi liệu GraalPy có bắt buộc chỉ chạy trên GraalVM hay cũng có thể chạy trên các triển khai JVM khác

 
ahwjdekf 2024-09-29

Dự án tôi đang làm bây giờ là một dự án ngớ ngẩn kiểu bắt phần đã được triển khai bằng Python numpy, pandas phải được làm lại ở Java. Giờ thì tôi đang làm lại mọi thứ từ đầu. Thật vô lý. Nếu GraalPy hỗ trợ pandas, numpy tử tế thì có lẽ đã không phải làm cái việc vô bổ này rồi. Nhưng trong môi trường Windows thì lại có phụ thuộc vào Visual Studio. Chắc là để phục vụ môi trường biên dịch C++. Ngoài ra, ý tưởng thì thực sự hay và hữu ích, nhưng cũng hơi lo không biết làm sao có thể hoàn thiện được một hệ sinh thái đồ sộ như vậy mà không thất bại. Cũng thấy nghi ngờ liệu rồi nó có trở nên đủ ổn định để có thể tin tưởng và dùng lâu dài hay không. Nếu làm được như vậy thì tốt biết mấy.

 
ahwjdekf 2024-10-01

Xem kỹ hơn thì có vẻ tôi đã hiểu nhầm một phần. Phụ thuộc vào gcc hoặc VS chỉ cần thiết khi sử dụng native image thôi.