Larry Bates wrote:
Others have answered most of the other questions.
11. Database support of Access and MySQL
Access databases can be accessed via ODBC,
DAO, or ADO interfaces on Windows. MySQL has
native interface from Python.
Ruby has this all, too
Questions you didn't ask:
12) Can interface to existing COM+ objects, write new
COM+ objects and write Windows services.Python
Not sure, but with Ruby you can access COM objects, script Excel for example...
13) Can write scripts, applications (console and GUI),
and web services with single language.Python
Ruby, too
Ruby has a cool SOAP implementation and WSDL.
14) Has extensive standard library to support email
(SMTP, IMAP), FTP, HTTP, logging, regular expressions,
arrays, and many more. Third party libraries for
imaging (Python Imaging Library), PDF generation
(ReportLab), Graphing (ReportLab Graphics) and
XML parsing (PyRXP by ReportLab). Just to name a
few.
SMTP, IMAP, FTP, HTTP, logging, regexps, arrays all standard in Ruby.
XML parser (REXML), YAML, SOAP and XMLRPC comes with Ruby by default.
...
Python
Ruby
15) Easy to write C language extensions for language
Python
Very easy in Ruby, too.
16) Code that you can actually understand when you
come back to read it a year later.Python (priceless
Ruby
You might want to take a look at the experience of
another company:
What they seem to be looking for is:
1. High level language, but not necessarly VB compatible.
Ruby: very high level
2. OOP
Ruby: pure OO (designed from the beginning on)
3. Reasonalble learning curve
Ruby: it's easy to get started, but there are lots of tricky details (you only have to learn them if you're interested)
4. Cross-platform
Ruby. But Windows support in Ruby is not as good as in Python (AFAIK), but there is a Windows Installer version available, which comes bundled with lots of stuff.
5. IDE and ability to graphically design windows.
Arachno Ruby IDE. Commercial, but still alpha or beta release. Available for Python, Perl and PHP, too. Lot's of features. Made in Germany
Design Windows: If Qt is an option (it costs a bit of money when used on Windows or commercially), there's a brand new Qt/Kde binding for Ruby based on Smoke.
http://developer.kde.org/language-bindings/ruby/index.html
With this, you can use all Qt and KDE widgets, and AFAIK even without compiling any C sources (once you've compiled the Ruby-Smoke bindings).
Alternatively, there are FXRuby (www.fxruby.org), wxRuby (wxruby.rubyforge.org), Tk or fltk bindings. But no usable graphical designers for those.
6. Distribute programs as .exe's, so some sort of compiler needed.
available in Ruby: exerb
http://exerb.sourceforge.jp/index.en.html
7. Serial communications library (RS-232, 485, USB)
RS-232 libraries are available in Ruby. don't know about USB, but should be easy to write a wrapper around libusb on linux. Don't know about Windows.
8. SNMP library
Several libraries in Ruby:
http://raa.ruby-lang.org/search.rhtml?search=snmp
Even one written in pure Ruby (brand new, only a few days old).
9. Good performance (not expected to be as fast as C/C++)
depends. Python is probably faster than Ruby, but not much (unless you use psyco etc.).
10. Windows are native to each O.S.
wxRuby (not as major as wxPython, my personal feeling was, that's quite slow). But I'd prefer FxRuby (Windows-like look on each platform).
11. Database support of Access and MySQL
Ruby/ODBC, two mysql libraries for Ruby. Ruby/DBI has ADO, ODBC and Mysql drivers.
Of course Python is better known, and there are more commercial projects written in Python than in Ruby.
For more libraries, Ruby's Application Archive is your friend: http://raa.ruby-lang.org
Regards,
Michael