> > With that said, would people recommend Ruby to someone like me?
> > I read about the "principle of least surprise" (or something to
> > that effect), and I was intrigued. I have tried Perl, and I am
> > dismayed at the "explosion at an ASCII factory" effect. I have
> > tried PHP, and I love it but I'd like something more OOP and more
> > general purpose both.
> >

If you're using MS Windows then try out the FREE Gui4Cli script
language.

http://gui4cli.com
or
http://users.hol.gr/~dck/g4c/

Gui4Cli is designed to bring the ease and power of a scripting
language to MS Windows API programming.

With the included Gui4Cli version of the SciTE editor, you'll be able
to write simple programs with REAL Windows displays. In fact you can
put the SciTE editor into your own GUIs.

Gui4Cli is what MSDOS batch programming should have become on Windows.
You can even make all your old command line programs look like Windows
programs!

You can use Gui4Cli as it's own complete programming language. Or you
can just use it to let your user select your program options from a
professional looking Windows GUI using Menus, Textboxes, Buttons,
Checkboxes, Radiobuttons etc. And then running a Ruby program from the
GUI at the touch of a button is as easy as creating a MyGui.gui script
like:
--------
G4C MyGui
WINDOW #center #center 300 100 "My First Gui"

xOnClose
   guiquit MyGui

xOnLoad
   guiopen MyGui

xCheckBox 10 10 280 25 "Run with option X?" optX On Off ON

xCheckBox 10 35 280 25 "Run with option Y?" opty On Off OFF

xButton 75 60 150 25 "Run My Ruby Program"
   run ":myprog.rbw" "$optX $optY"
---------

And when you have that killer application perfected, you can use
Gui4Cli to create a installation package to distribute your program as
a single .exe file!

If you need to talk between your different G4C GUI's, it is built in:
---------
address MyOtherGui
send data "hello I need report z"
---------

There also is an optional g4c.pyd dll to talk with Python scripts.

And you can even extend the G4C language with dll's written in C. And
you call your new functions just by adding lines like:
--------
mydllname.myfirstfunction arg1 arg2
mydllname.mysecondfunction arg1 arg2 arg3
--------

There are many tutorial GUI programs to examine. The documention is
extensive and if you can't figure something out just go to the Gui4Cli
users group on Yahoo and ask.

http://groups.yahoo.com/group/gui4cli/archives.cgi

Note: If someone knows Ruby Win32Api programming, Gui4Cli it is just
waiting to be interfaced to Ruby! And the Python dll window interface
source is available to copy from!