2009-12-07 24 views

Respuesta

24

Citando Wikipedia:

Jython, sucesor del JPython, es una implementación del lenguaje de programación Python escrito en Java.

En cuanto a qué usos que puede tener:

programas Jython pueden importar sin problemas y utilizar cualquier clase de Java. A excepción de algunos módulos estándar, los programas Jython usan clases Java en lugar de módulos Python.

Las mediciones de rendimiento de Jython, IronPython y CPython muestran que tanto Jython como IronPython superan a CPython en algunos casos con grandes conjuntos de datos.

+5

Jython no compila para bytecode de la misma manera que Java. El bytecode hace todas las cosas maravillosas del tiempo de ejecución dinámico que hace CPython, por lo que es considerablemente más lento que Java. – orip

3

Jython es una implementación de Python que se ejecuta en la parte superior de JVM. Teóricamente, Jython es un poco más lento, luego CPython.

se pueden encontrar algunos puntos de referencia aquí: http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-2-0-and-jython-2-5-performance-compared-to-python-2-5/

+1

El siguiente artículo es interesante también: http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-hammers-cpython-when-not-mutating-class-attributes/ –

+0

Ahora sabemos que Jython es asintóticamente más rápido que CPython en ciertos puntos de referencia. – u0b34a0f6ae

0

La JVM hace algo agradable optimización dinámica, pero probablemente es nada para emocionarse. JRuby a veces se ejecuta más rápido en la JVM (http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/) al optimizar las rutas de código que se ejecutan mucho, pero eso es Ruby, no Python.

Las bibliotecas de Java son la razón principal. Muchas empresas tienen grandes cantidades de código de Java que se pueden programar con Python. También hay algunos frameworks de código abierto (Struts y Eclipse vienen a la mente) que puedes crear con Jython.

6

¿Cuándo necesitaré Jython?

Cuando desea programar en Python pero necesita (o desea) que el resultado se ejecute en una máquina virtual Java o utilice componentes Java existentes.

Cuáles son los inconvenientes.

Jython puede no ser 100% compatible con Python, aunque cualquier incompatibilidad se consideraría un error. Si luego desea/necesita ejecutar CPython, se deberá reescribir cualquier código que use componentes de Java.

Supongo que es lento?

Eso depende, como siempre, de su uso específico. En realidad, puede ser más rápido que CPython en algunos casos; y, por supuesto, depende de la JVM específica bajo la que funcionas; estas mejoran todo el tiempo.

3

¿Cuándo necesitaré Jython?

Por ejemplo, para agregar un buen lenguaje de scripting a su código.

¿Cuáles son los inconvenientes?

El principal inconveniente es que Jython va a la zaga de la distribución oficial de CPython. Actualmente, puede obtener una versión de Jython que sea compatible con Python 2.5.2, mientras que CPython esté en 3.1.

También algunos módulos esotéricos no son compatibles. Por lo general, no se dará cuenta y/o podrá encontrar fácilmente un reemplazo de Java.

Supongo que es lento?

Comparado con qué? Por lo general, es lo suficientemente rápido o, cuando no lo es, puede reemplazar unas pocas líneas de Python con aproximadamente 1'000 líneas de Java mucho más rápidas. otros

3

Dos razones:

  • incrustación de secuencias de comandos en aplicaciones Java de gran tamaño.
  • Use hilos de Java para escribir programas de subprocesos múltiples en Jython.
1

¿Cuándo necesitaré Jython?

Puede escribir scripts administrativos para el servidor de aplicaciones Websphere utilizando Jython. Los scripts se usan para automatizar tareas administrativas comunes y configurar la seguridad en el servidor de aplicaciones de Websphere.

WebSphere utiliza la API JMX para crear MBeans que están expuestos como una API de objetos internos de WebSphere. Como las secuencias de comandos de Jython se basan en Java y se ejecutan en la JVM, pueden acceder a esos objetos y pueden utilizarse para configurar WebSphere.

Además es divertido escribir código en Jython y aprender un nuevo idioma.

Here is the details

0

Cuándo necesitaré Jython?

Necesito Jython para probar los controladores JDBC. Algunas de las aplicaciones que uso funcionan con ODBC, otras usan JDBC. Usando Jython puedo probar ambos tipos de controladores desde una fuente de Python (para probar ODBC utilizo el puente JDBC-ODBC).

7

Si conoces Python y has comprado la forma "pitónica" de hacer las cosas, entonces Jython te permite llevar esa filosofía a la pila JVM. Si hace esto, es mucho más que simplemente agregar capacidad de scripting.

En nuestros últimos proyectos, toda la lógica personalizada y de negocios está integrada en Jython, al mismo tiempo podemos aprovechar algunas de las geniales bibliotecas probadas de Java, como Solr, Jasperreports, Quartz, Jetty, Velocity para nombrar un pocos.

Se compila en bytecode, sin embargo, se agrega una capa adicional, pero no es diferente de usar un ORM en lugar de JDBC directo, por ejemplo.

Lo que gana en productividad supera con creces la minúscula pérdida de rendimiento.

En el lado del servidor, Jython rara vez es el cuello de botella. Para las mini aplicaciones de escritorio, puede haber problemas, pero depende mucho de lo que intenta hacer.

Los últimos JDK, junto con contenedores como Jetty o Tomcat son muy maduros y estables, y al agregar Python en la parte superior, en muchos casos, ofrece lo mejor de ambos mundos.

+0

Buena respuesta. Tengo una aplicación Java existente y quiero hacer algunos análisis de archivos, lo que puede ser tedioso en Java. ¿Podría usar Jython para hacer el análisis sintáctico con la sintaxis de python (file.read(), list.split() etc ..)? –

Cuestiones relacionadas