Jython или JRuby? - PullRequest
       32

Jython или JRuby?

4 голосов
/ 15 июля 2009

Это концептуальный вопрос высокого уровня. У меня есть две отдельные базы кода, которые служат одной и той же цели: одна построена на Python, а другая на Ruby. Мне нужно разработать что-то, что будет работать на JVM. Поэтому у меня есть два варианта: преобразовать код Python в Jython или преобразовать Ruby в JRuby. Поскольку я не знаю ни одного из них, мне было интересно, кто-нибудь может дать мне какое-то руководство. Например, какой из них работает быстрее или, что более важно, у какого есть инструменты, доступные для легкой миграции кода (.pyc в .jar файлы)?

Ответы [ 5 ]

5 голосов
/ 15 июля 2009

В обоих случаях большая часть кода должна просто работать и торговать ;. Я не знаю действительно веской причины выбирать Jython вместо JRuby или наоборот, если вы будете учиться с нуля. Python делает упор на удобочитаемость и не использует «магию», но Ruby имеет тенденцию давать вам немного больше веревки, чтобы делать причудливые вещи, например, определять свой собственный DSL. Основное различие заключается в сообществе, и в значительной степени вращается вокруг различных целей, упомянутых выше.

2 голосов
/ 15 июля 2009

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

Я больше знаком с Python, чем с Ruby. Проект Jython после периода медленного движения действительно набрал обороты, в июне была выпущена версия, совместимая с Python 2.5. Это важный шаг вперед, так как Python 2.5 представляет некоторые очень полезные улучшения языка: http://docs.python.org/whatsnew/2.5.html

1 голос
/ 17 июля 2009

Все, что вы можете сделать в одном, вы можете сделать в другом.

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

1 голос
/ 15 июля 2009

Производительность может быть решающим фактором: в этом тесте (который, как и все тесты, следует брать с небольшим количеством соли), JRuby работал несколько быстрее, чем нативный Ruby, в то время как Jython опережал CPython в 3 раза.

1 голос
/ 15 июля 2009

Совместимость в любом случае находится на уровне исходного кода; с необходимыми изменениями, когда код Python или Ruby вызывает пакеты, которые включают нативный код (особенно, стандартные пакеты Python, такие как ctypes, отсутствуют в Jython).

...