Нет, здесь Вы не увидите очередного спора о Java vs PHP/Perl/Python/Ruby... Речь пойдёт о Java как технологии и о JVM (Java Virtual Machine) в частности. JVM - лакомый кусочек. Пожалуй, самая популярная VM как на компьютерах среднестатистического пользователя, так и как основа для серверов приложений от Apache, Sun, Red Hat, Oracle, BEA и IBM. Наряду с популярностью, общим признанием, производительностью и безопасностью, HotSpot VM(так называется реализация JVM от компании Sun) с недавнего времени стала открыта под лицензией GPL 2. Неудивительно, что при всех этих факторах, она стала привлекать разработчиков реализаций языков.
Одним из первооткрывателей был Jython(раньше проект называется JPython). Это была первая серьёзная инициатива, которую увы компания Sun не поддержала и сейчас находится в роли догоняющего. Бывшие разработчики Jython, которые вложили основной вклад в проект, сейчас работают над IronPython(в Microsoft) и над PyPy(по гранту EU). Недостаток разработчиков в одно время практически заморозил проект, который страдал проблемами с совместимостью и производительностью относительно Python. Однако в последнее время произошли внтурение изменения в команде, вышла новая версия и по некоторым тестам он не только быстрее IronPython, но и сравним в скорости с CPython.
Неделю назад вышла 1.0 версия JRuby. Именно это событие и побудило меня к написанию статьи. Этот релиз полностью совместим с MRI(Matz Ruby Implementation), текущей реализацией языка Ruby. Работает, как в режиме интерпретатора, так и в режиме компилятора в байт-код(полную совместимость обещают в версии 1.1). На JRuby уже выпускают коммерческие продукты. JRuby открывает для разработчиков Ruby огромные горизонты: доступ к Java-библиотекам, возможность создания Swing-приложений, развёртывание в виде WAR на серверах приложений и многое другое. Такие компании как Sun и ThoughtWorks занимаются спонсированием основных разработчиков JRuby. Все три основных Java IDE(IntelliJ IDEA, Eclipse, Netbeans) имеют поддержку Ruby. Sun так же собирается добавить invokedynamic байт-код в свою VM, что должно упростить работу создателям JRuby и сделать его "first-class citizen".
Нельзля не упомянуть о Groovy. Это относительно новый язык, вдохновлённый Ruby, Python и Smalltalk, но с оглядкой на Java. Основная его задача была заполнение щели между Ruby и Java. Причём он должен был это сделать лучше чем JRuby. Интеграция с Java в нём действительно гораздо проще. Однако, взять лучшее из двух миров, на мой взгляд, не получилось. Очень уж сложно скрещивать технологии. Особенно это заметно при сравнении Ruby on Rails и Grails. Последний представляет собой смесь Java best practices(Spring, Hibernate, XFire, Jakarta Commons...) и самого Groovy, который используется в основном лишь для согласования отношений между компонентами. Было бы куда интереснее написать эту часть кода на Java и сделать фреймворк Groovy-независимым. Я считаю, что скрещивать технологии таким образом неправильно, т.к. происходит смесь идеологий. Именно поэтому мне не так нравится Groovy, несущий Java-наследие.
Динамические языки без сомнения одна из features без которых VM не выжить в наше время, это понимают и в Microsoft, анонсировав DLR(Dynamic Language Runtime). Кстати сам Ruby с 1.9 версии лишиться старого интерпретатора и на его место придёт VM, которая раньше называлась YARV(Yet Another Ruby Virtual Machine), правда теперь она уже не "ещё одна".
Автор статьи: https://chapaev.habrahabr.ru/[/RIGHT]
Здесь находятся
всего 0. За сутки здесь было 0 человек
сколько новых слов узнал =) прикольно!
0 ответить