merlyn / stonehenge.com (Randal L. Schwartz) writes:

> But comparing Ruby to Perl doesn't seem as interesting as comparing
> Ruby to Smalltalk.

I'm not sure that binary comparisons work too well when we're talking
about languages, and I certainly wouldn't want to make too many
comparisons between Ruby, Perl, and Smalltalk. However, it can be
useful to use other languages as metaphors and similes when describing 
something new. Thus I often say that Ruby is like a cross between Perl 
and Smalltalk, taking the pragmatism of Perl and combining it with the 
pure OO of Smalltalk. My intention in doing this is to give people a
feeling for Ruby, not to take anything away from either Perl or
Smalltalk.

Ruby does not (yet) have a Smalltalk-style IDE, but there are some
good reasons for this.

 - no one's written one (although there are some browsers out there,
   none offer stop and go to my knowledge).

 - Ruby is more dynamic than Smalltalk, and some Ruby constructs (such 
   as adding methods to individual objects) are more difficult to
   represent in a Smalltalk-like browser

 - one of the downsides of the Smalltalk model is that the workspace
   carries the state, making deployment an issue. With Ruby, as with
   Perl, the source is the code. I know that there are Smalltalks that 
   are source-based, but they don't seem to have caught on.

> But I'm still a bit puzzled about the *point* of Ruby.  It's either
> Smalltalk without the IDE, or Perl without the CPAN and programmer/
> install base and wide ports, or Python without the annoying "it'll
> be indented THIS WAY or Guido will come and get you" feature.
> 
> What do you want to accomplish with Ruby?

Personally, I want to write code with as little friction as
possible. I want to express my ideas directly, without having to
interpret them through many levels before a language can cope with
them. I want my programs to be concise, but readable. I want to have
the flexibility to run my programs in different environments, and to
integrate environment-specific functions with a minimum of fuss.
I want to have fun programming, but not at the expense of people who'll 
be reading my code a year from now.

I've tried many, many languages. Ruby is the closest I've found to my
ideal.

Ruby is still young (outside of Japan), and doesn't yet have the
platform portfolio nor library depth of Perl. Give it time though. As
Perl showed us, once a certain point is reached, the problem is
controlling the growth, not the amount of code that's available.

Unlike many other languages, though, there isn't an organization
behind Ruby, promoting it to the world. Its user base grows by
accretion, as individual developers try it, and like it. Ruby is not a 
threat to Perl, or to Python, or ... Ruby is just a personal tool.

Have fun trying it.


Dave