Qu'est-ce que Jython et est-ce utile du tout?

Je connais Python, mais Qu'est-ce que Jython?

  • Quand aurai-je besoin de Jython?
  • Quels sont les inconvénients?
  • je suppose que c'est lent?

Veuillez le détailler! grâce.

21
demandé sur MD XF 2009-12-07 16:08:40

9 réponses

Citant Wikipedia:

Jython, successeur de JPython, est une implémentation du langage de programmation Python écrit en Java.

Quant aux utilisations qu'il peut avoir:

Les programmes Jython peuvent importer et utiliser n'importe quelle classe Java de manière transparente. À l'exception de certains modules standard, les programmes Jython utilisent des classes Java au lieu de modules Python.

Les mesures de Performance de Jython, IronPython et CPython montrent que Jython et IronPython surpasser CPython dans certains cas avec des ensembles de données volumineux.

25
répondu Joey 2009-12-07 17:10:32

Si vous connaissez Python et que vous avez acheté la manière "pythonique" de faire les choses, alors Jython vous permet d'apporter cette philosophie à la pile JVM. Si vous faites cela, c'est beaucoup plus que simplement ajouter une capacité de script.

Dans nos derniers projets, toute la logique personnalisée et métier est construite dans Jython, en même temps, nous pouvons toujours tirer parti de certaines des grandes bibliothèques Java éprouvées comme Solr, Jasperreports, Quartz, Jetty, Velocity pour n'en nommer que quelques-unes.

, Il est compilé pour bytecode, cependant, une couche supplémentaire est ajoutée, mais n'est pas différente de l'utilisation d'un ORM au lieu de JDBC direct par exemple.

Ce que vous gagnez en productivité loin pèse le minuscule perdu en performance.

Côté serveur, Jython est rarement le goulot d'étranglement. Pour les applications de bureau mini, il peut y avoir des problèmes, mais très dépendant de ce que vous essayez de faire.

Le Dernier JDK, ainsi que des conteneurs comme Jetty ou Tomcat sont très matures et stables, ajoutant Python sur en haut, dans de nombreux cas, donne le meilleur des deux mondes.

8
répondu Ron 2009-12-09 09:47:13

Quand aurai-je besoin de Jython?

Lorsque vous voulez programmer en Python mais que vous avez besoin (ou voulez) que le résultat soit exécuté sur une machine virtuelle Java, ou utilisez des composants Java existants.

Quels sont les inconvénients.

Jython peut ne pas être 100% compatible avec Python, bien que toute incompatibilité soit considérée comme un bug. Si vous voulez / devez plus tard exécuter sur CPython, tout code qui utilise des composants Java devra être réécrit.

Je suppose que c'est lent?

Cela dépend, comme toujours, de votre cas d'utilisation spécifique. Il peut en fait être plus rapide que CPython dans certains cas; et bien sûr, cela dépend de la JVM spécifique sous laquelle vous exécutez - celles-ci s'améliorent tout le temps.

6
répondu Michael Borgwardt 2009-12-07 13:25:20

Jython est une implémentation Python qui s'exécute au - dessus de la JVM. Théoriquement, Jython est un peu plus lent, puis CPython.

Vous pouvez trouver quelques repères ici: http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-2-0-and-jython-2-5-performance-compared-to-python-2-5/

4
répondu Vitaliy Liptchinsky 2009-12-07 13:13:23

Quand aurai-je besoin de Jython?

Par exemple pour ajouter un bon langage de script à votre code.

Quels sont les inconvénients?

Le principal inconvénient est que Jython est en retard sur la distribution officielle de CPython. Actuellement, Vous pouvez obtenir une version de Jython compatible avec Python 2.5.2 alors que CPython est à 3.1.

En outre, certains modules ésotériques ne sont pas pris en charge. Habituellement, vous ne remarquerez pas et / ou serez en mesure de trouver facilement un Java remplacement.

Je suppose que c'est lent?

Par rapport à quoi? Habituellement, c'est assez rapide ou, quand ce n'est pas le cas, vous pouvez remplacer quelques lignes de Python par environ 1'000 lignes de Java beaucoup plus rapides.

3
répondu Aaron Digulla 2009-12-07 13:35:04

Deux autres raisons:

  • Intégration de scripts dans une grande application Java.
  • Utilisez des threads Java pour écrire des programmes multi-threads dans Jython.
3
répondu Richie 2009-12-07 14:18:14

Quand aurai-je besoin de Jython?

Vous pouvez écrire des scripts d'administration pour Websphere application server à L'aide de Jython. Les scripts sont utilisés pour automatiser les tâches administratives courantes et configurer la sécurité dans Websphere application server.

WebSphere utilise L'API JMX pour créer des MBeans qui sont exposés en tant QU'API d'objets WebSphere internes. Comme les scripts Jython sont basés sur Java et qu'ils s'exécutent sur la JVM, ils peuvent accéder à ces objets et peuvent être utilisés pour configurer WebSphere.

En outre, il est amusant d'écrire du code dans Jython et vous apprenez une nouvelle langue.

Voici les détails

1
répondu Priyabrata Hota 2009-12-07 15:22:42

Quand aurai-je besoin de Jython?

J'ai besoin de Jython pour tester les pilotes JDBC. Certaines applications que j'utilise utilisent ODBC, d'autres utilisent JDBC. En utilisant Jython je peux tester les deux types de pilotes à partir d'une source Python (pour tester ODBC, j'utilise le pont JDBC-ODBC).

1
répondu Michał Niklas 2009-12-08 07:45:21

La JVM fait une bonne optimisation dynamique, mais ce n'est probablement rien pour s'enthousiasmer. JRuby fonctionne parfois plus vite sur la JVM (http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/) en optimisant les chemins de code qui s'exécutent beaucoup, mais C'est Ruby, pas Python.

Les bibliothèques Java sont la raison principale. Beaucoup d'entreprises ont de gros globs de code Java qui peuvent être scriptés avec Python. Il y a aussi quelques frameworks open source (Struts et Eclipse spring to mind) que vous pouvez écrire avec Jython.

0
répondu wisty 2009-12-07 13:23:03