2008-11-24 14 views
13

El fondo¿Hay problemas para desarrollar Django en Jython?

Estoy construyendo una aplicación web de buen tamaño con un amigo en mi propio tiempo, y hemos decidido ir con el marco de Django en Python. Django nos proporciona muchas características que vamos a necesitar, así que no sugiera marcos alternativos.

La única decisión con la que estoy teniendo problemas es si utilizamos Python o Jython para desarrollar nuestra aplicación. Ahora estoy bastante familiarizado con Java y podría beneficiarme de las bibliotecas dentro del JDK. Conozco Python mínimo, pero estoy usando este proyecto como una oportunidad para aprender un nuevo idioma, por lo que la mayoría del trabajo se escribirá en Python.

El atractivo de Jython es, por supuesto, la JVM. El número de hosts web habilitados para python/django es extremadamente mínimo, mientras que supongo que podría colocar una aplicación jython/django en una gran variedad de hosts. Esta no es una decisión de diseño masivo, pero creo que aún hay que decidir una. Preferiría jython sobre python para la accesibilidad jvm solo.

Preguntas

¿Tiene Jython tienen muchas limitaciones en comparación con pitón regular? ¿Ejecutar django en jython causa problemas? ¿Qué tan rápido es el equipo de Jython para lanzar actualizaciones junto con Python? ¿Funcionará Django como se anuncia en Jython (con una preconfiguración mínima)?

Decisión

Gracias por los comentarios útiles. Lo que creo que voy a hacer es desarrollar en Jython el soporte de JVM, pero tratar de usar solo el código/las bibliotecas de Python. La portabilidad no es una preocupación importante, así que si necesito una biblioteca en el JDK (no disponible en Python), la usaré. Mientras Django sea totalmente compatible, estoy feliz.

Respuesta

3

Django hace work on Jython, aunque tendrá que utilizar el lanzamiento de desarrollo de Jython, ya que técnicamente Jython 2.5 todavía está en versión beta. Sin embargo, Django 1.0 y arriba deberían funcionar sin modificaciones.

Por lo tanto, si debe usar la implementación regular de Python o Jython, diría que se trata de si prefiere tener todas las bibliotecas de Java disponibles o todas las bibliotecas de Python. En este punto, puede esperar que casi todo en la biblioteca estándar de Python funcione con Jython, pero todavía hay muchos paquetes de terceros que no funcionarán, especialmente los módulos de extensión C. Personalmente recomiendo ir con Python normal, pero si tienes mucha experiencia en JVM y quieres seguir con lo que sabes, entonces puedo respetar eso.

En cuanto a encontrar alojamiento de Python, this page might be helpful.

+0

¿Pueden los módulos de extensión python c cargarse desde dentro de java usando load_library() o será necesario escribir un contenedor delgado para portarlos? –

+0

Casi siempre necesitará una envoltura delgada, aunque esto depende de la biblioteca. –

0

Django se supone que es compatible con jython sinc versión 1.0.

This tutorial es un poco obsoleto, pero a partir de allí se puede ver que no hay problemas especiales.

3

Yo diría que si te gusta Django, también te gustará Python. No cometa el error (demasiado común) de mezclar la experiencia del lenguaje pasado mientras aprende uno nuevo. Solo después de dominar Python, tendrá la experiencia para juzgar si un lenguaje híbrido es mejor que cualquiera de los dos.

Es verdad que muy pocos alojamientos baratos ofrecen Django preinstalado; pero es muy probable que eso cambie, dado que es el entorno más similar al motor de aplicaciones de Google.(y la mayoría de los proyectos de GAE se pueden ejecutar en Django)

1

Recientemente comencé a trabajar en un proyecto de escritorio de código abierto en mi tiempo libre. Entonces esto puede no aplicarse. Llegué a lo mismo la pregunta. Decidí que debería escribir todo el código posible en python (y Django) y orientarme a todas las plataformas CPython, Jython e IronPython.

Luego, decidí que escribiría complementos que interactuarían con bibliotecas en diferentes implementaciones (por ejemplo, diferentes bibliotecas de GUI).

¿Por qué? Decidí desde el principio que la longevidad de mi código puede depender de la orientación no solo de CPython sino también de las máquinas virtuales. Para los propósitos de hoy, CPython es el camino a seguir debido a la velocidad, pero quién sabe sobre el mañana. Si su código es lo suficientemente flexible, es posible que no tenga que elegir uno.

La desventaja de este enfoque es que tendrá más código para crear y mantener.

Cuestiones relacionadas