Почему существуют разные реализации Ruby? - PullRequest
7 голосов
/ 20 апреля 2011

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

Как можно, чтобы на одном языке было несколько переводчиков? Означает ли это, что между ними есть важные различия, и что это значит для программиста? Пожалуйста, извините, если это ошибочный вопрос!

Ответы [ 3 ]

7 голосов
/ 20 апреля 2011

Потому что разные языковые разработчики решили сосредоточиться на конкретной области.Например, совместимость со средой исполнения Java (JRuby) или эксперимент с JIT (rubinius), целевое использование Ruby на предприятии (REE) и т. Д. И т. Д. *

Это также не уникально для Rubyна языке это полезно, если определенная группа видит потенциал в этом языке в определенной области, это может способствовать росту внутри этого сообщества.

4 голосов
/ 20 апреля 2011

Большинство языков имеют несколько реализаций.Оказывается, есть компромиссы, которые не всегда можно обойти с одним проектом.

  • Интеграция платформы
    Чем ближе вы интегрируетесь с одной платформой,чем дальше вы от интеграции с другими.Таким образом, существует фундаментальный выбор: специализация или общность .

  • Стабильность
    Если вы готовы принять нестабильность, тогдаболее амбициозные цели могут быть достигнуты.Таким образом, существует фундаментальный выбор: развитие или стабильность .

  • Команда менеджеров
    Есть место только для столькихуправление в любом конкретном проекте.Единственный способ создать новое пространство управления - создать новый проект.Поэтому существует фундаментальный выбор: ваш проект или мой проект .В некотором смысле это и есть «главная причина», поскольку разные менеджеры будут выбирать разные приоритеты.

1 голос
/ 20 апреля 2011

Практически все языки имеют несколько реализаций, включая Java (например, Oracle Java, Apache Harmony, OpenJDK).Но если вам нужна реализация ruby ​​по умолчанию, вы можете использовать следующее: реализация ruby ​​по умолчанию с использованием YARV .

Но в противном случае вы можете использовать другую реализацию ruby ​​длясуществующая инфраструктура, такая как JRuby с Java VM и IronRuby , для обслуживания существующей платформы или приложения в отрасли.

...