Thanks for all the replies. Since I can't possibly reply to all, I
will just reply here.
1. Since early Java VM's also used a simple interpreter
This is not true. Java has *always* been statically compiled to
bytecode. Hotspot VMs are simply refinements to the existing bytecode
interpreter. It has never, however, been "simple." The rest of your
paragraph about the Java VM is a bit nonsensical because of this error.
Thanks for the tip about YARV, I will follow it (however
as I hinted in my blog, it may be a smarter decision of the Ruby
builders to base a new Ruby version on existing highly tuned VM's like
the Java Hotspot VM).
Except that the Java Hotspot VM is *not* highly tuned for anything that
doesn't work *exactly* *like* *Java*. A better target will be the .NET
3.0 platform which is getting dynamic language tuning. However, no
existing VM supports the features that Ruby requires, which is exactly
why YARV/Rite is being done. Before you make grand pronouncements, I
strongly recommend that you do your research, first.
2. I am glad that multi-thread support is getting worked on. As I
noted in my blog there is of cause also JRuby which has multi-thread
support because it uses the Java VM.
Hopefully, though, it will not eliminate the green threads the Ruby has
which are sufficient for most programs.
3. I think lack of first-class unicode support for what ever the
reason, is a bad business-decision. Because of that a lot of people
like me (with limited Ruby experience) will forever wonder if they
will run into unforseen problems if they use Ruby.
This is simply your not understanding Unicode. There's no such thing as
"first-class Unicode" support. If you want UTF-8 strings, then say so.
(You'll be getting them, after a fashion, in Ruby 2.0, because Matz is
adding encoding-aware M17N strings.) But UTF-8 strings aren't
necessarily Unicode -- it's a string that has been encoded in a Unicode
format. "Unicode strings" to the ICU library are UTF-16 encoded. What
about UCS-32? "First-class Unicode support" is marketing nonsense
perpetuated by people who don't know any better.
4. I don't buy the argument often mentioned that some languages are so
compact/productive that they don't require IDE's.
You may not buy, but it's largely true.
Better languges and technolgies raises the bar so I am sure that
compact/productive languges like Ruby will just mean that the
requirements are raised accordingly. Whatever the langugage we will
end up with really big projects anyway.
Not if you're smart about it. One of the things that I'm doing at my job
is pushing for ever smaller libraries that can then be combined into
larger projects with better granularity. This matters because not only
are your pieces then easier to replace in bug-fixing, but you've reduced
code coupling and those individual pieces are themselves easier to
manage.
Even for small projects, IDE's with background compilation,
completion, refactoring, debuggin, profiling, code-coverage, help ...
is of great benefit.
Nope. Background compilation doesn't help me (especially with Ruby, but
even with C/C++). Code completion helps sometimes, but I usually end up
browsing either the documentation (if it's not my code or open source)
or the source (if it's my code or open source) anyway. I haven't dealt
with a refactoring browser/IDE yet, so I can't speak toward that. I
have, however, done *dozens* of refactorings in both Ruby and C/C++ with
nothing more than vim. Profiling and code coverage is ... of limited use
in an IDE, I find. I'm actually finding that DevPartner Studio *gets in
my way*, whereas other tools that don't try to integrate themselves into
the IDE work better.
Iy may be right that novice developers may be harmed by a IDE because
a few uninformed ones become clueless about the way things work, but
this not a serious issue.
This is not what I said. I said that IDEs are harmful in general. I'm
not talking about novice developers. I have yet to meet a developer
using an IDE who is as proficient as I am with vim. In fact, I have a
lot of folks who come by my desk ask me to *slow down* because they
can't see what I'm doing when I'm making changes and folding code faster
than they could possibly do in Visual Studio.
Emacs may be useful for hackers and occational programmers but I can't
understand why an EXPERIENCED developer/architect would want to
develop without an productiviy-amplifying IDE.
Because there's no such thing as a "productivity-amplifying IDE"? At
least, I have yet to meet one. I mean, with Java, it'd be hard for an
IDE *not* to enhance one's productivity, because you'd cut the amount of
typing in half by using auto-generation. But by and large, IDEs end up
getting in the way. I do 90% of my development -- even on Windows -- in
vim. I end up looking up most Win32 method calls on the msdn website
rather than in VS.NET.
You've obviously convinced yourself that Ruby isn't ready for prime
time. I think that simultaneously disappoints and pleases people here.
It disappoints because you've convinced yourself based on bad
information and assumptions, and that you're conveying that bad
information and assumptions to a wider audience who may be less informed
than you. It pleases because it means that more of the overall Ruby
consulting pie will be available to those who think that Ruby *is*
ready.
-austin