1 puntos por GN⁺ 2024-09-18 | 3 comentarios | Compartir por WhatsApp
  • Runtime embebible de Python 3 de alto rendimiento para Java
  • Se pueden cargar y usar paquetes de Python directamente desde Java
  • Compatible con los paquetes más recientes de IA y ciencia de datos de Python
  • Puede ejecutar Python a velocidad de código nativo mediante el compilador JIT de Graal
  • Ofrece una ruta de actualización para usuarios de Jython
  • Es posible usar scripts de Python desde Java para interactuar con clases y frameworks de Java
  • Se pueden empaquetar aplicaciones de Python como un binario único usando GraalVM Native Image

Resumen de GN⁺

  • GraalPy ofrece un runtime para ejecutar Python en Java con alto rendimiento
  • Ofrece a los usuarios de Jython una ruta de actualización para usar funciones modernas de Python
  • A través de la interfaz políglota de GraalVM, permite integrar fácilmente bibliotecas de ciencia de datos de Python en aplicaciones Java
  • Mejora la interoperabilidad entre Python y Java, brindando flexibilidad a los desarrolladores
  • Proyectos con funciones similares incluyen Jython y Py4J

3 comentarios

 
GN⁺ 2024-09-18
Opiniones en Hacker News
  • Se comparten resultados de benchmarks que comparan GraalPy con JDK8

    • JDK8 es aproximadamente 2.4 veces más rápido que GraalPython EE 22.3 Hotspot
    • JDK8 es 41 veces más rápido que CPython 3.11
    • GraalPython es aproximadamente 17 veces más rápido que CPython y unas 2 veces más rápido que PyPy
    • Graal Enterprise Edition (EE) es aproximadamente 1.31 veces más rápido que Community Edition (CE)
  • Se intentó ejecutar un proyecto grande con GraalVM, pero surgieron algunos problemas

    • Maturin no soporta el intérprete de Graal, por lo que no se pueden usar paquetes de Py03
    • uv no se ejecuta y faltan fork y execve en el paquete os
    • Graal requiere aplicar muchos parches a bibliotecas populares
    • Usar Graal en proyectos grandes es difícil debido al alto riesgo
  • Opinión de que GraalVM sería útil para programas que usan Spark si pudiera llamar funciones de Java (o Scala) directamente, sin un bridge

  • Lo interesante de Python es su integración con el toolchain de ML, CUDA, Metal/MLX, pytorch, tensorflow y codificadores/decodificadores de LLM

    • Hay dudas sobre si GraalVM puede ejecutar este tipo de código de manera significativa
  • Ya existe un caso de integración Java/Python implementado en Clojure

    • Fue posible gracias a Chris Neurnberger y libpython-clj
  • DuckDB no está soportado actualmente, pero Pandas y matplotlib sí

    • Opinión de que, si DuckDB y Polars fueran compatibles, ayudaría mucho en muchas tareas de datos
  • Se descubrió que GraalPy apunta a Python 3.11

    • No hubo mención del GIL
    • Advertencia de que los usuarios de Python no deberían hacer clic en el enlace de inicio rápido
  • Se cuestionan los casos de uso de GraalPy

    • Opinión de que no se entiende por qué habría que usar GraalPy
  • Pregunta sobre si GraalPy debe ejecutarse solo en GraalVM o si también sería posible en otras implementaciones de JVM

 
ahwjdekf 2024-09-29

El proyecto en el que estoy trabajando ahora es uno bastante absurdo: quieren que rehaga en Java algo que fue implementado con Python, numpy y pandas. Así que lo estoy reconstruyendo todo desde cero. Es ridículo. Si GraalPy soportara bien pandas y numpy, quizá podría evitarme este trabajo inútil. Pero en entorno Windows parece que tiene una dependencia de Visual Studio, por el entorno de compilación de C++. Y además, aunque la idea es muy buena y útil, me preocupa cómo van a lograr completar sin tropiezos un ecosistema tan enorme. También me genera dudas si realmente llegará a ser lo bastante estable como para usarlo con confianza. Ojalá sí llegue a ese punto.

 
ahwjdekf 2024-10-01

Al revisarlo un poco más, vi que había una parte que entendí mal. La dependencia de gcc o vs solo es necesaria cuando se usa native image.