IronRuby
   HOME

TheInfoList



OR:

IronRuby is an implementation of the
Ruby programming language Ruby is an interpreted, high-level, general-purpose programming language which supports multiple programming paradigms. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including pr ...
targeting
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
. 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 ISO/IEC (ISO/IEC 23271) and Ecma International (ECMA 335) that describes executable code and a runt ...
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 Mix, mixes or mixing may refer to: Persons & places * Mix (surname) ** Tom Mix (1880-1940), American film star * nickname of Mix Diskerud (born Mikkel, 1990), Norwegian-American soccer player * Mix camp, an informal settlement in Namibia * 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 A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help impro ...
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, seaport or event. Office check-in Many offices have a reception or front office area near the entrance to greet or assist visitors arriving to a ...
). 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 *Rail (rail transport) or railway lines, the running surface of a railway Arts and media Film * ''Rails'' (film), a 1929 Italian film by Mario Camerini * ''Rail'' ( ...
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 *Rail (rail transport) or railway lines, the running surface of a railway Arts and media Film * ''Rails'' (film), a 1929 Italian film by Mario Camerini * ''Rail'' ( ...
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 20 November 2009. Version 1.0 became available on 12 April 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 Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese b ...
. 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 Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 ...
) 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 13 March 2011 as version 1.1.3.


Architecture


Mono support

IronRuby may run as well on
Mono Mono may refer to: Common meanings * Infectious mononucleosis, "the kissing disease" * Monaural, monophonic sound reproduction, often shortened to mono * Mono-, a numerical prefix representing anything single Music Performers * Mono (Japanese b ...
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 instructio ...
(CLR), but as the IronRuby team only tests it with the CLR on
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
., it may not build on Mono depending on the build.


.NET interoperability

The interoperability between IronRuby classes and regular
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
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 web applications, similar to Adobe Inc., Adobe's Run time environment, runtime, Adobe Flash. A plugin for Silverlight is still available for a v ...
. It could be used as a scripting engine in the browser just like the
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
engine. IronRuby scripts were passed like simple client-side JavaScript-scripts in The same worked for
IronPython IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 ...
.


Testing infrastructure

IronRuby integrated
RubySpec The RubySpec project aimed to write a complete executable specification for the Ruby programming language. This project contains specs that describe Ruby language syntax and standard library classes. The project contains two main components: * th ...
, 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 The Shared Source Initiative (SSI) is a source-available software licensing scheme launched by Microsoft in May 2001. The program includes a spectrum of technologies and licenses, and most of its source code offerings are available for download aft ...
, which is
OSI OSI may refer to: Places * Osijek Airport (IATA code: OSI), an airport in Croatia * Ősi, a village in Veszprém county, Hungary * Oši, an archaeological site in Semigallia, Latvia * Osi, a village in Ido-Osi, Ekiti State, Nigeria * Osi, Ekiti ...
-certified
BSD The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
-style license. On 16 July 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 Framework and Mono. Jim Hugunin created the project and actively contributed to it up until Version 1.0 which was released on September 5, 2006. IronPython 2.0 ...
*
IronScheme IronScheme is an implementation of the Scheme programming language targeting the Microsoft .NET Framework. IronScheme is a complete rewrite of IronLisp, incorporating lessons learnt while developing IronLisp. IronScheme was planning to build upon ...
*
JRuby JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java. It is free software released under a three-way EPL/GPL/LGPL license. JRuby is tightly integrated with Java to allow the embedding ...
*
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 p ...
, an open source web application framework for
Ruby A 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 sa ...


References


External links


IronRuby home pageIronRuby
on
Codeplex CodePlex was a forge website by Microsoft. While it was active, it allowed shared development of open-source software. Its features included wiki pages, source control based on Mercurial, TFVC, Subversion or Git, discussion forums, issue trac ...

IronRuby source codeS. Somasegar's blog entry announcing IronRuby
by John Lam at RubyConf 2007
IronRuby: The Right Language for the Right Job
by 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