OK, this question came up on a local list, and I don’t have the answer.
Does Rails require Ruby?
Before I go any further I should point out that I have in fact been
banned from the Rails list, probably for loud and vituperative
criticism of the list itself, but possibly also for advocating sex
with goats. (I have since made an effort at apology, although it seems
to have been unsuccessful.) At any rate, that’s one reason why I’m
posting this question here, rather than on the Rails list.
The other reason I bring this up here, rather than on the Rails list,
is that up until the day when I was banned from that list, I had in
fact been filtering it to the trash. I generally find this to be more
a programmer’s list, with a higher average age and experience level. I
think this question, asked on that list, would yield more opinions,
but less useful answers.
Rails the software, as opposed to the list, is of course brilliant,
and it’s inspired a large number of copycat frameworks in other
languages. I used one of these copycat frameworks, Catalyst in Perl,
and found it totally unwieldy and counterintuitive. I had assumed that
tons of experience with Perl and a pretty strong understanding of
Rails would be enough to make Catalyst easy, but it wasn’t.
A friend of mine did an experimental web app in Turbogears, one of the
Python frameworks, and he said it was great. However, he’s a Python
partisan, so much so that I don’t think he’s ever even given Rails a
trial run. (Also, I’m not sure Turbogears qualifies as a copycat
framework, because it may in fact predate Rails. I’m pretty sure
Django does.)
Does anybody on this list have experience with any of the copycat
frameworks? Has your experience been detailed enough to include an
examination of the source code? If so, is it your opinion that Ruby is
a necessary component of Rails’ success? Can you point to evidence in
the form of specific design decisions in competing frameworks?
I know Rails makes use of Ruby’s flexibility in its object system, as
well as its reflection features, but how much of that is key, and how
much of that just happens to be the case? Do any of the copycat
frameworks enjoy similar productivity? If so, do the languages of
successful copycat frameworks share features with Ruby that the
languages of unsuccessful copycat frameworks lack?
Obviously, as somebody banned from one of the relevant lists to this
question, I am aware that controversy can be a bad thing, and would
like to minimize it. In particular, I know that in any programming
language community, there are going to be people who are adamant in
their preference for particular languages and/or their dislike for
other languages. Please keep in mind that the only way to hold a
reasonable conversation about this kind of question is to avoid
language wars.
Between “The Pragmatic Programmer,” which advocates frequently
learning new languages, and Bruce Tate’s “Beyond Java”, which spread
the idea that Java’s day is probably over, there’s been a lot of
interest in linguistic diversity recently in the general programming
community. A conclusive answer to the question of whether or not Rails
actually requires Ruby would go a long way to determining whether this
interest in linguistic diversity is justified, or just a fad.
(Seaside, as a Smalltalk continuation server, seems like a strong
argument in favor of the idea that languages play a powerful role in
framework design, but there are in fact continuation servers in Perl,
Ruby, and even Java as well.)