usar sobre pintar codigo java eclipse jython

java - codigo - pintar sobre un jpanel



¿Por qué usar Jython cuando solo podías usar Java? (14)

La respuesta estándar es que es útil cuando solo necesita escribir unas líneas de código ...

Tengo ambos idiomas integrados dentro de Eclipse. Debido a que Eclipse maneja la compilación, la interpretación, la ejecución, etc. ambos "ejecutan" exactamente lo mismo.

El IDE de Eclipse para ambos es similar: "compilación" instantánea, intellisense, etc. Ambos permiten el uso de la perspectiva de depuración.

Si quiero probar algunas líneas de Java, no tengo que crear un proyecto Java completamente nuevo; solo uso la función Scrapbook dentro de Eclipse, que me permite "ejecutar expresiones Java sin tener que crear un nuevo programa Java". Esta es una forma sencilla de probar rápidamente una clase existente o evaluar un fragmento de código " .

Jython permite el uso de las bibliotecas de Java, pero luego (¡por definición) Java!

Entonces, ¿qué otros beneficios ofrece Jython?


Bibliotecas de Python;) Por ejemplo BeautifulSoup - un analizador de HTML que acepta marcado incorrecto. AFAIK no hay una lib de Java pura similar.


En su situación, no tiene mucho sentido. Pero eso no significa que nunca lo haga. Por ejemplo, si está desarrollando un producto que le permite a los usuarios finales crear extensiones o complementos, podría ser bueno que sea secuenciable.


Jython también se puede utilizar como un lenguaje de scripting incorporado dentro de un programa Java. Puede que le resulte útil en algún momento escribir algo con un lenguaje de extensión integrado. Si trabajar con Java Jython es una opción para esto (Groovy es otro).

Principalmente he usado Jython para la programación exploratoria en sistemas Java. Pude importar partes de la aplicación y examinar la API para ver qué sucedía al invocar llamadas desde una sesión interactiva de Jython.


La sintaxis de Python (utilizada por Jython) es considerablemente más concisa y más rápida de desarrollar para muchos programadores.

Además, puede usar las bibliotecas de Python existentes en una aplicación Java.


No es necesario compilar. Tal vez quiera hacer que algo avance más rápido que usar un lenguaje compilado, como un prototipo.

... y puedes insertar el intérprete Jython en tus aplicaciones. Buena característica, no puedo decir que la haya usado, pero de todos modos es genial.


Python tiene algunas características de programación funcional, como lambdas. Java no tiene esa funcionalidad, y algunos programas serían considerablemente más fáciles de escribir si dicho soporte estuviera disponible. Por lo tanto, a veces es más fácil escribir el código en Python e integrarlo a través de Jython que intentar escribir el código en Java.


Sintaxis de azúcar.


Un ejemplo rápido (de http://coreygoldberg.blogspot.com/2008/09/python-vs-java-http-get-request.html ):

Tiene un back-end en Java y necesita realizar resúmenes HTTP GET.

Nativamente:

import java.net.*; import java.io.*; public class JGet { public static void main (String[] args) throws IOException { try { URL url = new URL("http://www.google.com"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null) { System.out.println(str); } in.close(); } catch (MalformedURLException e) {} catch (IOException e) {} } }

En Python:

import urllib print urllib.urlopen(''http://www.google.com'').read()

Jython le permite usar la robustez de Java y, cuando sea necesario, la claridad de Python.

Qué más ? Como diría Georges ...


Usar Python es más que "azúcar sintáctico" a menos que te guste escribir (o hacer que tu IDE genere) cientos de líneas de código de la placa de la caldera. Existe la ventaja de las técnicas de desarrollo rápido cuando se utilizan lenguajes de tipado dinámico, aunque la desventaja es que complica su API e integración porque ya no tiene una base de código homogénea. Esto también puede afectar el mantenimiento porque no todos en tu equipo aman a Python tanto como a ti y no serán tan eficientes con él. Esto puede ser un problema.


La transferencia de código existente a un nuevo entorno puede ser una razón. Parte de la lógica de su negocio y la funcionalidad del dominio pueden existir en Python, y el grupo que escribe ese código insiste en usar Python. Pero el grupo que lo implementa y lo mantiene puede querer la capacidad de administración de un clúster J2EE para la escala. Puede ajustar la lógica en Jython en un EAR / WAR y luego el grupo de implementación solo está viendo otro paquete J2EE para ser administrado como todos los otros paquetes J2EE.

es decir, es un medio para lidiar con un desajuste de impedancia.


Yo uso Jython para pruebas interactivas de código Java. Esto a menudo es mucho más rápido que escribir aplicaciones de prueba Java o incluso cualquier lenguaje de scripting. Puedo jugar con los métodos y ver cómo reacciona. Desde allí puedo aprender lo suficiente como para escribir un código real o casos de prueba.


Algunas tareas son más fáciles en algunos idiomas que en otros. Si tuviera que analizar algún archivo, elegiría Python sobre Java en un abrir y cerrar de ojos.


Analogía: ¿Por qué beber café cuando puede, en cambio, beber agua caliente del grifo y masticar frijoles amargos asados? :-)

Para algunas tareas, Python solo sabe mejor, funciona mejor y es lo suficientemente rápido (¿lleva tiempo preparar?). Si su entorno de programación o despliegue se centra en la JVM, Jython le permite codificar Python, pero sin cambiar su entorno de implementación y tiempo de ejecución.


Acabo de descubrir a Jython y, como lingüista, creo que diría que es un poco como preguntar "¿por qué usar el latín cuando se puede usar el francés?" (Olvidando el hecho de que el latín llegó antes que el francés, por supuesto) .

Diferentes lenguajes humanos realmente te hacen pensar de diferentes maneras. El francés es un gran idioma, he vivido en Francia mucho tiempo y he obtenido un título en él. Pero el sorprendente poder y concisión de Latin pone su mente en una zona diferente, donde el orden de las palabras se puede intercambiar para producir todo tipo de efectos sutiles, por ejemplo.

Creo que, por mi breve conocimiento de Jython, que de hecho despertó mi entusiasmo, me hará pensar de diferentes maneras. Estuve muy escéptico sobre Python / Jython durante algún tiempo, y he sido un gran admirador de los genéricos de Java, por ejemplo (que irónicamente reducen la cantidad de tipeo y por lo tanto "latinizan" el francés si quieren). No entiendo completamente las implicaciones de los lenguajes de "escritura dinámica" como Jython, pero creo que lo mejor es ir con la corriente y ver qué hace Jython en mi mente.

Es curioso cómo los idiomas van y vienen. Otro "latín" podría considerarse como Algol68 con su sintaxis infinitamente recursiva. Pero la necesidad de desarrollar un código masivamente recursivo, y la capacidad de leerlo y pensar en él, aún no se ha hecho sentir. Jython parece ser un ajuste muy poderoso y elegante con el lugar donde estamos ahora, con las bibliotecas OO, el poder del swing de Java y todo en un paquete muy elegante. ¿Quizás algún día Jython también adopte una sintaxis infinitamente recursiva?