Tom M. wrote:
There are two aspects of Ruby that destroy Rails for enterprise computing.
I personally don’t think that Ruby needs to be “enterprise” in order to
have a bright future.
The good news is, that they are both fixable.
I think there is a temptation for newbies, especially those that are
experienced in other languages (like myself), to want to mold Ruby in
some way that is familiar to them.
Although this is natural, I think trying to keep a beginner’s mind is
important, because it will enable one to really learn something new and
appreciate it for its differences without imposing one’s experiential
biases. If I wanted something like Java or .NET, I’d just use Java or
.NET.
The first is performance. Ruby might be the same age as Java, but Java
developers are 10 a penny and that means that Ruby is more expensive, both
in terms of the hardware required to run it, and people required to develop
it. In order for it to get its foot in the door it needs to massively
reduce
its TCO.
Above you disregard the cost of development itself (and
maintenance/enhancement), which should be included in TCO.
Although I agree that Ruby can be faster, and I’m certain it will be
with YARV/Rite, IME, typically the performance bottleneck is the backend
DB, not the application server. I’m not in production yet, but right
now, Ruby is fast enough for me.
If Ruby’s performance could get close to Java then the reduced development
costs would be enough to justify the risk of taking on another new
language.
Reducing development costs can make a significant difference and there
is risk in playing it safe (i.e. opportunity costs if one believes that
Ruby/Rails will provide a technological advantage).
The biggest mistake I think Ruby could make in this respect is the continue
to rely on third party groups to add this much needed functionality.
Take a look at YARV/Rite.
The second is the effect of soft/duck typing on the IDE. Theology aside,
code completion reduces the learning curve, reduces bugs and increases
productivity. All of these things are a Good Thing ™. I fully understand
that for a complete novice that intelligent IDEs can hinder overall
understanding, but no more than garbage collection - and what high
productivity language would be without that?
IMO, one cannot separate the “Theology” from the argument. If one
believes that duck typing improves productivity and the language
overall, then its impossible to remove it from the context of the
discussion. It’s one of the things that makes Ruby, Ruby.
But regardless, I think the tools side is moving forward. IMO,
ActiveState has a good IDE for Ruby; Arachno is good too. Although it
doesn’t look like an “IDE”, Mac users seem to really like TextMate.
My personal opinion is that Ruby shouldn’t worry about tools; I
appreciate that the emphasis in the community is less on tools and more
about the language, frameworks, etc. Tools vendors are smart, IDE’s are
a mature discipline, so I have confidence they’ll find ways of making
Ruby accessible to newbies.
Would allowing the language some syntactic sugar to merely decorate an
object with a type, which could be completely ignored by the runtime,
really
be that much of a bad thing?
My initial reaction is: yes, it would be a bad thing. I trust those
that know Ruby a lot better than me to make decisions about language
direction.
I know Ruby isn’t necessarily going after the enterprise market, but
it’s so
neat that I think it would be a waste if it didn’t.
I personally think it’s more important for the Ruby community to be
focused on solving real-world problems than to try to market itself to
anything.
Certainly a real-world problem is: how to get my organization to use
Ruby. I personally believe there will be business opportunities for
those motivated enough to capitalize on providing Ruby services for the
Enterprise (whatever those things are…). Book publishing is one
aspect of it, training is another, web hosting, consulting, etc. I
believe it’s happening now and will continue to do so.