IronRuby
Encyclopedia
IronRuby is an implementation of the Ruby programming language
Ruby (programming language)
Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...

 targeting Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 .NET framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

. It is implemented on top of the Dynamic Language Runtime
Dynamic Language Runtime
The Dynamic Language Runtime from Microsoft is an ongoing effort to bring a set of services that run on top of the Common Language Runtime and provides language services for several different dynamic languages...

 (DLR), a library running on top of the Common Language Infrastructure
Common Language Infrastructure
The Common Language Infrastructure is an open specification developed by Microsoft and standardized by ISO and ECMA that describes the executable code and runtime environment that form the core of the Microsoft .NET Framework and the free and open source implementations Mono and Portable.NET...

 that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages..

History

On April 30, 2007, at MIX
MIX (Microsoft)
MIX is a Microsoft conference held annually for web developers and designers at which Microsoft showcases upcoming web technologies. The conference is held each spring at the Venetian Hotel in Las Vegas...

 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
O'Reilly Open Source Convention
The O'Reilly Open Source Convention is an annual convention for the discussion of free and open source software. It is organized by the publisher O'Reilly Media and is held each summer in the United States.-Notable events:...

 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
Revision control
Revision control, also known as version control and source control , is the management of changes to documents, programs, and other information stored as computer files. It is most commonly used in software development, where a team of people may change the same files...

). The team also does not accept community contributions for the core Dynamic Language Runtime
Dynamic Language Runtime
The Dynamic Language Runtime from Microsoft is an ongoing effort to bring a set of services that run on top of the Common Language Runtime and provides language services for several different dynamic languages...

 library, at least for now.

On July 24, 2008, the IronRuby team released the first binary alpha version, in line with OSCON
O'Reilly Open Source Convention
The O'Reilly Open Source Convention is an annual convention for the discussion of free and open source software. It is organized by the publisher O'Reilly Media and is held each summer in the United States.-Notable events:...

 2008. On November 19, 2008, they released a second Alpha version.

The team actively worked to support Rails
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

 on IronRuby. Some Rails functional tests start to run, but a lot of work still needs 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 can now run some Rails
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

 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 runs on top of .NET 2.0. This version is the only one compatible with Mono
    Mono (software)
    Mono, pronounced , is a free and open source project led by Xamarin to create an Ecma standard compliant .NET-compatible set of tools including, among others, a C# compiler and a Common Language Runtime....



The IronRuby team plan 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.

IronRuby is also integrating RubySpec
RubySpec
The RubySpec project aims 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:...

, 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.

In late 2010 Microsoft let one of the two only developers of the core team go.

Mono support

IronRuby may run as well on Mono
Mono (software)
Mono, pronounced , is a free and open source project led by Xamarin to create an Ecma standard compliant .NET-compatible set of tools including, among others, a C# compiler and a Common Language Runtime....

 as it does on Microsoft Common Language Runtime
Common Language Runtime
The Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...

 (CLR), but as the IronRuby team only tests it with the CLR on Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

., it may not build on Mono depending on the build.

.NET interoperability

The interoperability between IronRuby classes and regular .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

 classes is very limited for the moment 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

IronRuby is supported on Silverlight. It can be used as a scripting engine in the browser just like the Javascript
JavaScript
JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles....

 engine. IronRuby scripts are passed like simple client-side Javascript-scripts in


The same works for IronPython
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. Thereafter, it was maintained by a small team at Microsoft until...

.

License

IronRuby was previously released under the Microsoft Public License, which is OSI
Open Source Initiative
The Open Source Initiative is an organization dedicated to promoting open source software.The organization was founded in February 1998, by Bruce Perens and Eric S. Raymond, prompted by Netscape Communications Corporation publishing the source code for its flagship Netscape Communicator product...

-certified BSD
BSD licenses
BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....

-style license.

On 16 July 2010, Microsoft re-licensed IronRuby along with the DLR under the Apache License, v2.0

Further reading

  • Shay Friedman, "IronRuby Unleashed", Sam's, 2010, ISBN 0672330784
  • Ivan Porto Carrero and Adam Burmister, "IronRuby in Action", Manning, 2010, ISBN 1933988614

See also

  • IronPython
    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. Thereafter, it was maintained by a small team at Microsoft until...

  • IronScheme
    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....

  • JRuby
    JRuby
    JRuby is a Java implementation of the Ruby programming language, being developed by the JRuby team. It is free software released under a three-way CPL/GPL/LGPL license...

  • Ruby on Rails
    Ruby on Rails
    Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...

    , an open source web application framework for Ruby
    Ruby (programming language)
    Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK