Что такое Jython и полезен ли он вообще? - PullRequest
25 голосов
/ 07 декабря 2009

Я знаю Python, но что такое Jython?

  • Когда мне понадобится Jython?
  • Какие недостатки?
  • Я полагаю, это медленно?

Пожалуйста, детализируйте это! спасибо.

Ответы [ 9 ]

26 голосов
/ 07 декабря 2009

Цитирование Википедия :

Jython, наследник JPython, является реализацией языка программирования Python, написанного на Java.

Что касается того, что он может использовать:

Jython-программы могут легко импортировать и использовать любой класс Java. За исключением некоторых стандартных модулей, программы Jython используют классы Java вместо модулей Python.

Измерения производительности Jython, IronPython и CPython показывают, что Jython и IronPython превосходят CPython в некоторых случаях с большими наборами данных.

9 голосов
/ 09 декабря 2009

Если вы знаете Python и увлечены «питонским» способом ведения дел, то Jython позволяет вам перенести эту философию в стек JVM. Если вы сделаете это, это будет гораздо больше, чем просто добавление скриптов.

В наших последних проектах вся пользовательская и бизнес-логика построена на Jython, в то же время мы все еще можем использовать некоторые из проверенных и проверенных библиотек Java, таких как Solr, Jasperreports, Quartz, Jetty, Velocity и многие другие .

Он компилируется в байт-код, однако добавляется дополнительный слой, но он ничем не отличается от использования ORM вместо прямого JDBC, например.

То, что вы получаете в гораздо большей производительности, весит крошечные потери в производительности.

На стороне сервера Jython редко является узким местом. Для мини-настольных приложений могут быть проблемы, но они очень сильно зависят от того, что вы пытаетесь сделать.

Последний JDK, вместе с контейнерами, такими как Jetty или Tomcat, очень зрелый и стабильный, добавление Python сверху во многих случаях дает лучшее из обоих миров.

6 голосов
/ 07 декабря 2009

Когда мне понадобится Jython?

Если вы хотите программировать на Python, но хотите (или хотите) запустить результат на виртуальной машине Java или использовать существующие компоненты Java.

Какие недостатки.

Jython может быть не на 100% совместим с Python, хотя любая несовместимость будет считаться ошибкой. Если позже вы захотите / должны работать на CPython, любой код, использующий компоненты Java, придется переписать.

Я полагаю, это медленно?

Это зависит, как всегда, от вашего конкретного варианта использования. В некоторых случаях это может быть быстрее, чем CPython; и, конечно, это зависит от конкретной JVM, под которой вы работаете, - все лучше и лучше.

5 голосов
/ 07 декабря 2009

Две другие причины:

  • Встраивание сценариев в большое Java-приложение.
  • Использование потоков Java для написания многопоточных программ на Jython.
4 голосов
/ 07 декабря 2009

Когда мне понадобится Jython?

Например, чтобы добавить хороший язык сценариев в ваш код.

Какие недостатки?

Основным недостатком Jython является отставание от официального дистрибутива CPython. В настоящее время вы можете получить версию Jython, которая совместима с Python 2.5.2, а CPython - 3.1.

Также некоторые эзотерические модули не поддерживаются. Обычно вы не заметите и / или не сможете легко найти замену Java.

Я полагаю, это медленно?

По сравнению с чем? Обычно это либо достаточно быстро, либо, если это не так, вы можете заменить несколько строк Python примерно на 1000 строк гораздо более быстрой Java.

4 голосов
/ 07 декабря 2009

Jython - это реализация Python, которая работает поверх JVM. Теоретически, Jython немного медленнее, чем CPython.

Вы можете найти некоторые тесты здесь: http://www.smallshire.org.uk/sufficientlysmall/2009/05/22/ironpython-2-0-and-jython-2-5-performance-compared-to-python-2-5/

1 голос
/ 08 декабря 2009

Когда мне понадобится Jython?

Мне нужен Jython для тестирования драйверов JDBC. Некоторые из приложений, которые я использую, используют ODBC, некоторые используют JDBC. Используя Jython, я могу протестировать оба типа драйверов из одного источника Python (для тестирования ODBC я использую мост JDBC-ODBC).

1 голос
/ 07 декабря 2009

Когда мне понадобится Jython?

Вы можете написать административные сценарии для сервера приложений Websphere, используя Jython. Сценарии используются для автоматизации общих административных задач и настройки безопасности на сервере приложений Websphere.

WebSphere использует JMX API для создания MBean-компонентов, которые представляются как API-интерфейс внутренних объектов WebSphere. Поскольку сценарии Jython основаны на Java и работают на JVM, они могут обращаться к этим объектам и могут использоваться для настройки WebSphere.

Кроме того, интересно писать код на Jython, и вы изучаете новый язык.

Вот подробности

0 голосов
/ 07 декабря 2009

JVM выполняет приятную динамическую оптимизацию, но, вероятно, не стоит волноваться. JRuby иногда работает быстрее на JVM (http://www.engineyard.com/blog/2009/j-is-for-jvm-why-the-j-in-jruby/), оптимизируя пути кода, которые часто выполняются, но это Ruby, а не Python.

Основными причинами являются библиотеки Java. У многих компаний есть большой объем Java-кода, который может быть написан на Python. Есть также несколько фреймворков с открытым исходным кодом (на ум приходят Struts и Eclipse), которые вы можете создавать с помощью Jython.

...