I’d like a minute or two of your time as I try to sell you the idea of ruby
on/with .net
== Ruby the language rocks, ruby the platform not as much ==
I love ruby the language, but there are often annoying obstructions when
you want to develop an application on ruby the platform, like missing or
immature class libraries and poor threading support (IMHO).
== .net is the future ==
It is my firm belief that .net as a development platform is very powerful. It
has been my main development platform for more than a year and a half and
considering how young it is things just work amazingly well and performance
doesn’t suck, like it at least initially did with Java. Technically the .net
framework and runtime are excellent and with Microsoft pushing it as hard as
possible it will end up on most Windows computers sooner rather than later.
The mono project is doing an excellent job of making sure that the .net
platform will also be available on other OSes than Microsofts. I am not a
Microsoft fanatic, but after having used .net for a long time I must admit it
just works very well. I don’t think it is worth sticking our heads in the
sand, just because we may not approve of Microsofts business methods,
especially as the .net runtime and base framework have been made open
standards.
== Ruby on/with .net ==
Ruby is not a scripting language front-runner, but as a language, not a
development platform, it leaves the front runners in the dust. By relying on
a common and very popular platform we can do away with most of the
disadvantages of ruby and keep the advantages.
== Projects to take ruby to .net ==
After having perused the documentation for the .net CLR runtime and the CLS
and read a white paper on the lessons learned trying to make Python run on
the .net CLR runtime, it is clear to me that the .net runtime is not well-
suited for dynamic languages, such as Python, Perl and indeed ruby. However,
smallscript inc (http://www.smallscript.org) are working on exactly that, and
will soon be releasing a version of smallscript, a smalltalk variant, that is
running on the .net CLR. I think it would be worthwhile to pursue two
projects, one with the objective to allow .net class libraries to be used
from ruby using a dual-runtime approace and another approach that attempts to
run ruby on the .net CLR runtime
=== rubydotnet - dual runtime approach ===
This project will aim to allow any CLS compliant .net assembly to be used
from ruby. This would make all .net class libraries including the entire .net
framework to be used from ruby, without having to implement ruby wrapper
modules.
=== r# - ruby on the .net runtime ===
r# is to ruby, what S# is to smalltalk (http://www.smallscript.org)
This much more ambitious project would aim to run ruby on top of the .net
CLR. I, personally, would be willing to make some adaptions to the ruby
language to facilitate the .net platform integration, and do away with much
of the core ruby platform. Making ruby, or rather r#, fully CLS compliant has
many advantages in terms of distribution and in terms of using ruby/r# with
asp.net and running ruby applets inside browsers etc.
== Status ==
I have just today submitted a project registration with sourceforge.net for
rubydotnet. rubydotnet has a much smaller scope than r# and will allow the
ruby community to see the benefits of ruby/.net interop. Hopefully after that
support can be rallied for the much more ambitious r# project.
Thank you for your time
- Thomas Sondergaard