IronRuby — это реализация языка программирования Ruby, ориентированная на Microsoft .NET Framework . Она реализована поверх Dynamic Language Runtime (DLR), библиотеки, работающей поверх Common Language Infrastructure , которая обеспечивает динамическую типизацию и динамическую диспетчеризацию методов, среди прочего, для динамических языков.
В настоящее время проект неактивен, последний релиз IronRuby (версия 1.1.3) был в марте 2011 года.
30 апреля 2007 года на MIX 2007 компания Microsoft анонсировала IronRuby, который с разрешения использует то же имя, что и проект IronRuby Вилко Бауэра. [3] Планировалось, что он будет представлен публике на OSCON 2007. [4]
23 июля 2007 года, как и было обещано, Джон Лэм и команда разработчиков DLR представили предварительную альфа-версию компилятора IronRuby на OSCON. Он также объявил о кратких сроках дальнейшей интеграции IronRuby в сообщество разработчиков ПО с открытым исходным кодом. [5]
31 августа 2007 года Джон Лэм и команда разработчиков DLR опубликовали код в стадии предварительной альфа-версии на RubyForge. [6] Исходный код продолжает регулярно обновляться основной командой Microsoft (но не при каждой регистрации ). Команда также не принимает вклады сообщества в основную библиотеку Dynamic Language Runtime , по крайней мере, на данный момент. [7]
24 июля 2008 года команда IronRuby выпустила первую бинарную альфа-версию, соответствующую OSCON 2008. [8] 19 ноября 2008 года они выпустили вторую альфа-версию.
Команда активно работала над поддержкой Rails на IronRuby. [9] [10] Некоторые функциональные тесты Rails начали выполняться, но еще многое нужно было сделать, чтобы иметь возможность запустить Rails в производственной среде. [11]
21 мая 2009 года они выпустили версию 0.5 совместно с RailsConf 2009. С этой версией IronRuby мог запускать некоторые приложения Rails , но все еще не в производственной среде. [12]
Версия 0.9 была анонсирована как OSCON 2009. [13] Эта версия улучшила производительность. [14] Версия 1.0 RC1 стала доступна 20 ноября 2009 года. [15]
Версия 1.0 стала доступна 12 апреля 2010 года в двух различных вариантах:
Команда IronRuby планировала поддерживать Ruby 1.8.6 только для версий 1.0, а версию 1.9 — только для будущих версий 1.x, пропуская поддержку Ruby 1.8.7. [17] [18]
В июле 2010 года Microsoft уволила Джимми Шементи, одного из двух оставшихся членов основной команды IronRuby, и прекратила финансирование проекта. [19] [20] В октябре 2010 года Microsoft объявила, что проекты Iron (IronRuby и IronPython ) будут преобразованы во «внешние» проекты и позволят «членам сообщества вносить вклад без участия Microsoft или спонсорства со стороны сотрудника Microsoft». [21]
Последняя опубликованная версия IronRuby была выпущена 13 марта 2011 года под номером 1.1.3. [22]
IronRuby может работать как в Mono, так и в Microsoft Common Language Runtime (CLR), [23] но поскольку команда IronRuby тестирует его только с CLR на Windows , [24] он может не работать в Mono в зависимости от сборки. [25] [26] [27]
Взаимодействие между классами IronRuby и обычными классами .NET Framework очень ограничено, поскольку многие классы Ruby не являются классами .NET. [28] Однако лучшая поддержка динамических языков в .NET 4.0 может повысить взаимодействие в будущем. [29] [30]
IronRuby поддерживался в Silverlight . Его можно было использовать как скриптовый движок в браузере, как и движок JavaScript . [31] Скрипты IronRuby передавались как простые клиентские JavaScript-скрипты в <script>
-тегах. Затем также можно было изменять встроенную разметку XAML . [32]
Технология, лежащая в основе этого, называлась Гештальт. [33]
//Скрипт инициации DLR . <script src= "http://gestalt.ironruby.net/dlr-latest.js" type= "text/javascript" > // Скрипт
на стороне клиента , переданный в IronRuby и Silverlight. <script type= "text/ruby" > window.Alert("Привет от Ruby") </script>
То же самое сработало и для IronPython . [34]
IronRuby интегрировал RubySpec , который является проектом по написанию полной, исполняемой спецификации для языка программирования Ruby. Репозиторий IronRuby Git включает копию тестов RubySpec, включая тестовую структуру MSpec. [35]
IronRuby ранее выпускался под лицензией Microsoft Public License , которая является сертифицированной OSI лицензией в стиле BSD . [36]
16 июля 2010 года Microsoft повторно лицензировала IronRuby вместе с DLR под лицензией Apache License 2.0 . [37]
вы должны проверить исходный код из репозитория IronRuby Subversion на Rubyforge. Вам понадобится клиент Subversion; мы рекомендуем TortoiseSVN. Для сборки исходных кодов из командной строки на вашем компьютере также должен быть установлен Ruby
не принимает вклады от сообщества (...) Сегодня мы не отправляем в SVN при каждой успешной регистрации SNAP
отправляем наш первый бинарный релиз. В этом пакете мы придерживаемся подхода "батарейки включены" и отправляем стандартные библиотеки Ruby в нем
Я не думаю, что мы уже близки к концу игры :) Сейчас мы едва можем запускать функциональные тесты Rails, и предстоит еще много работы с библиотеками, прежде чем мы начнем думать о развертывании
, работающий на Rails, не является чем-то новым, но делать это хорошо или полностью – это так. IronRuby теперь может запускать настоящие приложения Rails, а не просто игрушечные примеры Hello World. Это не означает, что IronRuby на Rails готов к производству, но это отличный показатель прогресса
IronRuby теперь поставляется в двух вариантах: один работает поверх .NET 4.0, а другой работает на любой более ранней платформе, начиная с .NET 2.0 SP1. Вариант .NET 4.0 отличается более быстрым временем запуска, совместимостью с ключевым словом C# dynamic и доступом к новым функциям .NET 4.0. Поэтому сейчас предпочтительнее загружать вариант .NET 4.0, так как Microsoft .NET Framework 4.0 уже доступен для общего пользования. Для совместимости с Mono используйте zip-файл выпуска для 2.0 SP1.
Выпуски IronRuby 1.0.x: совместимы ТОЛЬКО с ruby-1.8.6; Выпуски IronRuby 1.x: совместимы ТОЛЬКО с ruby-1.9
целом, я вижу серьезную нехватку приверженности IronRuby и динамическому языку в .NET в целом. На момент моего ухода Томас и я были единственными сотрудниками Microsoft, работавшими над IronRuby.
мы помним, большинство новых версий IronPython, IronRuby или Dynamic Language Runtime раскрывали новые отсутствующие функциональные возможности в Mono.
Репозиторий IronRuby GIT включает копию тестов RubySpec, включая тестовую среду MSpec, в External.LCA_RESTRICTED\Languages\IronRuby\mspec. Это позволяет легко изменять существующие тесты или писать новые тесты, а также исправлять ошибки в исходниках IronRuby, все в одном коммите в репозиторий IronRuby.