Its no secret that IronRuby shall Run Rails to prove a total
implementation for declaring IronRuby 1.0
Its a great going by IronRuby team, and i can see work progressing in
this direction.
But things have changed a lot recently…
" Merb" a new framework for Ruby, has taken a right step in the
direction of creating a perfect MVC, with Rails as an inspiration, but
removing few drawbacks of Rails as well.
It has added many outstanding features, which are worth considering.
Merb can now work with any 3 of ORM’s ( Active Record, DataMapper and
Sequel) rather than Active Record as an only ORM offered by Rails.
Now…On the other hand DataMapper is also considered a strong
competitor to Active Record as it has added few advantages over Active
Record
So… Merb, rather than limiting itself to one ORM is offering much
more than Rails.
I think… IronRuby team should consider this option too, and change
their milestone from Rails to Merb, after seeking many suggestions on
this forum.
PLUS… LINQ to SQL also cannot be neglected at this stage, and it
should be considered as well, not forgetting SubSonic.
So its possible that IronRuby can easily support atleast 5 ORM’s at this
stage,
in their first version.
Although getting Rails compatability is a nice test case, I would say
that
complete Ruby coverage would be a better goal for 1.0, because that
would
theorectically mean that Rails or Merb or whatever would be able to be
run.
One of the problems of targetting Merb at this point would be the fact
that
it is a moving target - it’s API is changing on an almost daily basis,
as
well as the fact that is relies heavily on Mongrel. I don’t really see a
huge andantage in porting Mongrel initially, as IIS would be a logical
web
server to target - not to say that it couldn’t be done, there is just
more
important things at the moment.
From the ORM point of view, for ActiveRecord (as well as AKAIF
datamapper/Sequel) the essential part for the IronRuby port would be a
MSQL
driver and/or an ODBC driver/libraries. In fact, all of the database
drivers
will probably need to be ported, (The pure Ruby MySQL driver is dog
slow).
I think Ruby will be the forerunner and I would love Rails to be the
market leader as a Web Framework because it’s just fun creating
applications using it. But I think there will be a lean towards
“light-weight” frameworks like Merb and Waves, because they are cleaning
up where Rails left off.
There has been a lot of talk about Rails’ downfalls, that it doesn’t
scale very well, and these new frameworks are selling on the fact that
they do it better than Rails.
Rather than setting a milestone for a particular framework… I think a
total 100% ruby implementation on .net is a MUST at this stage. With the
FULL implementation, we have the opportunity to extend and create MERB,
WAVES or anything sort of that with IronRuby.
There seems to be a lot of confusion about the goals for IronRuby on
this list.
To be clear, I want to make sure that folks understand our priorities.
Our primary goal is to run real Ruby programs. Rails is a real Ruby
program. Merb is a real Ruby program. Real is defined as programs that
run today, not speculative future scenarios. Real programs will run as
long as they do not have dependencies on features that do not exist in
Windows. Pure Ruby programs that meet these requirement should just work
on IronRuby. Corner cases will be dealt with on a case by case basis.
Our next goal is excellent .NET Interop. This includes invoking
methods, and responding to events sourced by existing .NET libraries.
This also includes work to enable hosting so that arbitrary .NET
applications can host IronRuby. We will also work on scenarios like data
binding to ensure that it is natural to program against WinForms / WPF /
Silverlight. In cases like ASP.NET[MVC] this means that they (ASP.NET
teams) will have to do some work to make things happen. We haven’t done
any significant work in this latter area.
Note that this is a priority list. Given limited resources 1) trumps 2).