LINUX.ORG.RU

Jython 2.5

 , , ,


0

0

После нескольких лет перерыва в разработке вышла версия Jython2.5 - Java-реализации языка программирования Python. Возможности нового Jython соответствуют возможностям CPython2.5

>>> Подробности

★★★★

Проверено: boombick ()

>Возможности нового Jython соответствуют возможностям CPython2.5

а скорость?

k0l0b0k ★★
()
Ответ на: комментарий от Werehuman

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

Binary ★★★★★
()
Ответ на: комментарий от yoghurt

>Никогда не понимал, зачем оно надо

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

И не говорите, что все java либы имеют аналоги в питоне. Например, для диплома надо работать с онтологиями, и ничего даже отдаленно похожего на Jena ни в питоне, ни в других языках пока нету.

alexey_
()
Ответ на: комментарий от pento

Разработчикам оно таки надо. Мне, вот, тоже. Глядишь, еще народ подтянется. Хотя есть альтернативы и не хуже - Rhino, например. Хотя есть очень интересные Clojure и Scala.

cab ★★★★
() автор топика

оно разве живо?

imp ★★
()
Ответ на: комментарий от alexey_

Ну так и писали бы на том языке, под который данная библиотека написана.

Amp ★★★
()

хм, сабжем ещё кто-то пользуется?

thevery ★★★★
()
Ответ на: комментарий от yoghurt

>Никогда не понимал, зачем оно надо

Выполнять скрипты на Java-сервере.

KRoN73 ★★★★★
()
Ответ на: комментарий от hdclnr

>дико медленная реализация.

Блин, с http://shootout.alioth.debian.org/ убрали Jython почему-то :-/

...

По памяти, у Jython пару версий назад производительность, таки, подправили. Было время, когда он тому же Perl'у сливал раз в 30. В последних версиях - быстродействие одного порядка было.

Это на числодробилке.

Надо будет на объектах пробенчить.

Ну и критический функционал в сабже всегда на Java можно реализовать.

KRoN73 ★★★★★
()
Ответ на: комментарий от Binary

> на симбиане и так запускают. правда памяти оно кушает столько, что ничего полезнее калькулятора у меня не вышло.

E65 даже игрушки запускает, ЧЯДНТ ?

phasma ★☆
()

Любопытно, надо будет глянуть на досуге.
Насчет зачем оно надо - ну, если не ошибаюсь, у него нет проблемы GIT-а к примеру так сказать. Памяти правда кушает больше, насчет скорости не знаю.

Vark
()
Ответ на: комментарий от phasma

>E65 даже игрушки запускает, ЧЯДНТ ?

а ещё что-то параллельно запустить удаётся? особенно, на j2me? впрочем, давно я это дело смотрел, больше дел с симбианом предпочитаю не иметь.

Binary ★★★★★
()
Ответ на: комментарий от alexey_

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

> И не говорите, что все java либы имеют аналоги в питоне. Например, для диплома надо работать с онтологиями, и ничего даже отдаленно похожего на Jena ни в питоне, ни в других языках пока нету.


Так почему бы тогда на яве и не писать?

zero-1-2-3
()
Ответ на: комментарий от zero-1-2-3

>Так почему бы тогда на яве и не писать?

Java требует компиляции и тяжелее реализует подмену кода на лету.

...

Грубо говоря - ты спрашиваешь, почему бы не писать сразу на Си вместо PHP или Питона :)

KRoN73 ★★★★★
()
Ответ на: комментарий от zero-1-2-3

>Так почему бы тогда на яве и не писать?

Ну, например, Jython - внутренний язык WSAdmin из вебсферы и WLST из веблоджика. Можно, конечно, рулить апп.серверами и из жава-утилы, но зачем админу лезть в дебри JMX, если можно воспользоваться знакомым питоном?

leave ★★★★★
()

Отличная новость!

Сабж используют в HP, для скриптования Ъ-жаба-энтерпрайза. И надо сказать очень даже неплохо выходит. Штука однозначно полезная: скрипты, прототипирование, кастомизация аппликух (и все остальные области применения Cpython) только для джава-мира.

xap4o
()
Ответ на: комментарий от KRoN73

> Java требует компиляции

И?

> и тяжелее реализует подмену кода на лету.

А зачем нужна "подмена кода на лету"?

> бы не писать сразу на Си вместо PHP

Не корректные аналогии. Сразу пейсать на Java вместо PHP - это большой позитив.

Bioreactor ★★★★★
()
Ответ на: комментарий от alexey_

> Например, для диплома надо работать с онтологиями

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

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

>> Java требует компиляции

> И?


Соответственно, при таком подходе конечносу пользователю понадобится уже не JRE, а JDK. Плюс придётся или натаскать его делать javac, или делать системные вызовы из Java. Вроде бы, Java нормально компилировать себя в рантайме пока не умеет :)

>> и тяжелее реализует подмену кода на лету.


> А зачем нужна "подмена кода на лету"?


Чтобы сервер не перезапускать по каждому чиху.

>> бы не писать сразу на Си вместо PHP


> Не корректные аналогии. Сразу пейсать на Java вместо PHP - это большой позитив.


Совершенно корректное для тех, кто с этим работает. Точно также можно сказать, что писать сразу на Си вместо Перла - большой позитив :)

KRoN73 ★★★★★
()
Ответ на: комментарий от Bioreactor

>Ну, я не "пейсатель диплома", а в реальной жизни для "жабабыдлокодинга" (с) (== нормальной денежной работы) хватает самой Джавы.

Иногда удобнее использовать скриптовые языки, для манипуляции исходниками без перекомпиляции. Интырпрайзрый пример: логика бизнес-процессов или логика docflow. Ее удобно править без перекомпиляций/передеплоев/рестартов сервака. А уж на боевых то серваках это иногда единственный способ исправить ошибку или внести дополнение. Там рестарты/перегрузки недопустимы.

Nagwal ★★★★
()
Ответ на: комментарий от lu

http://pastebin.ca/1445937 - На числодробильне лучше питона (без психа):
miha@asm3:~/tmp$ jython testheap.py
result 290068052
Time : 420
result 290068052
Time : 3247
miha@asm3:~/tmp$ python2.5 testheap.py
result 290068052
Time : 526
result 290068052
Time : 2366
Но хуже, когда работает с кучей. Хотя при работе с кучей лучший результат у Джавы - http://lj.rossia.org/users/kouzdra/664091.html (откуда я и взял тест)

cab ★★★★
() автор топика
Ответ на: комментарий от cab

Ну и объектный фибонначи до кучи от Крона73 http://balancer.ru/tech/forum/2008/08/t63003--Proizvoditel~nost~-yazykov.Ob~e... :
miha@asm3:~/tmp$ jython ofib.py
102334155
Time : 659
miha@asm3:~/tmp$ python2.5 ofib.py
102334155
Time : 395

Результат далеко не в пользу jython.

cab ★★★★
() автор топика
Ответ на: комментарий от yoghurt

>Никогда не понимал, зачем оно надо

Ну например что ынтырпрайз-проекты на жабе могли использовать Пайтон как скриптовый язык

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от cab

>Результат далеко не в пользу jython.

Но уже намного лучше, чем раньше :) Выходит, что на объектах jython работает где-то в 2-3 раза быстрее PHP (или того же Quercus).

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

>В затраченное jython время включен старт JVM?

Когда время теста измеряется сотнями секунд, стартап уже не играет роли :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Грубо говоря - ты спрашиваешь, почему бы не писать сразу на Си вместо PHP или Питона :)


Кстати, тут есть 3 интересных момента
1) много работы в случае с Java за тебя делает IDE. В случае динамически типизируемых языков такого не получится.
2) Генерики в Java, на мой взгляд, удобней динамической типизации Python.
3) С Java меньше времени уходит на тестирование, чем в случае с Python.
Итого - я сейчас даже не сказал бы, что производительность моего труда на Python сильно отличается от производительности при использовании Java. А вот скорость програм и их надежность возросла. Хотя для своей ниши - мелкого и средней руки скриптинга Python удобнее.

cab ★★★★
() автор топика

Там, наверное, потоки работают нормално?

brbr
()
Ответ на: комментарий от cab

>1) много работы в случае с Java за тебя делает IDE. В случае динамически типизируемых языков такого не получится.

Много работы в случае Си за тебя делает IDE. В случае динамически типизируемых языков такого не получится.

>2) Генерики в Java, на мой взгляд, удобней динамической типизации Python.


Кому-то генерики и в Си++ намного удобнее покажутся. А уж если с препроцессором :)

>3) С Java меньше времени уходит на тестирование, чем в случае с Python.


Зато каждый цикл тестирования может потребовать рестарта системы. А с Питоном (PHP, Perl'ом) - поправил / посмотрел результат.

KRoN73 ★★★★★
()
Ответ на: комментарий от cab

> производительность моего труда на Python сильно отличается от производительности при использовании Java

Хотя читать программы на Python, чаще приятней, чем на Java. Хотя тоже далеко не всегда.

cab ★★★★
() автор топика
Ответ на: комментарий от KRoN73

>> В затраченное jython время включен старт JVM?

> Когда время теста измеряется сотнями секунд

Ну там не написано, что тест в секундах. Я думал - в милли.

tailgunner ★★★★★
()
Ответ на: комментарий от KRoN73

> поправил / посмотрел результат.
Разве что в случае eval - питон не умеет во время работы программы перечитывать код

cab ★★★★
() автор топика
Ответ на: комментарий от cab

>питон не умеет во время работы программы перечитывать код

Питон - не знаю. Jython - умеет. У нас в L2J/L2Fortress квесты на Джайтоне перегружались на лету.

...

Нет, я, конечно, потом и класслоадер для Java сделал с таким же функционалом, но там требовалось ещё перед каждой перезагрузкой соответствующий java-файл компилить. Получалось намного дольше.

...

Хотя тут Jython всё равно тому же Форту сливает. В Форте можно было модифицировать код прямо из командной строки клиента :) Да и быстрее Джайтона он был раз в 30. Зато компилятор ошибки ловил хуже...

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> В Форте можно было модифицировать код прямо из командной строки клиента :)

Такое и в лиспе можно, в т.ч. для Java-реализаций.

Кстати, Jython разучился компилировать :(.

cab ★★★★
() автор топика
Ответ на: комментарий от cab

>Такое и в лиспе можно, в т.ч. для Java-реализаций.

Можно. Главное в скобках не запутаться. А то при вводе в командной строке клиента при ошибке исправить ввод нельзя, опять по-новой набивать, если что :)

А так на Форте писалось в духе:

"50 golds items-add" do-players

И всем игрокам сервера в онлайне накидывалось по 50 монет :)

>Кстати, Jython разучился компилировать :(.


Ну, я в компилирующем варианте его и не использовал. Всё равно производительность та же, а без Jython-либ полученные *.class всё равно не работают.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Jython - умеет. У нас в L2J/L2Fortress квесты на Джайтоне перегружались на лету.

Кстати, как это делал?

cab ★★★★
() автор топика
Ответ на: комментарий от cab

>Кстати, как это делал?

Не помню. За эту часть системы не я отвечал, так что только краем глаза видел. Можешь порыться в сорцах - trac.balancer.ru/fortress

Там же и класслоадер на Java можешь посмотреть. Его уже я делал. Правда, только сам механизм и реилзован. На практике ничего на нём не сделали кроме тестов, команда раньше развалилась.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Соответственно, при таком подходе конечносу пользователю понадобится уже не JRE, а JDK.

Я поставляю пользователю клиентскую программу через JNLP.

На сервере приложений у меня JDK. Но это сервер приложений.

> Чтобы сервер не перезапускать по каждому чиху.

А разве надо перезапускать сервер приложений?

Bioreactor ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.