1 pontos por GN⁺ 2024-09-18 | 3 comentários | Compartilhar no WhatsApp
  • Runtime Python 3 embarcável de alto desempenho para Java
  • Permite carregar e usar pacotes Python diretamente no Java
  • Compatível com os pacotes mais recentes de IA e ciência de dados em Python
  • Permite executar Python em velocidade de código nativo por meio do compilador JIT do Graal
  • Oferece um caminho de upgrade para usuários do Jython
  • Permite interagir com classes e frameworks Java usando scripts Python no Java
  • Permite empacotar aplicações Python em um único binário usando o GraalVM Native Image

Resumo do GN⁺

  • O GraalPy fornece um runtime para executar Python com alto desempenho no Java
  • Oferece aos usuários do Jython um caminho de upgrade para usar recursos modernos do Python
  • Por meio da interface poliglota do GraalVM, permite integrar facilmente bibliotecas de ciência de dados em Python a aplicações Java
  • Aumenta a interoperabilidade entre Python e Java, oferecendo flexibilidade aos desenvolvedores
  • Projetos com funcionalidades semelhantes incluem Jython e Py4J

3 comentários

 
GN⁺ 2024-09-18
Comentários no Hacker News
  • Compartilhamento de resultados de benchmark comparando GraalPy e JDK8

    • O JDK8 é cerca de 2,4 vezes mais rápido que o GraalPython EE 22.3 Hotspot
    • O JDK8 é 41 vezes mais rápido que o CPython 3.11
    • O GraalPython é cerca de 17 vezes mais rápido que o CPython e cerca de 2 vezes mais rápido que o PyPy
    • O Graal Enterprise Edition (EE) é cerca de 1,31 vez mais rápido que o Community Edition (CE)
  • Tentaram executar um grande projeto usando GraalVM, mas encontraram alguns problemas

    • O Maturin não oferece suporte ao interpretador Graal, então não é possível usar pacotes Py03
    • O uv não executa, e faltam fork e execve no pacote os
    • O Graal exige a aplicação de muitos patches em bibliotecas populares
    • Usar Graal em projetos grandes é difícil por causa do alto risco
  • Opinião de que, se o GraalVM pudesse chamar diretamente funções Java (ou Scala) sem bridge, seria útil para programas que usam Spark

  • O ponto interessante do Python é a integração com toolchains de ML, CUDA, Metal/MLX, pytorch, tensorflow, codificadores/decodificadores de LLM etc.

    • Há dúvida se o GraalVM consegue executar esse tipo de código de forma realmente útil
  • Já existe um caso de integração Java/Python implementado em Clojure

    • Isso foi possível graças a Chris Neurnberger e libpython-clj
  • DuckDB não é suportado no momento, mas Pandas e matplotlib são suportados

    • Opinião de que, se DuckDB e Polars fossem suportados, isso ajudaria bastante em muitos trabalhos de dados
  • Descobriram que o GraalPy tem como alvo o Python 3.11

    • Não houve menção ao GIL
    • Aviso de que, se você for usuário de Python, não deve clicar no link de início rápido
  • Levantaram dúvidas sobre os casos de uso do GraalPy

    • Opinião de que não entendem por que seria preciso usar o GraalPy
  • Pergunta sobre se o GraalPy precisa rodar apenas no GraalVM ou se também é possível em outras implementações de JVM

 
ahwjdekf 2024-09-29

O projeto em que estou trabalhando agora é um projeto absurdo em que pediram para fazer em Java algo que foi implementado em Python com numpy e pandas. Então estou refazendo tudo do zero. Não faz o menor sentido. Se o pandas e o numpy forem realmente bem suportados no GraalPy, talvez eu possa evitar esse trabalho inútil. Mas, no ambiente Windows, ainda existe dependência do Visual Studio, por causa do ambiente de compilação em C++. E, embora a ideia seja muito boa e útil, também fico me perguntando como vão conseguir completar sem falhas um ecossistema tão vasto. Isso também me preocupa um pouco. E também fico em dúvida se vai chegar a um ponto em que dê para usar com confiança e estabilidade. Mas seria ótimo se realmente chegasse lá.

 
ahwjdekf 2024-10-01

Olhando um pouco mais, percebi que havia uma parte que eu tinha entendido errado. A dependência de gcc ou do VS só é necessária no caso de usar native image.