IronRuby is an implementation of the
Ruby programming language
Ruby is a general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Mat ...
targeting
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
.NET Framework. It is implemented on top of the
Dynamic Language Runtime
The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include:
* A dynamic type system, to be shared by all languages using ...
(DLR), a library running on top of the
Common Language Infrastructure
The Common Language Infrastructure (CLI) is an open specification and technical standard originally developed by Microsoft and standardized by International Organization for Standardization, ISO/International Electrotechnical Commission, IEC (ISO/ ...
that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.
The project is currently inactive, with the last release of IronRuby (version 1.1.3) being in March 2011.
History
On April 30, 2007, at
MIX 2007, Microsoft announced IronRuby, which uses the same name as Wilco Bauwer's IronRuby project with permission. It was planned to be released to the public at
OSCON 2007.
On July 23, 2007, as promised, John Lam and the DLR Design Team presented the pre-Alpha version of the IronRuby compiler at OSCON. He also announced a quick timeline for further integration of IronRuby into the open source community.
On August 31, 2007, John Lam and the DLR Design Team released the code in its
pre-alpha stage on RubyForge. The source code has continued to be updated regularly by the core Microsoft team (but not for every
check-in
Check-in is the process whereby people announce their arrival at an office, hotel, airport, hospital, port, seaport or event.
Office check-in
Many offices have a reception or front office area near the entrance to greet or assist visitors arriv ...
). The team also does not accept community contributions for the core
Dynamic Language Runtime
The Dynamic Language Runtime (DLR) from Microsoft runs on top of the Common Language Runtime (CLR) and provides computer language services for dynamic languages. These services include:
* A dynamic type system, to be shared by all languages using ...
library, at least for now.
On July 24, 2008, the IronRuby team released the first binary alpha version, in line with
OSCON 2008. On November 19, 2008, they released a second Alpha version.
The team actively worked to support
Rails
Rail or rails may refer to:
Rail transport
*Rail transport and related matters
* Railway track or railway lines, the running surface of a railway
Arts and media Film
* ''Rails'' (film), a 1929 Italian film by Mario Camerini
* ''Rail'' (1967 fi ...
on IronRuby. Some Rails functional tests started to run, but a lot of work still needed to be done to be able to run Rails in a production environment.
On May 21, 2009, they released 0.5 version in conjunction with RailsConf 2009. With this version, IronRuby could run some
Rails
Rail or rails may refer to:
Rail transport
*Rail transport and related matters
* Railway track or railway lines, the running surface of a railway
Arts and media Film
* ''Rails'' (film), a 1929 Italian film by Mario Camerini
* ''Rail'' (1967 fi ...
applications, but still not on a production environment.
Version 0.9 was announced as OSCON 2009. This version improved performance. Version 1.0 RC1 became available on November 20, 2009.
Version 1.0 became available on April 12, 2010, in two different versions:
* The preferred one, which runs on top of .NET 4.0.
* A version with more limited features, which ran on top of .NET 2.0. This version was the only one compatible with
Mono.
The IronRuby team planned to support Ruby 1.8.6 only for 1.0 point releases, and 1.9 version only for upcoming 1.x releases, skipping support for Ruby 1.8.7.
In July 2010, Microsoft let g
Jimmy Schementi one of two remaining members of the IronRuby core team, and stopped funding the project. In October 2010 Microsoft announced the Iron projects (IronRuby and
IronPython
IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with P ...
) were being changed to "external" projects and enabling "community members to make contributions without Microsoft's involvement or sponsorship by a Microsoft employee".
The last published release of IronRuby was on March 13, 2011 as version 1.1.3.
Architecture
Mono support
IronRuby may run as well on
Mono as it does on Microsoft
Common Language Runtime
The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instr ...
(CLR), but as the IronRuby team only tests it with the CLR on
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
., it may not build on Mono depending on the build.
.NET interoperability
The interoperability between IronRuby classes and regular
.NET Framework classes is very limited because many Ruby classes are not .NET classes. However, better support for dynamic languages in
.NET 4.0 may increase interoperability in the future.
Silverlight support
IronRuby was supported on
Silverlight
Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. While early versions of Silverlight focused on streaming media, later version ...
. It could be used as a scripting engine in the browser just like the
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
engine. IronRuby scripts were passed like simple client-side JavaScript-scripts in
-tags. It is then also possible to modify embedded
XAML
Extensible Application Markup Language (XAML ) is a declarative XML-based language developed by Microsoft for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
XAML is used extensively i ...
markup.
The technology behind this was called Gestalt.
//DLR initiation script.
The same worked for
IronPython
IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with P ...
.
Testing infrastructure
IronRuby integrated
RubySpec, which is a project to write a complete, executable specification for the Ruby programming language. The IronRuby Git repo includes a copy of the RubySpec tests, including the MSpec test framework.
License
IronRuby was previously released under the
Microsoft Public License, which is
OSI-certified
BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
-style license.
On July 16, 2010, Microsoft re-licensed IronRuby along with the DLR under the
Apache License 2.0.
Further reading
*
*
See also
*
IronPython
IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with P ...
*
IronScheme
*
JRuby
*
Ruby on Rails
Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pa ...
, an open source web application framework for
Ruby
Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
References
External links
IronRuby home pageIronRuby on
CodeplexIronRuby source codeS. Somasegar's blog entry announcing IronRubyby John Lam at RubyConf 2007
IronRuby: The Right Language for the Right Jobby John Lam at PDC2008
{{Authority control
Ruby (programming language)
.NET programming languages
Beta software
Free software programmed in C Sharp
Microsoft free software
Microsoft programming languages
Software using the Apache license
2007 software