Какого переводчика ruby вы ждете с нетерпением?
В настоящее время существует несколько реализаций Ruby. Чего вы ждете с нетерпением и почему? Активно ли вы используете не-МРТ-реализацию в производстве?
Некоторые из вариантов включают:
- Ruby MRI (оригинальная ветвь 1.8)
- Ярв (официальный 1.9)
- JRuby
- Рубиний
- IronRuby
- MagLev (Спасибо Julian )
- Макруби (Спасибо Дэмиен Поллет )
5 ответов:
Маглев . Это будет иметь преимущество скорости всей оптимизации, которая вошла в основной Smalltalk VM в течение многих, многих лет. Кроме того, он будет автоматически сохранять все ваши данные в значительной степени автоматически, так что больше нет необходимости возиться с объектно-реляционными слоями отображения и так далее.
Ruby 1.9 (YARV) дает нам хорошее представление о том, куда направляется ruby, но я бы не рекомендовал использовать его для производственного использования. Хотя это, безусловно, намного быстрее, чем 1.8, даже некоторые части синтаксиса продолжают меняться, поэтому я не думаю, что вы могли бы назвать его стабильным. У него есть некоторые интересные новые функции и синтаксис, которые, несомненно, найдут свой путь во всех других реализациях с течением времени.
JRuby и IronRuby полезны тем, что дают ruby доступ к целому ряду новых библиотек и окружение, где Рубин не мог быть использован иначе. Я сам еще не нашел им большого применения, но думаю, что это здорово, что они существуют. Они могут позволить ruby проникать в корпоративную среду, где в противном случае это было бы запрещено. Это может быть только хорошо.
Рубиниус и маглев, вероятно, самые интересные проекты, но также и те, где их польза для общества, вероятно, будет дальше всего в будущем. Рубиниус вполне может превратиться в ультрасовременную "чистую" ВМ для языка ruby, позволяя ruby коду работать намного быстрее, чем он может сейчас. Maglev тоже кажется чрезвычайно перспективным, подкрепленным более чем 20-летним опытом работы с виртуальными машинами. Он также будет предоставлять функции сверх стандартной виртуальной машины, но, конечно, это будет стоить переносимости кода.В целом, что меня больше всего волнует, так это конкуренция между этими реализациями. Наличие конкурирующих проектов, работающих над улучшением ruby, может только усилить экосистему ruby. Судя по тому, что я видел, пока существует конкуренция, она дружественна; каждый проект дает и берет идеи друг от друга. Работа, проделанная командами JRuby и Rubinius по созданию спецификации ruby, вероятно, является наиболее важным результатом на данный момент, поскольку она поможет гарантировать, что все реализации остаются совместимыми.