2010-08-29 25 views
6

Recientemente comencé a aprender Python. Todavía no me aventuré en la codificación. Durante una de mis sesiones de aprendizaje, encontré el término Jython.Aplicaciones de Jython en el mundo real

Lo busqué en Google & tengo algo de información.

Me gustaría saber si alguien ha implementado algún programa del mundo real usando Jython.

+1

+1 porque vi su representante fue 'int (1000 * 2/3)' y yo estaba tratando de salvar su alma ;-) –

Respuesta

10

La mayoría de las veces, Jython no se usa directamente para escribir programas completos del mundo de lectura, pero muchos programas realmente incorporan Jython para usarlo como lenguaje de scripting.

La página web oficial Jython da una lista de proyectos, algunos escritos en Jython, otros usando Jython para secuencias de comandos: http://wiki.python.org/jython/JythonUsers

+1

Gracias. ¿Tenía curiosidad por saber si ha implementado alguno? – ykombinator

+1

No escribí programas Jython solo, pero tuve la oportunidad de hablar con algunas personas usando Jython como lenguaje de scripting en aplicaciones basadas en Java. –

+0

Probablemente cierto que se usa principalmente para scripts en un entorno Java, pero no creo que haya muchas razones para no usar Jython sobre Java para ningún propósito. Obviamente, depende del proyecto, pero diría que es en gran medida una preferencia personal. –

5

estoy escribiendo una aplicación completa en Jython en este momento, y lo recomendaría encarecidamente. Tener todas las bibliotecas de Java a su disposición es muy útil, y las características de sintaxis y lenguaje de Python realmente hacen que usar algunas de ellas sea más fácil que en Java (estoy hablando principalmente de Swing aquí).

Echa un vistazo the chapter on GUI Applications from the Jython book. Hace muchas comparaciones como '¡Mira todo este código Java, y ahora míralo reducido al código Python de la mitad de longitud!'.

Las únicas salvedades que he encontrado son:

  • desarrollo Jython tiende a ser un poco por detrás de Python, que puede ser molesto si encuentra una manera fresca de hacer algo en Python, sólo para descubrir que no es compatible en la versión actual de Jython.
  • Ocasionalmente puede que tenga problemas con la interfaz entre Python y Java (tengo un par de problemas sin resolver here y here, aunque siempre hay soluciones para este tipo de cosas).
  • La distribución no es tan simple como podría ser, aunque una vez que descubres cómo hacerlo, es bastante fácil. Recomiendo seguir el método here. Básicamente se compone de:
    1. Explotando jython.jar y agregando sus propios módulos en él.
    2. Escribir y compilar una pequeña clase de Java que crea un intérprete de Python y carga los módulos de Python.
    3. Creando un archivo ejecutable .jar que consta de los módulos jython.jar, sus propios módulos de Python y la clase Java.
+0

Solo por curiosidad: ¿Hiciste algo especial sobre el requisito de memoria de Jython (es decir, cómo reducirlo)? Para mí, una aplicación súper simple de "Hello World" que usa Swing (consulte el enlace Aplicaciones de GUI) requiere> 80 megabytes ... Me parece bastante extremo. – FriendFX

+0

@FriendFX Para ser sincero, nunca revisé la memoria que estaba siendo utilizada, así que no puedo comentar. Es posible que descubra que la gran mayoría de esos 80 MB está solo por encima de Java/Jython, y que no aumentará mucho a medida que su programa crezca. Dependiendo de sus máquinas/plataformas/usuarios objetivo, puede que no sea un problema. –

2

WebSphere y WebLogic lo utilizan como su motor de secuencias de comandos predeterminado para fines administrativos.

Muchos otros productos de Oracle lo envían como parte de su módulo "oracle_commons" (Oracle Universal Installer, Oracle HTTP Server, etc.). Sin embargo, en su mayoría se está implementando la versión 2.2, que es un poco vieja y torpe.

2

Jython realmente brilla por la inyección de dependencia.

Usted sabe que esas variables molestos que tienen que dar a su programa, al igual que las rutas del sistema

  • archivos
  • nombres de servidor
  • puertos

Jython proporciona una muy buena manera de inyectar los variables al ponerlos en un script. Funciona igualmente bien para inyectar dependencias Java.

+0

interesante. ¿Podría elaborar más sobre la inyección de dependencia a través de Jython? – trinth

Cuestiones relacionadas