Steve Merrick wrote:

> I've tried to learn Ruby, and made some very basic progress, but I'm
> stuck in a mental rut. I can't think of what to use it for, so I can't
> see the point in learning any more about it. Help!! :-)

The first law of tool-wars is that in comparing programming languages it is 
almost never the case that X can not do something that Y can. But the Y's 
ability to do something better than X is relevant to developing good 
software.

First, may I say, that I think yours a good, peritnent question. Each 
language does tend to have its zone of ultra-competence - with Perl it's 
sysadmin and CGI, Python it's XML and Math, Java - enterprise server 
processes, PHP - ASP type processing. Not to say that those languages are 
limited to those areas, but those areas tend to be the reason that the 
language became widely adopted.

To learn what Ruby can do, my suggestion would be to hop over to Amazon and 
read through to table of contents of Ruby Developer Guide, from Feld, 
Johnson and Neumann. That should suggest the scope - Databases, XML 
processing, WebServices, Distributed servers, parsing ... Then if you are 
sufficiently intrigued, go and leaf through the book in a store. The sheer 
brevity and elegance of the Ruby code should explain why sometimes C++ is a 
poor choice of weapon. As Sean Russell wrote - Ruby is the language Budda 
would have programmed in.

The question of where Ruby will become the language of choice is harder to 
answer. Thanks to Sean, Ruby is getting frighteningly good at XML 
processing - but Python is fairly entrenched in that market. 

So, at the moment it would seem that Ruby serves as Python for those who 
don't like Python's somewhat ad hoc OO and strange syntax, as Perl for 
those who have nightmares at Perl's OOP implementation, as Java for those 
who prefer a more rapid development cycle.