On my current project we use Ruby for:

Augmenting Ant for building 12 Java projects
Driving gnuplot
Scripting Jabber

Anything I used to write in Bash/Perl/Awk, I'm now writing in Ruby.  

Yours,

Tom

-----Original Message-----
From: Aidan [mailto:ahumphreys / procoma.de] 
Sent: Monday, May 13, 2002 2:08 PM
To: ruby-talk ML
Subject: Re: What is Ruby for?


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.