Greg Brondo wrote:
Ok. I’m sold on Ruby (it really is great). I have a question though: Why
do more large applications (like LimeWire for instance) seem to be written
in Java these days instead of Ruby or one of the other scripting languages
(insert favorite here). I’ve written in Java and it seems more of a bear to
me than anything else. Ruby is much, much quicker for “getting the job
I think it’s because of the lack of an obvious choice for a GUI toolkit.
Combined maybe with the problems, real or imagined, of making a easily
installed and easily launched application in Ruby.
Both are agreed.
Here I write my opinions, based on a few months ruby programming (the
code now reached the 5000 lines), and c++ compiled language background.
At the same time while I love the scripting languages’ freedom, I miss
the (sometimes quite sophisticated) compile-time error checkings of the
compiled languages. At least a syntax checker, warnings for coding style
(e.g. undefined (nil-initialized) object variables, possible not
existing locals, etc.)? There are mistyped variables in my code written
a few days ago, just because it didn’t run yet.
I miss a usable debugger. I.e. what I can use in a event-driven GUI
program, and do not slow down the program with 2 magnitudes.
Another problem is the documentation. While ruby stands quite good in
this field, many libraries are not (e.g., dbi), and I cannot keep with
the changes (for example, I tried to search where it is written that I
can break out from iterators with break, and didn’t find it easily).
OTOH, if I report a bug here, two (OK, one days later it is fixed,
and it is good, and do not care about whether is it documented or not.
Maybe the lack of an IDE is a problem, although I do not prefer them
even in c++ (I do not program in java). Anyway, a stable, usable class
browser would be good…
Maybe I just didn’t found the way, but it is hard to express the public
interface of my classes/modules, as there is no separate class
declaration. Also, I couldn’t get into rd; I feel it clumsy and a bit
featureless. IMHO instead of figuring out and coding a new code
documentation system, we should have been use an existing (e.g.
Doxygen), and write only the parser for ruby language.
Most of these arguments are not an issue for small programs. I never
will understand why people write a few hundreds (thousands) lines of
C-Delphi-C++ code to make some data conversion, string processing etc.
instead of writing 10-20 lines of ruby (OK, tcl, perl, python, or even
awk or bash) code. OTOH, it is possible that I just didn’t get into
coding big programs in scripting languages.