Integrando Python con Java

En general, la combinación de lenguajes de programación de sistemas y de scripts no es un concepto nuevo y extraño, sólo que no se hace comúnmente. Es posible que los lenguajes de programación que comparten una interfaz binaria de aplicación común se combinen en una sola biblioteca o ejecutable, y aunque puede ser un poco difícil conseguir las firmas de dos lenguajes dentro del otro, existen herramientas para ayudar.

Un ejemplo de lenguajes de programación trabajando juntos se puede encontrar en el código políglota. Por ejemplo, la página 404 en Stack Overflow puede imprimir «404» en Python, Ruby, Perl, C y algunos otros.

En cuanto a Python y Java específicamente, estos dos lenguajes realmente se complementan. Usted podría, por ejemplo, utilizar uno para las subtareas típicas, mientras que el uso de la otra como un lenguaje de secuencias de comandos para ampliar la personalización de la aplicación que está desarrollando.

SEA TAMBIÉN: Python Package Index ahora tiene comprobaciones automáticas de malware a bordo

Aunque JavaScript no se utiliza comúnmente fuera de los navegadores web, al menos en comparación con otros lenguajes de scripting como Perl, Tcl, Visual Basic y Python, todos estos lenguajes están comúnmente emparejados con otros lenguajes. Python tradicionalmente va junto a C y C++, mientras que Visual Basic es a menudo el lenguaje de scripting elegido para C++ en la plataforma Windows, y tanto Perl como Tcl se utilizan normalmente en C / Unix.

Python se utiliza un poco más en Windows, ya que está perfectamente integrado con la arquitectura de Microsoft Scripting Host, así como COM. También es genial en Mac, con una buena selección de cajas de herramientas nativas de MacOS.

Para obtener más recursos sobre Python y las posibilidades de integración de Java, es una buena idea consultar los cursos en línea para Python.

¿Por qué Java y Python?

Python es un lenguaje de scripting orientado a objetos, lo que automáticamente lo convierte en un buen par para Java. Pero cuando se combina con un intérprete de Python escrito completamente en Java, como Jython, se pueden hacer cosas como escribir applets enteros en Python que pueden ejecutarse en cualquier navegador compatible con JDK, con una ejecución de código casi tan rápida como la de C / CPython.

Lo que hace un intérprete de Python-Java como Jython es traducir el código fuente de Python directamente a bytecode de Java, lo que le da una velocidad increíble ya que no es un intérprete de Python escrito en Java, que sería mucho más lento. Lo que suelen hacer otras soluciones de scripting en Java (Java/TCL, Java/Perl, etc) es adjuntar JVM a la implementación de C en esos lenguajes, lo que no sólo introduce problemas de portabilidad, sino que no es tan fluido como cabría esperar.

    Transformadores eficientes

    Christoph Henkelmann

    Aprendizaje automático 101++ con Python

    Pieter Buteneers

¿Cómo se puede utilizar mejor Java y JPython juntos?

Hay varias herramientas de renombre que implementan Python en Java o viceversa, para que puedas ejecutar los comandos de un lenguaje en el otro. Aquí hay una lista rápida de algunas de las herramientas de integración de Python + Java mejor valoradas:

  • Jython – Python implementado en Java
  • JPype – Permite a Python ejecutar comandos de java
  • Jepp – Python embebido en Java
  • JCC – un generador de código C generador para llamar a Java desde C++/Python
  • Javabridge – un paquete para ejecutar e interactuar con la JVM desde CPython
  • py4j – Permite a Python ejecutar comandos java.
  • voc – Parte de la suite BeeWare. Convierte código python a bytecode Java.
  • p2j – Convierte código python a Java. Ya no se desarrolla.

Hay varios enfoques para utilizar estas herramientas, con sus propias ventajas e inconvenientes. Así, por ejemplo, podrías construir un prototipo de toda la aplicación en Jython, y después de varios ciclos de pruebas y rediseño, reescribir todo en Java. Esto le permite aprovechar la mayor flexibilidad y velocidad de desarrollo de los lenguajes de scripting en la parte inicial de su proyecto, y su producto final debería ser un poco más completo que si simplemente hubiera comenzado en Java.

Y si le preocupan las bibliotecas de interfaz de usuario, Jython puede conectarse a los mismos UIL que Java básico, por lo que la reescritura final de Java debería ir sin problemas.

Sin embargo, no es tan simple si usted está tratando de construir un sistema más grande. Probablemente te encontrarás con el inconveniente de que los diferentes componentes y capas tienen ciclos de desarrollo independientes, como que los componentes de nivel superior evolucionan mientras las capas inferiores se congelan. Por supuesto, podrías reescribir los componentes individuales en Java a medida que te acercas a la estabilidad del diseño, o simplemente escribir algunos de tus componentes exclusivamente en Java desde el principio.

VEA TAMBIÉN: Visualización de datos en Python con Bokeh

Otra opción es centrarse en reescribir sólo los componentes donde el rendimiento es crítico. Así que podría dejar los componentes de alto nivel en Jython, lo que significa que sólo los componentes de nivel inferior tendrían que ser reescritos – y en algunos casos, es posible que no tenga que reescribir nada en absoluto.

Así que si partes de su sistema liberado están escritas en Jython, los usuarios finales pueden escribir sus propias personalizaciones a través de scripts de Jython – por no mencionar que las aplicaciones de Jython pueden ser distribuidas como bytecode de Java, lo que significa que usted realmente no tiene que preocuparse de que el usuario final estropee los componentes con los que no se debe jugar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.