LINUX.ORG.RU

JRuby 1.5.0

 , , ,


0

1

Через 5 месяцев с последнего релиза вышла новая версия Java-реализации языка Ruby.

Основные изменения:

  • Новый высокопроизводительный native access framework и улучшенная поддержка FFI
  • Поддержка Ant и интеграция Rake-Ant
  • Улучшенная поддержка Windows
  • Множественные улучшения производительности вызовов Ruby-to-Java
  • Улучшение Embedding API (JSR-223, BSF, RedBridge, etc)
  • Обновлена стандартная библиотека Ruby 1.8.7; новые версии RubyGems 1.3.6, RSpec 1.3.0
  • ruby-debug установлен по умолчанию
  • Улучшена совместимость с Rails 3
  • Более быстрый запуск
  • Увеличена производительность Object#object_id/__id__
  • Уменьшено потребление памяти Java class metadata и более быстрая загрузка Java-классов
  • Поддержка jar-in-jar
  • Исправлены проблемы с библиотекой «open4»
  • jruby.jit.codeCache=dir сохраняет байткод на диске в виде sha1-шифрованных .class файлов
  • Новая реализация интерфейсов реализующий «настоящие» классы
  • Опция jruby.ji.objectProxyCache выключает OPC для «экстра»-производительности
  • JRuby::Synchronized module for making a class and its subclasses 100% synchronized on all calls
  • Устранены проблемы с maven
  • Более 1250 коммитов с версии 1.4

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

★★

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

Про предыдущие версии писали, что он быстрее, чем MRI и в некоторых случаях быстрее, чем YARV. Интересно, изменилась ли ситуация.

Вообще, главная польза от JRuby — доступ к Java API. Это скорее не замена Ruby, а дополнение к Java. Но я уже выбрал Clojure :)

Fice ★★ ()

а какова сфера применения?

boo32 ()

> Улучшена совместимость с Raile 3

с чем-чем?

iMp ★★★ ()

Народ, подскажите плз, нафига нужны вот эти поделия? pypy (питон на питоне), jruby (руби на яве)... нафига оно надо?

Deleted ()
Ответ на: комментарий от boo32

> а какова сфера применения?

Как и для всего java скриптинга:

1. Интеграция java компонентов (enterprise ага)
2. Скриптинг для тех же enterprise компонентов (например базовая функциональность и компоненты системы работающие под нагрузкой пишутся на java, а кастомизация под конкретного клиента делается скриптами).
3. Прототипирование - тут большой плюс это возможность лёгкой интеграции с уже написанными компонентами, и более высокая скорость разработки.

как-то так

Crocodille ()
Ответ на: комментарий от Deleted

Народ, подскажите плз, нафига нужны вот эти поделия? pypy (питон на питоне), jruby (руби на яве)... нафига оно надо?

PyPy этовообще-то главным образом исследовательсктй проект.

Конечно, на ЛОРе непринято об этом говорить, ведь тутошние аналитики признают только enterprise & production, ибо все они крутые парни и занимаются реальными вещами. Если кто-то занимается исследованиями, то это его проблемы, вот когда он выдаст продакшн им --- тогда они и одобрят. А пока будут грязью поливать.

jruby --- интерпретатор Руби для Ява-платформы. Если Руби не потрирован на некоторую архитектуру, но там есть Ява-машина (что достаточно реально вследствие большей популярности и распространённости Java), то вы можете запускать свой код через неё.

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

Поддерживаю пользователя halturin в его недоумении

anonymous ()
Ответ на: комментарий от Deleted

А если посмотреть с другой стороны: зачем для каждого нового динамического языка создавать свой рантайм и свою виртуальную машину, если можно использовать существующую (JVM или CLR)? Суть не в том, что это «Ruby на Java», а в том, что это Ruby на JVM вместо своей собственной виртуальной машины (которая, по сути, велосипед).

Эта позицию хорошо Рич Хики (автор Clojure) обосновал.

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

ЖРуби быстрее 1.8 на порядок, с 1.9 не в курсе как сейчас. Есть подвязки к яве, и jruby пользуются. Что-нибудь еще надо для успешного проекта? Про pypy первый раз слышу, но может кто-то где-то зачем-то использует.

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

Как-то все забывают, что pypy рвет cpython в разы по скорости... Пруфы искать в ньюсах.

anonymous ()
Ответ на: комментарий от Fice

А если посмотреть с другой стороны: зачем создавать новй динамический язык?

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

зачем создавать новй динамический язык?


В надежде сделать лучше. Это развитие. Правда, есть мнение, что процесс развития динамических языков сходится к Лиспу.

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

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

>Народ, подскажите плз, нафига нужны вот эти поделия?

как обычно - для ускорения разработки. Java ускорила разработку в несколько раз по ср. с С/С++, Python/Ruby - по ср. с Java.

pypy (питон на питоне)

pypy - это другое. man Jython/IronPython

anonymous ()
Ответ на: комментарий от Deleted

>Народ, подскажите плз, нафига нужны [..] jruby (руби на яве)... нафига оно надо?

Java не очень хороший выбор для скриптописания. Вот и есть хорошие альтернативы для этого. JRuby, Jython, Quercus...

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

>А если посмотреть с другой стороны: зачем создавать новй динамический язык?

А если посмотреть с другой стороны: зачем вообще что-то создавать? Зачем, вообще, жить?

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

самую главную альтенативу специально не назвали? ;)

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

А кто этот «главный» с Вашей точки зрения? Ruyno, BeanShell, Groovy, Scala, Clojure, Jickle...?

...

Я назвал просто тройку J-аналогов самых «на слуху» скриптовых языков :)

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

groovy, конечно.
groovy вообще самый перспективный и активно развиваемый язык из всех под JVM(кроме разве что FX) имхо.

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