Integrar Python com Java

Geralmente falando, combinar programação de sistema e linguagens de script não é um conceito novo e estranho, simplesmente não é comumente feito. É possível que linguagens de programação que compartilham uma interface binária de aplicação comum sejam combinadas em uma única biblioteca ou executável, e embora possa ser um pouco difícil conseguir assinaturas de duas linguagens uma dentro da outra, existem ferramentas para ajudar.

Um exemplo de linguagens de programação trabalhando em conjunto pode ser encontrado em código poliglota. Por exemplo, a página 404 em Stack Overflow pode imprimir “404” em Python, Ruby, Perl, C, e algumas outras.

As para Python e Java especificamente, estas duas linguagens realmente se complementam uma à outra. Você poderia, por exemplo, usar uma para subtarefas típicas, enquanto usando a outra como uma linguagem de script para expandir a customização da aplicação que você está desenvolvendo.

VER TAMBÉM: Python Package Index agora tem verificações automáticas de malware no quadro

Embora o JavaScript não seja comumente usado fora dos navegadores web, pelo menos em comparação com outras linguagens de script como Perl, Tcl, Visual Basic e Python, todas estas linguagens são comumente emparelhadas com outras linguagens. O Python tradicionalmente vai junto com C e C++, enquanto o Visual Basic é frequentemente a linguagem de scripting escolhida para C++ na plataforma Windows, e tanto o Perl quanto o Tcl são tipicamente usados em C / Unix.

Python é usado um pouco mais no Windows, pois é perfeitamente integrado com a arquitetura Microsoft Scripting Host, assim como COM. Também é ótimo em Mac, com uma boa seleção de caixas de ferramentas nativas para MacOS.

Para mais recursos em Python e as possibilidades de integração Java, é uma boa idéia conferir cursos online para Python.

Por que Java e Python?

Python é uma linguagem de script orientada a objetos, o que automaticamente a torna um bom par para Java. Mas quando combinado com um interpretador Python escrito inteiramente em Java, como Jython, você poderia fazer coisas como escrever applets inteiros em Python que podem rodar em qualquer navegador compatível com JDK, com execução de código quase tão rápida quanto C / CPython.

O que um interpretador Python-Java como Jython faz é traduzir o código fonte Python diretamente para o bytecode Java, o que lhe dá uma velocidade incrível já que não é um interpretador Python escrito em Java, o que seria muito mais lento. O que outras soluções de scripting Java normalmente fazem (Java/TCL, Java/Perl, etc) é anexar JVM à implementação C nessas linguagens, o que não só introduz problemas de portabilidade, mas não é tão perfeito quanto se espera.

    Transformadores suficientes

    Christoph Henkelmann

    Aprendizagem da máquina 101++ Usando Python

    Pieter Buteneers

Como você pode usar melhor Java e JPython juntos?

Existem várias ferramentas respeitáveis que implementam o Python em Java ou vice-versa, para que você possa executar os comandos de uma linguagem na outra. Aqui está uma lista rápida de algumas das ferramentas de integração Python + Java mais conceituadas:

  • Jython – Python implementado em Java
  • JPype – Permite que o Python execute comandos java
  • Jepp – Java embedded Python
  • JCC – um código em C++ generator for calling Java from C++/Python
  • Javabridge – um pacote para executar e interagir com o JVM do CPython
  • py4j – Permite que o Python execute comandos java.
  • voc – Parte da suite BeeWare. Converte código python para Java bytecode.
  • p2j – Converte código Python para Java. Não mais desenvolvido.

Existem várias abordagens para utilizar estas ferramentas, com seus próprios benefícios e desvantagens. Assim, por exemplo, você poderia construir um protótipo de toda a aplicação em Jython, e após vários ciclos de testes e redesenho, reescrever tudo em Java. Isto permite que você tire vantagem da maior flexibilidade e velocidade de desenvolvimento das linguagens de script na parte inicial do seu projeto, e seu produto final deve ser um pouco mais fleshed-out do que se você tivesse simplesmente começado em apenas Java.

E se você está preocupado com bibliotecas de interface de usuário, Jython pode se conectar aos mesmos UIL’s do Java básico, então a reescrita final do Java deve ir sem problemas.

No entanto, não é tão simples se você estiver tentando construir um sistema maior. Você provavelmente encontrará o inconveniente de diferentes componentes e camadas terem ciclos de desenvolvimento independentes, tais como componentes de nível superior evoluindo enquanto camadas inferiores ficam congeladas. É claro, você poderia reescrever os componentes individuais em Java à medida que se aproxima da estabilidade do projeto, ou simplesmente escrever alguns de seus componentes exclusivamente em Java desde o início.

VER TAMBÉM: Visualização de dados Python com Bokeh

Outra opção é focar na reescrita apenas dos componentes onde a performance é crítica. Assim você poderia deixar componentes de alto nível em Jython, o que significa que apenas os componentes de nível inferior precisariam ser reescritos – e em alguns casos, você pode não precisar reescrever absolutamente nada.

Então se partes do seu sistema lançado são escritas em Jython, os usuários finais podem escrever suas próprias customizações através de scripts Jython – sem mencionar que aplicativos Jython podem ser distribuídos como bytecode Java, o que significa que você não tem que se preocupar com o usuário final estragando componentes que não devem ser mexidos.

Deixe uma resposta

O seu endereço de email não será publicado.