Статьи

alt.ruby

Нет никаких сомнений в том, что Ruby on Rails создает некоторый шум среди кругов веб-разработки — вы читали блоги и, возможно, купили футболку, но знаете ли вы, что Ruby как язык тоже привлекает внимание?

До сих пор вы использовали оригинальный переводчик Matz Ruby Interpreter (MRI), созданный дизайнером Ruby — Юкихиро Мацем Мацумото. Это стандартный интерпретатор, который по умолчанию устанавливается в Linux и OSX. Однако было несколько проблем.

  • Скорость. По своей сути интерпретируемый язык будет работать медленнее, чем скомпилированный — интерпретатор должен анализировать и компилировать исходный код при каждом запуске.
  • Интеграция: если вы хотите подключиться, например, к серверу ActiveDirectory или серверу MSQL, вам нужны библиотеки, написанные на Ruby. Это может вызвать некоторые головные боли, если вы попытаетесь использовать Ruby на предприятии

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

JRuby

JRuby — это порт интерпретатора Ruby в Java. Это, пожалуй, самый зрелый, с в основном полным набором библиотек, и может ли он запускать Rails (неофициально). Помимо возможности доступа ко всем стандартным библиотекам Java, JRuby может быть скомпилирован в байт-код (с использованием компиляции Just-in-Time или Ahead-of-time), что исключает этап синтаксического анализа и компиляции, необходимый для выполнения MRI. , Это делает JRuby быстрее, чем MRI во многих случаях. Это ускорение заметно при запуске версии mongrel на JRuby.

Rubinius

Rubinius — проект, пытающийся создать виртуальную машину для языка Ruby. Виртуальная машина Ruby работает так же, как и виртуальная машина Java — код компилируется и оптимизируется в общий байт-код, который затем исполняется виртуальной машиной. Это дает преимущество в скорости, исключая этап синтаксического анализа и компиляции, и в то же время позволяет переносить между платформами. Команда Rubinius также создала наиболее полный набор модульных тестов для Ruby, который используют многие другие проекты.

IronRuby

IronRuby — это порт Ruby, который работает на платформе Microsoft .NET Dynamic Language Runtime (DLR). Продолжая работу с того места, где остановился Ruby.NET (который был создан с использованием Common Runtime Language), IronRuby стремится скомпилировать Ruby в промежуточный язык .NET (в основном то же самое, что байт-код Java или Rubinius). Подобно тому, как JRuby позволяет Ruby получать доступ к файлам классов Java, IronRuby позволяет IronRuby получать доступ к сборкам .NET. На самом деле, поскольку .NET не зависит от языка, вы даже можете использовать его для написания ASP.NET или Silverlight и интеграции с кодом, написанным на C # или VB.NET. IronRuby все еще находится на ранних стадиях, главным образом потому, что API DLR еще не завершен, но, тем не менее, делает успехи.

Как вы можете видеть, на нижних уровнях Ruby происходит многое. Если вам интересно, вы можете загрузить и запустить все эти системы — просто не ожидайте, что они все еще будут работать должным образом!