LINUX.ORG.RU

Jython 2.5

 , , ,


0

0

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

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

★★★★

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

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

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

Это сильно зависит от привычки.

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

Угу. Плюс от написанного. Тот Python-бенчмарк, что я привел выше, по читабельности хуже Java. Плюс я не мог долго привыкнуть к тому, что половину работы за меня делает Emacs или NetBeans.

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

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

Opera Mini и Инигму.

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

>Вроде бы, Java нормально компилировать себя в рантайме пока не умеет :)

2,5 года как полностью специфицирован Java Compiler API (JSR 199).

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

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

Дарю "концепт":

import os

f = open('ext.py','w')
f.write('def func():\n    return \':(\'\n')
f.close()
import ext

print ext.func()

os.unlink('ext.pyc') 
f = open('ext.py','w')
f.write('def func():\n    return \':)\'\n')
f.close()

reload(ext)

print ext.func()


ожидается что программа напечатает
:(
:)

ZV
()
Ответ на: комментарий от iZEN

>2,5 года как полностью специфицирован Java Compiler API (JSR 199).

Понятно. А я как раз 2.5 года назад где-то с Java и слез (временно). Пригодится, когда вернусь :)

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

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

А ты попробуй разнообразить меню.

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

>Вроде бы, Java нормально компилировать себя в рантайме пока не умеет :)

Ну вообще-то говновопрос.

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

> Дарю "концепт"
Это, по результату, мало отличается о eval. Даже хуже, поскольку в случае с eval, в некоторых случаях мы можем подхватить контекст программы, а в случае полного перечитывания - нет. Мне же важно нечто вроде лисповского REPL, когда я поправил код и тут же скормил его уже выполняющейся программе. Как это негеморойно сделать без eval я не знаю.

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

Где я провоцирую? Если есть что сказать по делу - скажи. Я всегда рад поправить свои знания. Тем более, что я на Python пишу много и язык мне нравится.

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

>Где я провоцирую?

1. IDE vs vim/emacs - холивар
2. статическая vs динамическая типизация - холивар
3. см п 2.

>Если есть что сказать по делу - скажи.


Так обычно все и начинается.

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

IDE vs vim/emacs - где-то лучше одно, где-то другое. Нет темы для холивара.
статическая vs динамическая типизация - холивар. См. п.1 Хотя мне лично больше нравятся генерики. Но по ситуации. Нет темы для холивара.

Пользуя как жабу, так и питон у меня лично примерно одинаковые затраты времени, о чем я и сказал. У кого-то может быть по другому. Области их применения тоже различны, снова нет темы для холивара.

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

> Это, по результату, мало отличается о eval. Даже хуже, поскольку в
>  случае с eval, в некоторых случаях мы можем подхватить контекст
>  программы, а в случае полного перечитывания - нет

Не понимаю о каком контексте и каком "полном перечитывании" тут идёт
речь - я в образце сформировал модуль - загрузил - удалил откомпилированный файл - 
сформировал новый модуль - перезагрузил.

А программа как выполнялась, так и выполняется.

Некоторым приближением к лисповскому REPL наверное можно считать такой код:

code = compile('def func():\n    return \':(\'\nx=1\n', '<string>', 'exec')
exec code

print func(), x

code = compile('def func():\n    return \':)\'\nx=2\n', '<string>', 'exec')
exec code

print func(), x


Да, конечно, без compile и eval/exec не обойтись. 
Но и геморроя в таком коде (если пренебречь компилируемым выражением) я не вижу.

ZV
()

Наверное таки под андроидэ можно будет писать, что ли)

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