Подтвердить что ты не робот

Что такое Jython и он вообще полезен?

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

  • Когда мне понадобится Jython?
  • Каковы недостатки?
  • Я предполагаю, что он медленный?

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

4b9b3361

Ответ 1

Цитирование Wikipedia:

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

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

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

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

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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

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

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

Я предполагаю, что он медленный?

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

Ответ 4

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

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

Ответ 6

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

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

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

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

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

Я предполагаю, что он медленный?

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

Ответ 7

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

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

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

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

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

Ответ 8

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

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

Ответ 9

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 spring), которые вы можете script с Jython.

Ответ 10

Чтобы добиться хорошей производительности или реализовать настоящую многопоточную программу, вызов сценария Python непосредственно из Java (нативный) является лучшим способом. Просто подготовьте ваш скрипт на python, а затем позвольте java сделать все остальное для одновременного вызова вашего скрипта на python.