Ruby.NET started life in 2005 as an academic research project with the goals of learning more about the challenges of mapping a dynamic language such as Ruby onto the relatively static CLI platform. When we released our first beta in 2006, many people got excited and started blogging about the project, at which time the project took on a life of its own heading towards a production quality release that people could one day actually use. The release of IronRuby last year obviously caused us to question this unstated goal. At the time we didn't know if the IronRuby project and the DLR would succeed, so we decided to continue with Ruby.NET at that stage. Last week at the Lang.NET Symposium, I presented our work on the Ruby.NET project and also had the opportunity to learn more about the progress of the IronRuby project and the inner workings of the DLR (and also the JRuby project presented by Charles Nutter).
I've come to the conclusion that the DLR is clearly here to stay - it's becoming an even more important part of the Microsoft platform. I also believe that to obtain production quality performance, Ruby.NET would need to reinvent (or adopt) something equivalent to the DLR. If we were starting the project today, there is no way we wouldn't use the DLR. Whilst Ruby.NET initially had a good head start on the IronRuby project; by incorporating the Ruby.NET parser and scanner and by leveraging the DLR, I now believe that IronRuby is more likely to succeed as a production quality implementation of Ruby on the .NET platform. I believe that ultimately there is no need for two different implementations of Ruby on .NET. So, if Ruby.NET is ultimately not going to be that implementation, then we should not waste further developer effort fruitlessly chasing that goal. There is still a massive amount `of work required to achieve full semantic compatibility, to achieve production quality performance and to get Rails to run robustly.
There have already been a number of practical and research outcomes from the Ruby.NET project, however, at this stage, I believe we (the Ruby.NET community) can make the biggest impact by levering our experiences with Ruby.NET to contribute to the IronRuby and DLR projects. Personally, I still feel we have unfinished business - we set our selves the goal of running Rails on .NET and we haven't achieved that yet. If we can leverage our experience to help IronRuby get to that point, then I'd at least have the personal satisfaction of helping see the job completed.
These are just my views. As a researcher, my prime interest is not in developing products, but in developing innovative new ideas and having an impact by having those ideas used in the real world. I'm aware that others in the community will have different goals and so will presumably have a different take on this - I'm keen to hear what you think. If anyone wants to press ahead, then the code base is still owned and controlled by you the community, so you are free to do with it as you please with our full blessing.
I'd also like to make it very clear that this decision is entirely my own - based on research and technical considerations. Microsoft did not in any way suggest or encourage us to kill the project and we thank them again for their support of the project.
I'd like to thank all of our contributors and supporters and apologize if this decision comes as a disappointment. I hope many of you will join me in contributing to the IronRuby project and see it through to a successful completion.
> I'm not suggesting that at the end of this coming week that if we haven't > heard from Dr. Kelly that means something is up and we should immediately > assume the worst.
Why wait 'til Friday when you can make those assumptions today! ;-) :D
No, in all seriousness after my recent "Ruby.NET Is *NOT* Dead" speech Dr. Kelly contacted me directly to let me know he was considering what follows. And after reading his thoughts and discussing things with him further I absolutely 100% both stand behind and believe this is the right decision for *HIM* to make.
I know this is *shocking*, but I actually have quite a bit more to say about all of this ;-), but today of all days just so happens to be the day I was born 36 years ago and I have a few friends waiting for my now worthless late a$$ at a local restaurant so I must scurry on out the door before they give up on me and find somebody else to celebrate with.
Expect an extended follow-up from me tomorrow. Gnight' all! :D
On Feb 4, 2008 8:26 PM, Wayne Kelly <w.ke...@qut.edu.au> wrote:
> Ruby.NET started life in 2005 as an academic research project with the > goals of learning more about the challenges of mapping a dynamic language > such as Ruby onto the relatively static CLI platform. When we released our > first beta in 2006, many people got excited and started blogging about the > project, at which time the project took on a life of its own heading towards > a production quality release that people could one day actually use. The > release of IronRuby last year obviously caused us to question this unstated > goal. At the time we didn't know if the IronRuby project and the DLR would > succeed, so we decided to continue with Ruby.NET at that stage. Last week > at the Lang.NET Symposium, I presented our work on the Ruby.NET project > and also had the opportunity to learn more about the progress of the > IronRuby project and the inner workings of the DLR (and also the JRuby > project presented by Charles Nutter).
> I've come to the conclusion that the DLR is clearly here to stay - it's > becoming an even more important part of the Microsoft platform. I also > believe that to obtain production quality performance, Ruby.NET would need > to reinvent (or adopt) something equivalent to the DLR. If we were starting > the project today, there is no way we wouldn't use the DLR. Whilst > Ruby.NET initially had a good head start on the IronRuby project; by > incorporating the Ruby.NET parser and scanner and by leveraging the DLR, I > now believe that IronRuby is more likely to succeed as a production quality > implementation of Ruby on the .NET platform. I believe that ultimately there > is no need for two different implementations of Ruby on .NET. So, if > Ruby.NET is ultimately not going to be that implementation, then we should > not waste further developer effort fruitlessly chasing that goal. There is > still a massive amount `of work required to achieve full semantic > compatibility, to achieve production quality performance and to get Rails to > run robustly.
> There have already been a number of practical and research outcomes from > the Ruby.NET project, however, at this stage, I believe we (the Ruby.NETcommunity) can make the biggest impact by levering our experiences with > Ruby.NET to contribute to the IronRuby and DLR projects. Personally, I > still feel we have unfinished business - we set our selves the goal of > running Rails on .NET and we haven't achieved that yet. If we can leverage > our experience to help IronRuby get to that point, then I'd at least have > the personal satisfaction of helping see the job completed.
> These are just my views. As a researcher, my prime interest is not in > developing products, but in developing innovative new ideas and having an > impact by having those ideas used in the real world. I'm aware that others > in the community will have different goals and so will presumably have a > different take on this - I'm keen to hear what you think. If anyone wants to > press ahead, then the code base is still owned and controlled by you the > community, so you are free to do with it as you please with our full > blessing.
> I'd also like to make it very clear that this decision is entirely my own > - based on research and technical considerations. Microsoft did not in any > way suggest or encourage us to kill the project and we thank them again for > their support of the project.
> I'd like to thank all of our contributors and supporters and apologize if > this decision comes as a disappointment. I hope many of you will join me in > contributing to the IronRuby project and see it through to a successful > completion.
He sent same to me, and while I’m completely behind the idea of HIM moving on if he feels the need/desire to[1], I still believe that there is room in the world for both a statically-compiled Ruby and a dynamically-interpreted Ruby on the CLR.
And I look forward to seeing you at the Lang.NET 2009 Symposium, D. ;-)
From: RubyDOTNET@googlegroups.com [mailto:RubyDOTNET@googlegroups.com] On Behalf Of M. David Peterson Sent: Monday, February 04, 2008 8:21 PM To: RubyDOTNET@googlegroups.com Subject: Re: The future of Ruby.NET
So, as I was saying,
I'm not suggesting that at the end of this coming week that if we haven't heard from Dr. Kelly that means something is up and we should immediately assume the worst.
Why wait 'til Friday when you can make those assumptions today! ;-) :D
No, in all seriousness after my recent "Ruby.NET Is *NOT* Dead" speech Dr. Kelly contacted me directly to let me know he was considering what follows. And after reading his thoughts and discussing things with him further I absolutely 100% both stand behind and believe this is the right decision for *HIM* to make.
I know this is *shocking*, but I actually have quite a bit more to say about all of this ;-), but today of all days just so happens to be the day I was born 36 years ago and I have a few friends waiting for my now worthless late a$$ at a local restaurant so I must scurry on out the door before they give up on me and find somebody else to celebrate with.
Expect an extended follow-up from me tomorrow. Gnight' all! :D
On Feb 4, 2008 8:26 PM, Wayne Kelly <HYPERLINK "mailto:w.ke...@qut.edu.au"w.ke...@qut.edu.au> wrote:
Ruby.NET started life in 2005 as an academic research project with the goals of learning more about the challenges of mapping a dynamic language such as Ruby onto the relatively static CLI platform. When we released our first beta in 2006, many people got excited and started blogging about the project, at which time the project took on a life of its own heading towards a production quality release that people could one day actually use. The release of IronRuby last year obviously caused us to question this unstated goal. At the time we didn't know if the IronRuby project and the DLR would succeed, so we decided to continue with Ruby.NET at that stage. Last week at the Lang.NET Symposium, I presented our work on the Ruby.NET project and also had the opportunity to learn more about the progress of the IronRuby project and the inner workings of the DLR (and also the JRuby project presented by Charles Nutter).
I've come to the conclusion that the DLR is clearly here to stay - it's becoming an even more important part of the Microsoft platform. I also believe that to obtain production quality performance, Ruby.NET would need to reinvent (or adopt) something equivalent to the DLR. If we were starting the project today, there is no way we wouldn't use the DLR. Whilst Ruby.NET initially had a good head start on the IronRuby project; by incorporating the Ruby.NET parser and scanner and by leveraging the DLR, I now believe that IronRuby is more likely to succeed as a production quality implementation of Ruby on the .NET platform. I believe that ultimately there is no need for two different implementations of Ruby on .NET. So, if Ruby.NET is ultimately not going to be that implementation, then we should not waste further developer effort fruitlessly chasing that goal. There is still a massive amount `of work required to achieve full semantic compatibility, to achieve production quality performance and to get Rails to run robustly.
There have already been a number of practical and research outcomes from the Ruby.NET project, however, at this stage, I believe we (the Ruby.NET community) can make the biggest impact by levering our experiences with Ruby.NET to contribute to the IronRuby and DLR projects. Personally, I still feel we have unfinished business - we set our selves the goal of running Rails on .NET and we haven't achieved that yet. If we can leverage our experience to help IronRuby get to that point, then I'd at least have the personal satisfaction of helping see the job completed.
These are just my views. As a researcher, my prime interest is not in developing products, but in developing innovative new ideas and having an impact by having those ideas used in the real world. I'm aware that others in the community will have different goals and so will presumably have a different take on this - I'm keen to hear what you think. If anyone wants to press ahead, then the code base is still owned and controlled by you the community, so you are free to do with it as you please with our full blessing.
I'd also like to make it very clear that this decision is entirely my own - based on research and technical considerations. Microsoft did not in any way suggest or encourage us to kill the project and we thank them again for their support of the project.
I'd like to thank all of our contributors and supporters and apologize if this decision comes as a disappointment. I hope many of you will join me in contributing to the IronRuby project and see it through to a successful completion.
No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.19.19/1258 - Release Date: 2/4/2008 10:10 AM
No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.19.19/1258 - Release Date: 2/4/2008 10:10 AM
On Mon, 04 Feb 2008 21:21:07 -0700, M. David Peterson
<xmlhac...@gmail.com> wrote: > Expect an extended follow-up from me tomorrow.
It can be difficult to make a clean separation between what truly matters in life and what does not, a fact that can be easily seen if you were to grab an iPhone out of an iPhone owners hands, throw it to the ground, and stomp it into itty bitty pieces. I've been writing code since I was 11 and over the course of the 25 years that have since followed I have come to understand the fact that the software projects we develop can quickly become very much like our own children.
That may sound silly, but the truth of the matter is that we, as humans, tend to attach our emotions to things that really don't matter all that much. As software developers the code we write can very easily become a part of who we are, a fact easily seen at a tech conference while we watch the presenters gush over PowerPoint presentations as if they were pictures of their own children (We've all done it, so that's not a statement of exclusivity.) For Dr. Kelly and Professor Gough to have created such a fantastically wonderful project to then make the determination that it was time to turn their attention elsewhere says a lot about their character, a decision I believe they should be commended for making.
I think it's important to consider the fact that when it comes down to it, Dr. Kelly and Professor Gough are both computer scientists *AND* educators at heart. As both their jobs require them to keep an open mind and a finger on the pulse of the industry. I have no doubt in my mind that their decision to forego continued involvement with the Ruby.NET project to instead work with the IronRuby team was both difficult and painful. But ultimately they had to do what was right for not only themselves but for the students that look to them for guidance and direction as to where they should place the focus of their studies. As Dr. Kelly mentioned, the DLR and IronRuby are here and here to stay. It's important that the CS students of the world understand this and the best way to understand these two important projects is to roll up their sleeves and get their hands dirty.
That doesn't mean that the Ruby.NET project should just fold up and die. It simply means it was the right decision for them to make, a decision that, quite obviously, was not an easy decision to make for either of them.
So then, where from here?
I believe that Ruby.NET is an important project for many reasons, first and foremost because it works, works well, and works now. That said, IronRuby and in particular the DLR has completely changed the game for dynamic languages on the .NET platform. We all know that, so there's no point in pretending this is not the case. Ignoring this fact will come back to haunt any dynamic language project targeted towards the .NET platform.
Relating this to Ruby.NET, the answer as to whether or not the Ruby.NET project should live on, in my own opinion, is to focus on the fact that Ruby.NET works right now and can act as the perfect foundation for .NET developers interested in getting their feet wet with Ruby and for Ruby developers interested in getting their feet wet with the .NET platform to do just that. In this regard I see Ruby.NET as a way to start this process sooner rather than later while at the same time helping to expose where the pain points are such that IronRuby can be a better overall project as a result.
But there's more to it than that.
As Ted Neward specified,
> I still believe that there is room in the world for both a > statically-compiled Ruby and a dynamically-interpreted Ruby on the CLR.
One of the most commonly asked questions on the IronPython development list -- IronPython as we all know being the basis of what brought about the DLR -- is "Can I write my libraries in Python and then call those libraries in my C# or VB.NET code?" While the answer is a bit more complicated than this, for the most part the answer is "Probably not." This is one area of the DLR that both the IronPython and IronRuby teams have specified would be nice to have, but at present time is a non-goal for the 1.0 release of the DLR and the projects based on that release.
In this regard there is a clean separation between what Ruby.NET can offer the .NET developer *right now* and what IronRuby *will not* offer the .NET developer in the near term future. As such this is one area that I believe should be the core focus of the Ruby.NET project moving forward. But not from the standpoint of creating a competitive Ruby language project for the .NET platform -- that would be silly and prideful -- and instead from the standpoint of merging the focus of the two projects together in such a way that interop between the two code bases is seamless. In other words, and in my own opinion, the purpose of the Ruby.NET project moving forward *should not be* one of being a separate project with a separate focus and instead,
1) a stepping stone for the Ruby language on the .NET platform that Ruby and .NET developers alike can use to get started with Ruby development for the .NET platform *right now*. 2) a way that someone can take the same code base they write for IronRuby and compile that code into a static and reusable assembly that is portable and reusable inside of any CLI-compliant language.
I don't think it was by any strange coincidence that when Dr. Kelly created this project on Google Code he chose rubydotnetcompiler as the project name, as ultimately that's what this project is all about. Ultimately and eventually it may turn out that the IronRuby and DLR teams decide to enable static compilation. And maybe they won't, deciding instead to focus their time on making the dynamic nature of dynamic languages that much more dynamic than would otherwise be the case.
In the mean time, however, there's the *Ruby .NET compiler* project, a project in which I believe should follow the direct path of the IronRuby team, making it possible to take code targeted for IronRuby, statically compile that code, and reuse the static assembly within any other .NET code project. To me, anyway, this is an area of great desire with the .NET development communities and as such the perfect focus for moving this project forward.
So it looks like I and others have to 'step up to the plate' now to
keep things moving. (Even if that is just until IronRuby catches up.)
I've been posting bug reports and suggested fixes for a while now, but
I've asked Wayne to make me a project member so that I can make a more
active contribution.
I'm using Ruby.NET heavily in a system being developed for the
automotive industry. It generates code to run in the electronic
control units in mass production cars. I do this by using ERB to
transform templates embedded as resources in .NET assemblies into C
code, and then compiling/linking these to create the embedded
application. I use Test::Unit inside the tool to validate the scripts.
There are some workarounds in there at the moment, but it is a good,
reliable solution - and all in .NET. Interoperability between C# and
Ruby is mostly very good.
IronRuby looks great. I may well switch to using it. But it's a way
off before I can get the same functionality that I have now.
I'd be interested to hear from the other members about how they want
to proceed, and I hope to become a useful contributor.
On Wed, 06 Feb 2008 13:56:35 -0700, DJL <dl...@thixendale.org.uk> wrote: > So it looks like I and others have to 'step up to the plate' now to > keep things moving.
Great to hear!
> (Even if that is just until IronRuby catches up.)
I don't think it has to be looked at in this way at all. While each of us are focused towards making IronRuby a better Ruby runtime for the .NET platform those of us with interest can continue forward fixing the various issues that crop up with Ruby.NET while at the same time place focus on ensuring that the little things standing in the way of complete 1-to-1 interop are no longer an issue. A perfect example of what I mean by this popped up on the IronRuby list about an hour ago,
IronRuby code which will throw an error when run via Ruby.NET --- require 'mscorlib' require 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll'
a = (1..1000).to_a s = System::Diagnostics::Stopwatch.new()
The difference, quite obviously, is that the IronRuby code will accept lowercase method names for methods that would otherwise require an uppercase reference if called via their C# or VB.NET counterpart. These are the kinds of things we need to discover and "fix" to ensure that the developer doesn't stumble across road block after road block when attempting to interop between IronRuby and Ruby.NET.
Some might argue that being forced into adapting to the IronRuby way of doing things shouldn't be a requirement, but from my own perspective the end goal is not to differentiate Ruby.NET from IronRuby, and instead to make them completely transparent to one another. I, like everyone else on this list (that I am aware of, anyway), have a tremendous amount of respect for John Lam, John Messerly, Tomas Matousek, and Haibo Luo (has the IronRuby team added any new members as of late that I'm missing?), and it's quite obvious that Dr. Kelly and Professor Gough feel exactly the same way. These guys don't make their decisions lightly, and given the fact that the IronRuby project is an open source, open community project it's not like there hasn't or isn't going to be proper communication between the MSFT Mothership and the communities at large when it comes time to making decisions related to what syntax will be supported and why.
As such, I personally believe that no matter what the decision ends up being for any given syntax or implementation of a language feature, it's our job as the Ruby.NET development community to keep up the pace. To think of this another way, if the Mono Project members can keep up the pace with the entire .NET platform then there's no reason we can't keep up the pace with the IronRuby project.
> I've been posting bug reports and suggested fixes for a while now, but > I've asked Wayne to make me a project member so that I can make a more > active contribution.
Fantastic!
> I'm using Ruby.NET heavily in a system being developed for the > automotive industry. It generates code to run in the electronic > control units in mass production cars. I do this by using ERB to > transform templates embedded as resources in .NET assemblies into C > code, and then compiling/linking these to create the embedded > application.
Nice! In fact, isn't this similar to the roots of the RubyCLR project?
> I use Test::Unit inside the tool to validate the scripts. > There are some workarounds in there at the moment, but it is a good, > reliable solution - and all in .NET. Interoperability between C# and > Ruby is mostly very good.
Very nice! Do you happen to remember off hand some of the pain points you've run across with interop between C# and Ruby?
> IronRuby looks great. I may well switch to using it. But it's a way > off before I can get the same functionality that I have now.
Again, I don't think this needs to be seen as "switching" to IronRuby. If we do a good job of transforming the Ruby.NET code base to keep pace with the syntax and interpretation of language features in IronRuby then it won't be a matter of switching from one to the other and instead choosing whichever tool happens to be the correct tool for the current job at hand.
> I'd be interested to hear from the other members about how they want > to proceed, and I hope to become a useful contributor.
First and foremost I think we need to discover where all the differences exist in the syntax and language feature interpretation. With that knowledge in hand we can then decide how best to go about implementing support without breaking support for the way things work right, and/or determine if breaking support is the right course of action for the current task at hand.
> Thanks Wayne for getting us this far.
And for helping to ensure that the Ruby language as a whole finds proper first class support on the .NET platform, regardless of the runtime/compiler implementation!
I've been receiving lots of questions regarding the status of the Ruby.NET project.
I believe a number of people are keen to continue the project and I completely support this.
If this is to happen however, we (you) need to send out a clear message that the project is not dead and that others are continuing with it. It would probably help to appoint a new leader. As the most vocal advocate for continuing the project, David Peterson would seem the logical choice. There does however, I believe, need to be an open discussion about what the project is trying to achieve and what its direction will be in the short term. It may also be interesting to find out how many people are still interested in contributing and in what capacities.
On Thu, 07 Feb 2008 18:15:48 -0700, Wayne Kelly <w.ke...@qut.edu.au> wrote: > I've been receiving lots of questions regarding the status of the > Ruby.NET project.
> I believe a number of people are keen to continue the project and I > completely support this.
*Fantastic*!
> If this is to happen however, we (you) need to send out a clear message > that the project is not dead > and that others are continuing with it.
Agreed. This is a fairly critical process that needs to take place.
> It would probably help to appoint a new leader. > As the most vocal advocate for continuing the project, David Peterson > would seem the logical choice.
It would be a *great* honor to take over in this capacity if the community as a whole believes it to be the right thing.
> There does however, I believe, need to be an open discussion about what > the project is trying to achieve > and what its direction will be in the short term.
Agreed. Here are my own thoughts on the matter,
Areas of primary focus for the Ruby.NET project,
* Facilitating static compilation of Ruby code. * Ensuring 1-to-1 compatibility with IronRuby.
As a secondary area of focus it seems to me that experimentation with new language and platform features could be really beneficial from the standpoint of R&D for the Ruby language. For example, similar to the work being done on Rubinius, I believe that experimentation with concurrency via Actors/Agents could help pave the way to finding this a core part of the Ruby language in years to come.
In this regard and capacity (R&D), working directly with the Rubinius team I believe should be at the center of our focus moving forward. I've Cc'd Pat Eyler and Charlie Nutter as I believe they both will have keen interest in helping to open up the lines of communication with the Rubinius project. Pat, Charlie?
If there is any one message I believe must be broadcast above all else it's that the Ruby.NET project should continue forward shadowing the work of the IronRuby project as it relates to the language features and syntax, not as an alternative Ruby language implementation for the .NET platform but as a complimentary extension to IronRuby. I don't mean that from the standpoint of extending directly from the IronRuby code base -- at least not yet -- but from the standpoint of extending directly from the features and syntax pushed forward by the IronRuby project. In other words, if as a developer I write code targeted towards IronRuby that same code should run exactly the same via Ruby.NET when compiled into a .NET assembly, whether that be an executable or DLL.
> It may also be interesting to find out how many > people are still interested in contributing and in what capacities.
This would be of keen interest I believe to a lot of people.
> Please respond with your thoughts.
This absolutely needs to be an open and vocal discussion. My thoughts and ideas are my own, and I hope that there are others who feel compelled to speak up in one form or another to help determine the future direction and focus of this project.
> * Facilitating static compilation of Ruby code. > * Ensuring 1-to-1 compatibility with IronRuby.
Perhaps the latter should be in terms of a focus on subtler .NET interop. It feels that 1-to-1 compatibility with other major Ruby implementations (and hopefully one day an official spec) is more important - especially targeting popular frameworks like Rails. Remember who is paying for the writing of IronRuby, and reflect on the compatibility issues that plague almost every other software endeavour (even between versions of the same product suite).
Perhaps one of the continued appeals of Ruby.NET is that it is community-driven not vendor-driven. It would be great to be able to lift up a Ruby application off YARV, put it onto JRuby, xRuby, Ruby.NET, IronRuby, or Rubinius and have it work the same.
<JGra...@thoughtworks.com> wrote: > Perhaps the latter should be in terms of a focus on subtler .NET > interop. It feels that 1-to-1 compatibility with other major Ruby > implementations (and hopefully one day an official spec) is more > important - especially targeting popular frameworks like Rails. Remember > who is paying for the writing of IronRuby, and reflect on the > compatibility issues that plague almost every other software endeavour > (even between versions of the same product suite).
What's funny is that for some silly reason I was making the assumption that IronRuby == Ruby compatibility. Of course we all know this isn't necessarily going to be the case, and I can't help but agree with your point. So should we change the list of priorities to,
* Facilitating static compilation of Ruby code. * Ensuring 1-to-1 compatibility with Ruby. * Ensuring as great a level of 1-to-1 compatibility with IronRuby that's possible after meeting the above two priorities.
???
> Perhaps one of the continued appeals of Ruby.NET is that it is > community-driven not vendor-driven. It would be great to be able to lift > up a Ruby application off YARV, put it onto JRuby, xRuby, Ruby.NET, > IronRuby, or Rubinius and have it work the same.
Agreed. And that really should be the priority as well.
> On Sun, 10 Feb 2008 18:23:51 -0700, Joshua Graham > <JGra...@thoughtworks.com> wrote:
> > Perhaps the latter should be in terms of a focus on subtler .NET > > interop. It feels that 1-to-1 compatibility with other major Ruby > > implementations (and hopefully one day an official spec) is more > > important - especially targeting popular frameworks like Rails. Remember > > who is paying for the writing of IronRuby, and reflect on the > > compatibility issues that plague almost every other software endeavour > > (even between versions of the same product suite).
> What's funny is that for some silly reason I was making the assumption > that IronRuby == Ruby compatibility. Of course we all know this isn't > necessarily going to be the case, and I can't help but agree with your > point. So should we change the list of priorities to,
> * Facilitating static compilation of Ruby code. > * Ensuring 1-to-1 compatibility with Ruby. > * Ensuring as great a level of 1-to-1 compatibility with IronRuby that's > possible after meeting the above two priorities.
> ???
> > Perhaps one of the continued appeals of Ruby.NET is that it is > > community-driven not vendor-driven. It would be great to be able to lift > > up a Ruby application off YARV, put it onto JRuby, xRuby, Ruby.NET, > > IronRuby, or Rubinius and have it work the same.
> Agreed. And that really should be the priority as well.
> Ruby.NET started life in 2005 as an academic research project with the goals of learning more about the challenges of mapping a dynamic language such as Ruby onto the relatively static CLI platform. When we released our first beta in 2006, many people got excited and started blogging about the project, at which time the project took on a life of its own heading towards a production quality release that people could one day actually use. The release of IronRuby last year obviously caused us to question this unstated goal. At the time we didn't know if the IronRuby project and the DLR would succeed, so we decided to continue with Ruby.NET at that stage. Last week at the Lang.NET Symposium, I presented our work on the Ruby.NET project and also had the opportunity to learn more about the progress of the IronRuby project and the inner workings of the DLR (and also the JRuby project presented by Charles Nutter). > I've come to the conclusion that the DLR is clearly here to stay - it's becoming an even more important part of the Microsoft platform. I also believe that to obtain production quality performance, Ruby.NET would need to reinvent (or adopt) something equivalent to the DLR. If we were starting the project today, there is no way we wouldn't use the DLR. Whilst Ruby.NET initially had a good head start on the IronRuby project; by incorporating the Ruby.NET parser and scanner and by leveraging the DLR, I now believe that IronRuby is more likely to succeed as a production quality implementation of Ruby on the .NET platform. I believe that ultimately there is no need for two different implementations of Ruby on .NET. So, if Ruby.NET is ultimately not going to be that implementation, then we should not waste further developer effort fruitlessly chasing that goal. There is still a massive amount `of work required to achieve full semantic compatibility, to achieve production quality performance and to get Rails to run robustly. > There have already been a number of practical and research outcomes from the Ruby.NET project, however, at this stage, I believe we (the Ruby.NET community) can make the biggest impact by levering our experiences with Ruby.NET to contribute to the IronRuby and DLR projects. Personally, I still feel we have unfinished business - we set our selves the goal of running Rails on .NET and we haven't achieved that yet. If we can leverage our experience to help IronRuby get to that point, then I'd at least have the personal satisfaction of helping see the job completed. > These are just my views. As a researcher, my prime interest is not in developing products, but in developing innovative new ideas and having an impact by having those ideas used in the real world. I'm aware that others in the community will have different goals and so will presumably have a different take on this - I'm keen to hear what you think. If anyone wants to press ahead, then the code base is still owned and controlled by you the community, so you are free to do with it as you please with our full blessing. > I'd also like to make it very clear that this decision is entirely my own - based on research and technical considerations. Microsoft did not in any way suggest or encourage us to kill the project and we thank them again for their support of the project. > I'd like to thank all of our contributors and supporters and apologize if this decision comes as a disappointment. I hope many of you will join me in contributing to the IronRuby project and see it through to a successful completion. > Cheers, Wayne. >