Rhymes graced us by uttering:
> " JamesBritt" <james / jamesbritt.com> wrote:
> > You don't.  Python is a very capable language.  That said, many
> > people with Python experience have decided Ruby better suits their
> > needs.
> 
> Thanks for the link. I decided to take a look at the Ruby doc (I've
> downloaded ruby 1.66 package for win containing a whole book) but I
> think I'll don't like much its syntax cause I don't like Perl's at
> all..

Yup, with an anti-Perl attitude that strong, you're definitely a
Pythonista. =)

Honestly, I started using Perl.  On recommendation from a Perl user on
comp.lang.perl.misc, I tried Python and I was very pleased with how
clean Python's syntax was.  I then looked into Ruby due to a similar
recommendation.

Ruby initially looked like a cross between Python and (*GASP!*) VB
(because of the "end" keyword).  But I'd also heard a lot of OO
advocates sing Ruby's praises wrt it's object model... And they were
right!

Perl's OO model is a nasty, ugly hack.  But it's regex support is
unmatched.  However, (and this ticks off Pythonistas to no end) I see a
poetry and beauty in Perl's syntax.  But this doesn't mean it's perfect
(or even a remotely good idea) for other languages.

Python's OO model is still quite awkward for me (Py v2.2), thought it
_is_ making a lot of progress.  It has regex support, but is also very
awkward because of the seemingly forced object interface, reminding me
(unpleasantly) of Java.  OTOH, I *LOVE* Python's indentation-based
statement grouping!  Oh yeah, Python's threading is quirky on some
systems.

Ruby is neither of the above languages.

  - It supports regex's in both an object interface (a la Python) and
    via Perl-style variables.

  - Ruby's object system is beautiful, elegant, and practical.  It's
    much more "pure" (in the Smalltalk definition) than either Perl or
    Python and allows you to retroactively modify pre-existing instances
    of an object at runtime by modifying their class. (See
    <http://www.unr.nevada.edu/~tahammer/hack/ruby/> for an example).

  - Its syntax contains elements of Perl's regexps, but any perceived
    similarity to Perl's variable system is strictly coincidental. eg:

                Perl                    Ruby
                ----                    ----
    
        var     <illegal var name>      lexical variable
    
        Var     <illegal var name>      constant lexical variabls
    
        $var    scalar variable         global variable
    
        @var    array variable          object instance variable
    
        @@var   <illegal>               class variable

    Any variable can hold any type of data.  The format of the
    variable's name merely dictates how it may be accessed.

Alright, so it's obvious I like Ruby. =)  I use it for admin, editor
scripting (Vim <http://vim.sf.net>), and medium to larger projects.

My only hope is that you take Ruby for what it is, and not for what it
might resemble at a glance.

Happy coding!
Tim Hammerquist
-- 
BOUNDARY, n.  In political geography, an imaginary line between to nations,
separating the imaginary rights of one from the imaginary rights of the other.
    -- Ambrose Bierce, The Devil's Dictionary