(Note - I'll fix the margins before I post again)
Like many who post here I am new to ruby but not new to programming.
Also
like many - most, actually - I'm more enthusiastic about the language
than I
have been about any language since Basic first raised its head.  Why?
Simply put ruby is a programmer's language, not just a programming
language.
Programmers know how to program so they don't want their new reference
guide
to try to teach them what a variable is or why GOTO is bad stuff.  If
you
note the biographical snippets that come along with postings to this
group then you
notice that in most cases "newbie" means mew to ruby - not new to
programming.  Is ruby suitable for teaching programming to genuine
newbies?
I think so because you can use ruby as if it were an old fashioned
procedural language then introduce the concepts of OOP when the student
has
enough  programming background to absorb the concepts.
There is another, dying paradigm from the 1970s that has a lot in
common
with ruby.  It has gone by many names but is most commonly called
"Pick" or
Multivalue.  Its main claim to fame was the speed with which a good
programmer could produce a useful system.  Its main problem was similar
to a
problem that ruby will encounter when it tries to muscle into the "main

stream".  It does not fit any accepted theory and it resists formal
proof of
completeness or integrity or whatever you wish to call such a useless
proof.
With Pick we produced elegant prototypes and called them production
systems.
We can do the same with ruby.  The biggest culprit is also the biggest
benefit to the programmer - loose typing.  The second culprit is a
little
harder to see at first - the ability to reference a variable that is
part of
something that has gone out of scope.  In simple terms, ruby and Pick
depend
on the programmer to know his business rather than some elegant but
useless
proof of  referential integrity. Bottom line is I like it, I'll use it,
but I don't think that it is any
threat to Java or VB. But I wish.
BobJ