IronRuby

From Wikipedia, the free encyclopedia
  (Redirected from Ironruby)
Jump to: navigation, search
IronRuby
Developer(s) Microsoft Dynamic Language Runtime Team
Stable release IronRuby 1.0 / April 12, 2010; 21 months ago (2010-04-12)
Preview release IronRuby 1.1.3 / March 13, 2011; 10 months ago (2011-03-13)
Written in C#
Operating system Windows Linux Mac OS X
Platform .NET Framework, Mono
Type Ruby programming language compiler[1][2]
License Apache License, v2.0
Website http://www.ironruby.net/

IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET framework. It is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.[citation needed].

Contents

[edit] History

On April 30, 2007, at MIX 2007, Microsoft announced IronRuby, which uses the same name as Wilco Bauwer's IronRuby project with permission.[3] It was planned to be released to the public at OSCON 2007.[4]

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.[5]

On August 31, 2007, John Lam and the DLR Design Team released the code in its pre-alpha stage on RubyForge.[6] The source code has continued to be updated regularly by the core Microsoft team (but not for every check-in). The team also does not accept community contributions for the core Dynamic Language Runtime library, at least for now.[7]

On July 24, 2008, the IronRuby team released the first binary alpha version, in line with OSCON 2008.[8] On November 19, 2008, they released a second Alpha version.

The team actively worked to support Rails on IronRuby.[9][10] 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.[11]

On May 21, 2009, they released 0.5 version in conjunction with RailsConf 2009. With this version, IronRuby can now run some Rails applications, but still not on a production environment.[12]

Version 0.9 was announced as OSCON 2009.[13] This version improved performance.[14] Version 1.0 RC1 became available on 20 November 2009.[15]

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[16]

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.[17][18]

IronRuby is also integrating 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.[19]

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

[edit] Mono support

IronRuby may run as well on Mono as it does on Microsoft Common Language Runtime (CLR),[20] but as the IronRuby team only tests it with the CLR on Windows.,[21] it may not build on Mono depending on the build.[22][23][24]

[edit] .NET interoperability

The interoperability between IronRuby classes and regular .NET Framework classes is very limited for the moment because many Ruby classes are not .NET classes.[25] However, better support for dynamic languages in .NET 4.0 may increase interoperability in the future.[26]

[edit] Silverlight

IronRuby is supported on Silverlight. It can be used as a scripting engine in the browser just like the Javascript engine.[27] IronRuby scripts are passed like simple client-side Javascript-scripts in <script>-tags. It is then also possible to modify embedded XAML markup.

The technology behind this is called Gestalt.

//DLR initiation script.
<script src="http://gestalt.ironruby.net/dlr-latest.js" type="text/javascript">
 
//Client-side script passed to IronRuby and Silverlight.
<script type="text/ruby">
    window.Alert("Hello from Ruby")
</script>

The same works for IronPython.

[edit] License

IronRuby was previously released under the Microsoft Public License, which is OSI-certified BSD-style license.

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

[edit] Further reading

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

[edit] See also

[edit] References

  1. ^ S. Somasegar. "Early look at IronRuby". http://blogs.msdn.com/somasegar/archive/2007/07/23/early-look-at-ironruby.aspx. Retrieved 2007-07-25. 
  2. ^ "RubyForge: IronRuby: Project Info". http://rubyforge.org/projects/ironruby/. Retrieved 2007-09-07. 
  3. ^ Wilco Bauwer. "Microsoft's Iron Ruby". Archived from the original on 2007-09-29. http://web.archive.org/web/20070929025914/http://www.wilcob.com/Wilco/IronRuby/microsoft_ironruby.aspx. Retrieved 2007-07-24. 
  4. ^ John Lam. "Microsoft and IronRuby". http://www.iunknown.com/2007/05/microsoft_and_i.html. Retrieved 2007-06-18. 
  5. ^ John Lam. "A First Look at IronRuby". http://www.iunknown.com/2007/07/a-first-look-at.html. Retrieved 2007-07-23. 
  6. ^ Lam, John. "IronRuby on Rubyforge!". http://www.iunknown.com/2007/08/ironruby-on-rub.html. Retrieved 2007-08-31. "Today, you must check the source code out of the IronRuby Subversion repository on Rubyforge. You will need a Subversion client; we recommend TortoiseSVN. To build the sources from the command line, you must also have Ruby installed on your computer already" 
  7. ^ Lam, John (2008-04-29). "Regarding IronRuby... How true it sounds from this blog". http://rubyforge.org/pipermail/ironruby-core/2008-April/001507.html. Retrieved 2008-05-25. "The DLR is does not accept contributions from the community (...) Today we do not push to SVN on every successful SNAP check-in" 
  8. ^ Lam, John (2008-07-24). "IronRuby at OSCON". http://www.iunknown.com/2008/07/ironruby-at-oscon.html. Retrieved 2008-08-04. "We’re shipping our first binary release. In this package, we’re taking a “batteries included” approach and shipping the Ruby standard libraries in it" 
  9. ^ "IronRuby on Rails". http://en.oreilly.com/rails2008/public/schedule/detail/2056. Retrieved 2008-05-25. 
  10. ^ Lam, John (2008-05-24). "IronRuby r112 is out". http://rubyforge.org/pipermail/ironruby-core/2008-May/001911.html. Retrieved 2008-05-25. 
  11. ^ Lam, John (2008-05-25). "IronRuby / Rails Question". http://rubyforge.org/pipermail/ironruby-core/2008-May/001909.html. Retrieved 2008-05-25. "I don't think we're near the end game yet :) We're barely able to run Rails functional tests now, and there's a lot more library work to be done before we can start thinking about deployment" 
  12. ^ Schementi, Jimmy (2008-05-25). "IronRuby at RailsConf 2009". http://blog.jimmy.schementi.com/2009/05/ironruby-at-railsconf-2009.html. Retrieved 2008-05-25. "IronRuby running Rails is not new, but doing it well or completely – is. IronRuby can now run real Rails applications, rather than just toy-hello-world examples. This does not mean IronRuby on Rails is ready for production, but it’s a great measure of forward progress" 
  13. ^ "IronRuby 0.9". 2009-07-23. http://en.oreilly.com/oscon2009/public/schedule/detail/7965. Retrieved 2009-08-03. 
  14. ^ Cangiano, Antonio (2009-08-03). "Comparing the performance of IronRuby, Ruby 1.8 and Ruby 1.9 on Windows". http://antoniocangiano.com/2009/08/03/performance-of-ironruby-ruby-on-windows/. Retrieved 2009-08-03. 
  15. ^ "IronRuby 1.0RC1". 2009-11-20. http://ironruby.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35312. Retrieved 2009-12-29. 
  16. ^ "IronRuby 1.0 release notes". 2010-04-12. http://ironruby.codeplex.com/releases/view/25901. Retrieved 2010-04-17. "IronRuby now comes in two flavors - one that runs on top of .NET 4.0, and one that runs on any earlier framework starting with .NET 2.0 SP1. The .NET 4.0 flavor features faster startup time, compatibility with C#’s dynamic keyword, and access to the new features in .NET 4.0. So, the .NET 4.0 flavor is the preferred download now, as the Microsoft .NET Framework 4.0 is publicly available as of today. For Mono compatibility, use the zip file release for 2.0 SP1." 
  17. ^ "MRI 1.8.7 compatibility". 2010-02-12. http://rubyforge.org/pipermail/ironruby-core/2010-February/006301.html. Retrieved 2010-03-06. 
  18. ^ "MRI 1.8.7 compatibility". 2010-02-14. http://rubyforge.org/pipermail/ironruby-core/2010-February/006323.html. Retrieved 2010-03-06. "IronRuby 1.0.x releases: ONLY ruby-1.8.6 compatible; IronRuby 1.x releases: ONLY ruby-1.9 compatible" 
  19. ^ "RubySpec". http://github.com/ironruby/ironruby/wiki/RubySpec. Retrieved 2010-10-23. "The IronRuby GIT repo includes a copy of the RubySpec tests, including the MSpec test framework, under External.LCA_RESTRICTED\Languages\IronRuby\mspec. This makes it easy to modify existing tests or write new tests, and fix the bugs in the IronRuby sources, all in a single commit to the IronRuby repo." 
  20. ^ Miguel de Icaza (2009-07-27). "Improving Mono's compatibility with .NET CLR". http://tirania.org/blog/archive/2009/Jul-27.html. Retrieved 2009-08-03. "For as long as we remember, most new versions of IronPython, IronRuby or the Dynamic Language Runtime exposed new missing functionality in Mono" 
  21. ^ Sanghyeon, Seo (2008-08-06). "IronRuby and Mono". http://rubyforge.org/pipermail/ironruby-core/2008-August/002553.html. Retrieved 2008-09-13. 
  22. ^ Vander Schelden, Wim (2008-09-04). "IronRuby and Mono". http://rubyforge.org/pipermail/ironruby-core/2008-September/002787.html. Retrieved 2008-09-13. 
  23. ^ Hall, Ben (2009-01-23). "DLR Daily Builds (including IronRuby)". http://rubyforge.org/pipermail/ironruby-core/2009-January/003654.html. Retrieved 2009-01-23. 
  24. ^ Porto Carrero, Ivan (2009-05-26). "mono builds". http://rubyforge.org/pipermail/ironruby-core/2009-May/004638.html. Retrieved 2009-06-05. 
  25. ^ Hagenlocher, Curt (2008-12-16). "Xna+IronRuby+RubyNewb=headache". http://rubyforge.org/pipermail/ironruby-core/2008-December/003390.html. Retrieved 2008-12-20. 
  26. ^ Brotherus, Robert (2008-12-12). "WPF databinding with ruby objects". http://rubyforge.org/pipermail/ironruby-core/2008-December/003378.html. Retrieved 2008-12-13. 
  27. ^ IronRuby in the browser - IronRuby.net
  28. ^ "IronRuby License". 2010-07-16. http://ironruby.codeplex.com/license. Retrieved 2010-07-27. 

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages