IronRuby

Last updated

IronRuby
Original author(s) Microsoft Dynamic Language Runtime Team
Developer(s) .NET Foundation
Initial releaseAugust 31, 2007;16 years ago (2007-08-31)
Stable release
IronRuby 1.0 / April 12, 2010;13 years ago (2010-04-12)
Preview release
IronRuby 1.1.3 / March 13, 2011;12 years ago (2011-03-13)
Repository github.com/IronLanguages/ironruby
Written in C#
Operating system Windows, Linux, macOS
Platform .NET Framework, Mono
Type Ruby programming language compiler [1] [2]
License Apache License 2.0
Website 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.

Contents

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. [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 started to run, but a lot of work still needed 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 could 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 November 20, 2009. [15]

Version 1.0 became available on April 12, 2010, in two different versions:

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

In July 2010, Microsoft let go Jimmy Schementi, one of two remaining members of the IronRuby core team, and stopped funding the project. [19] [20] In October 2010 Microsoft announced the Iron projects (IronRuby and IronPython) were being changed to "external" projects and enabling "community members to make contributions without Microsoft's involvement or sponsorship by a Microsoft employee". [21]

The last published release of IronRuby was on March 13, 2011 as version 1.1.3. [22]

Architecture

Mono support

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

.NET interoperability

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

Silverlight support

IronRuby was supported on Silverlight. It could be used as a scripting engine in the browser just like the JavaScript engine. [31] IronRuby scripts were passed like simple client-side JavaScript-scripts in <script>-tags. It is then also possible to modify embedded XAML markup. [32]

The technology behind this was called Gestalt. [33]

//DLRinitiationscript. <scriptsrc="http://gestalt.ironruby.net/dlr-latest.js"type="text/javascript">  //Client-sidescriptpassedtoIronRubyandSilverlight. <scripttype="text/ruby">window.Alert("HellofromRuby") </script>

The same worked for IronPython. [34]

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

License

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

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

Further reading

See also

Related Research Articles

<span class="mw-page-title-main">Ruby (programming language)</span> General-purpose 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 primitive data types. It was developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.

<span class="mw-page-title-main">Visual Basic (.NET)</span> Object-oriented computer programming language

Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language, the last version of which was Visual Basic 6.0. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages released since 2002, in order to distinguish between them and the classic Visual Basic. Along with C# and F#, it is one of the three main languages targeting the .NET ecosystem. Microsoft updated its VB language strategy on 6 February 2023, stating that VB is a stable language now and Microsoft will keep maintaining it.

JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer web browser.

Jython is an implementation of the Python programming language designed to run on the Java platform. The implementation was formerly known as JPython until 1999.

ASP.NET is a server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stands for Active Server Pages Network Enabled Technologies.

IronPython is an implementation of the Python programming language targeting the .NET Framework and Mono. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

<span class="mw-page-title-main">SharpDevelop</span>

SharpDevelop is a discontinued free and open source integrated development environment (IDE) for the .NET Framework, Mono, Gtk# and Glade# platforms. It supports development in C#, Visual Basic .NET, Boo, F#, IronPython and IronRuby programming languages.

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 of the interpreter into any Java application with full two-way access between the Java and the Ruby code.

Phalanger is a compiler front end for compiling PHP source code into CIL byte-code, which can be further processed by the .NET Framework's just-in-time compiler. The project was started at Charles University and is supported by Microsoft. Phalanger was discontinued in favor of the more modern PeachPie compiler, which utilizes the Roslyn API.

<span class="mw-page-title-main">Microsoft Silverlight</span> Application framework for writing and running rich Internet applications

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 versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.

Comparison of the Java and .NET platforms.

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:

<span class="mw-page-title-main">Moonlight (runtime)</span> Implementation of Microsoft Silverlight for some Unix-based operating systems

Moonlight is a discontinued free and open source implementation for Linux and other Unix-based operating systems of the Microsoft Silverlight application framework, developed and then abandoned by the Mono Project. Like Silverlight, Moonlight was a web application framework which provided capabilities similar to those of Adobe Flash, integrating multimedia, graphics, animations and interactivity into a single runtime environment.

<span class="mw-page-title-main">LOLCODE</span> Esoteric programming language

LOLCODE is an esoteric programming language inspired by lolspeak, the language expressed in examples of the lolcat Internet meme. The language was created in 2007 by Adam Lindsay, a researcher at the Computing Department of Lancaster University.

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.

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework 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 being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

Steve Yegge is an American computer programmer and blogger who is known for writing about programming languages, productivity and software culture through his "Stevey's Drunken Blog Rants" site, followed by "Stevey's Blog Rants."

Microsoft Silverlight is an application framework for writing and running rich web applications that was actively developed and marketed by Microsoft from 2007 to 2012. This is a technical overview of the platform's history.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

References

  1. S. Somasegar. "Early look at IronRuby" . Retrieved July 25, 2007.
  2. "RubyForge: IronRuby: Project Info". Archived from the original on September 25, 2016. Retrieved September 7, 2007.
  3. Wilco Bauwer. "Microsoft's Iron Ruby". Archived from the original on September 29, 2007. Retrieved July 24, 2007.
  4. John Lam. "Microsoft and IronRuby". Archived from the original on June 12, 2007. Retrieved June 18, 2007.
  5. John Lam. "A First Look at IronRuby". Archived from the original on July 26, 2007. Retrieved July 23, 2007.
  6. Lam, John. "IronRuby on Rubyforge!". Archived from the original on September 3, 2007. Retrieved August 31, 2007. 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 (April 29, 2008). "Regarding IronRuby... How true it sounds from this blog". Archived from the original on March 16, 2009. Retrieved May 25, 2008. The DLR does not accept contributions from the community (...) Today we do not push to SVN on every successful SNAP check-in
  8. Lam, John (July 24, 2008). "IronRuby at OSCON". Archived from the original on August 7, 2008. Retrieved August 4, 2008. 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". Archived from the original on May 29, 2009. Retrieved May 25, 2008.
  10. Lam, John (May 24, 2008). "IronRuby r112 is out". Archived from the original on March 16, 2009. Retrieved May 25, 2008.
  11. Lam, John (May 25, 2008). "IronRuby / Rails Question". Archived from the original on March 17, 2009. Retrieved May 25, 2008. 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 (May 25, 2008). "IronRuby at RailsConf 2009" . Retrieved May 25, 2008. 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". July 23, 2009. Archived from the original on May 12, 2009. Retrieved August 3, 2009.
  14. Cangiano, Antonio (August 3, 2009). "Comparing the performance of IronRuby, Ruby 1.8 and Ruby 1.9 on Windows" . Retrieved August 3, 2009.
  15. "IronRuby 1.0RC1". November 20, 2009. Archived from the original on December 21, 2009. Retrieved December 29, 2009.
  16. "IronRuby 1.0 release notes". April 12, 2010. Archived from the original on April 16, 2010. Retrieved April 17, 2010. 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". February 12, 2010. Archived from the original on September 28, 2011. Retrieved March 6, 2010.
  18. "MRI 1.8.7 compatibility". February 14, 2010. Archived from the original on September 28, 2011. Retrieved March 6, 2010. IronRuby 1.0.x releases: ONLY ruby-1.8.6 compatible; IronRuby 1.x releases: ONLY ruby-1.9 compatible
  19. "It's not you, it's me: Microsoft kills IronRuby". InfoWorld. August 11, 2010. Retrieved December 28, 2012.
  20. Schementi, Jimmy (August 6, 2010). ""Start spreading the news": the future of Jimmy and IronRuby" . Retrieved December 28, 2012. Overall, I see a serious lack of commitment to IronRuby, and dynamic language on .NET in general. At the time of my leaving Tomas and myself were the only Microsoft employees working on IronRuby
  21. Zander, Jason. "New Components and Contributors for IronPython and IronRuby". Microsoft. Retrieved December 27, 2014.
  22. "IronRuby 1.1.3". ironruby.codeplex.com. March 13, 2011. Archived from the original on May 30, 2013. Retrieved May 19, 2013.
  23. Miguel de Icaza (July 27, 2009). "Improving Mono's compatibility with .NET CLR" . Retrieved August 3, 2009. For as long as we remember, most new versions of IronPython, IronRuby or the Dynamic Language Runtime exposed new missing functionality in Mono
  24. Sanghyeon, Seo (August 6, 2008). "IronRuby and Mono". Archived from the original on March 16, 2009. Retrieved September 13, 2008.
  25. Vander Schelden, Wim (September 4, 2008). "IronRuby and Mono". Archived from the original on March 16, 2009. Retrieved September 13, 2008.
  26. Hall, Ben (January 23, 2009). "DLR Daily Builds (including IronRuby)". Archived from the original on March 15, 2009. Retrieved January 23, 2009.
  27. Porto Carrero, Ivan (May 26, 2009). "mono builds". Archived from the original on February 23, 2012. Retrieved June 5, 2009.
  28. Hagenlocher, Curt (December 16, 2008). "Xna+IronRuby+RubyNewb=headache". Archived from the original on March 16, 2009. Retrieved December 20, 2008.
  29. Brotherus, Robert (December 12, 2008). "WPF databinding with ruby objects". Archived from the original on March 25, 2009. Retrieved December 13, 2008.
  30. "Dynamic .NET - Creating Interactive Bing Maps with Silverlight and IronRuby". learn.microsoft.com.
  31. IronRuby in the browser - IronRuby.net
  32. "Building a WPF Application in IronRuby". InfoQ.
  33. Schementin, Jimmy (July 22, 2009). "Gestalt: Ruby and Python in the browser, again" . Retrieved January 19, 2018.
  34. "Silverlight: Embed IronRuby/DLR Scripting within XAML using IValueConverter and Custom UserControl | Chris Pietschmann". pietschsoft.com.
  35. "RubySpec". GitHub . Retrieved October 23, 2010. 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.
  36. Bort, Julie (April 14, 2010). "After three years effort, Microsoft's open source IronRuby stable and available". Network World.
  37. "IronRuby License". July 16, 2010. Archived from the original on December 6, 2010. Retrieved July 27, 2010.