Dave Boland wrote:

> What they seem to be looking for is:
> 1. High level language, but not necessarly VB compatible.
> 2. OOP
> 3. Reasonalble learning curve
> 4. Cross-platform

Ruby has all these features. Blocks are a very handy tool for high-level 
programming and Ruby's OOP model is part of its design and is very 
consistently used throughout the language. The basics of Ruby are easy 
to understand and I guess that new users will be able to program simple 
things in it fluently in ~3 days. There'll be more to learn after that, 
but it should all feel like natural extensions of the basics.

> 5. IDE and ability to graphically design windows.

There are IDEs, ArachnoRuby[1], and FreeRide[2] come to mind. There's 
also a plug-in for Eclipse[3], but it still looks to be in an early 
stage. AFAIK there's no way of using Ruby in a Delphi-style way for 
designing windows yes, but this should be possible with Gtk[4]. (Gtk 
lets you load windows from XML files and there are stand-alone editors 
like Glade[5] available for that format.)

But still, I'd say that there's nothing that's as polished as Visual 
Basic's IDE available yet.

> 6. Distribute programs as .exe's, so some sort of compiler needed.

This is possible with ExeRb[6] or RubyScript2Exe[7].

> 7. Serial communications library (RS-232, 485, USB)

A search on the Ruby Application Archive[8] turned up Ruby/SerialPort[9] 
and Win32Serial[10] -- I've not used them yet so I don't know if they're 
able to do everything you need. However Ruby lets you easily (way easier 
than the other languages on your list) write extensions in C and other 
languages so you could still add functionality in this area yourself in 
case everything else fails.

> 8. SNMP library

I'm no expert in this area. A quick search on Google turned up 
http://blog.humlab.umu.se/samuel/archives/000495.html -- it appears that 
Ruby only has basic functionality for this right now, but that you can 
still use the snmpget tool directly.

> 9. Good performance (not expected to be as fast as C/C++)

Ruby is slower than both Perl and Python -- I don't know if it's too 
slow for you, but I'd suppose that some benchmarks might give you 
definitive answers. Ruby's performance might change with Rite or a 
Parrot-based Ruby. (But both won't be released in the closer future.)

> 10. Windows are native to each O.S.

This is possible with RubyGtk if you use a native renderer. Such a 
native renderer for windows is WIMP[11]. I've used this and it seems to 
look nifty. Here are some screen shots:

- http://noegnud.sourceforge.net/flgr/der_nativ.png (Gtk-based X-Chat2)
- http://noegnud.sourceforge.net/flgr/als_ob_flgr_arbeitet.png
   (Freeciv, a Gtk-based game and a custom Ruby application which uses
    RubyGtk. I'm using a non-standard Windows XP theme here.)

There are also other Toolkits available from within Ruby. I've heard 
that wxRuby[12] (wrapper for wxWidgets) aims to look native on a lot of 
platforms, but I've not really used myself yet. Another one you might 
want to have a look at is FXRuby[13].

I've only really used Ruby/Gtk myself yet (for my usage it seemed to 
have the nicest Ruby bindings) -- maybe somebody else can offer a 
detailed comparison between the different toolkits...

> 11. Database support of Access and MySQL

You can either use MySQL directly via MySQL/Ruby[14] or you can use the 
higher-level Ruby/DBI[15].

There's also the very high-level ActiveRecord[16] which tries to 
abstract SQL away as efficiently as possible. It's a very impressive 
project and has received great feedback.

The only way I can find for using access is directly via COM right now. 
This would be done with Win32Ole[17].

Here are the URLs for the libraries and projects I mentioned:

[1] http://www.scriptolutions.com/arachno_ruby.php
[2] http://freeride.rubyforge.org/wiki/wiki.pl
[3] http://rubyeclipse.sourceforge.net/
[4] http://ruby-gnome2.sourceforge.jp/
[5] http://glade.gnome.org/
[6] http://exerb.sourceforge.jp/index.en.html
[7] http://www.erikveen.dds.nl/rubyscript2exe/index.html
[8] http://raa.ruby-lang.org/
[9] http://ruby-serialport.rubyforge.org/
[10] http://grub.ath.cx/win32serial/
[11] http://gtk-wimp.sourceforge.net/
[12] http://wxruby.rubyforge.org/
[13] http://www.fxruby.org/
[14] http://www.tmtm.org/en/mysql/ruby/
[15] http://ruby-dbi.rubyforge.org/
[16] http://activerecord.rubyonrails.org/
[17] http://raa.ruby-lang.org/project/win32ole/

Regards,
Florian Gross