Ruby Impressions

Phil Tomson ptkwt at shell1.aracnet.com
Fri Jan 11 03:21:06 EST 2002


OK, you asked for a follow up on your 7 items as they relate to Ruby...

In article <f3baf765.0201100904.2049cd96 at posting.google.com>,
IB <borovik at hotmail.com> wrote:
>Hello, Paul:
>
>Just a thought here...
>
>I am new to Python too and before diving into it I spent some time
>researching what language would satisfy the following:
>
>1. Must be free open source

Ruby is free open source (under GPL and a loosened GPL)

>
>2. Must be true multiplatform with ports to Windows, Linux and MacOS.
>

Ruby runs on Windows, Linux and MacOS including OSX (BTW: there are some 
nice Cocoa bindings for Ruby now - very nice for scripting OSX apps)

>3. Must have same or comparable to Perl's number of packages covering
>GUI, databases, expert systems, numerical programming, web, TCP/IP and
>graphics programming. The main packages must be updated on a regular
>basis for new versions of the language and must have ports to all of
>those major platforms.

Ruby doesn't have as many packages (modules) as Perl does ... we're 
working on it.

>
>4. Must be easily extendable and imbeddable. (Then it must have a good
>selection of books on it. Otherwise you have to supply general
>documentation on the language with every application where you imbed
>it.)
>

Extensions: It is very easy to extend Ruby with C (and it even works with 
the Garbage collection :)

Embedability: While I've written Ruby C extensions, I have not embedded 
Ruby in another application - though I'm told it's quite easy.

Books:
There are currently four English language books on Ruby (I'm told that 
there are something like 15 in Japanese!):
*"Programming Ruby: The Pragmatic Programmer's Guide" by Dave Thomas and 
Andrew Hunt (full text available online at: 
http://rubycentral.com/book/index.html )  A great intro and reference to 
the language.
*"Ruby in a Nutshell" by Yukihiro Matsumoto (Ruby's creator) from O'Reilly
a good reference
* "The Ruby Way" by Hal Fulton - covers a lot of advanced topics
* "The Ruby Developer's Guide" by Michael Neuman and Robert Feldt (will be 
available in early February 2002)

>5. Applications must be rather easy to distribute.

How do you define 'easy to distribute'?  Actually, the RubyGems project is 
addressing  this.
>
>6. Must support OOP with possibility to mix it with functional
>programming.
>
Ruby is very a very OO language, comparable to SmallTalk.  It also 
supports some functional programming styles.


>7. Preferrably clean and clear syntax.
>

Seems to be a matter of opinion - I certainly find Ruby to be clean and 
clear.  

>The best two candidates were Perl and Python. 

Perl doesn't make it in the 'clean and clear' department, nor does it 
support OO well (well, you can do OO in Perl, but what a pain!)

>Python won by the last
>item - its syntax. (Actually, I had another item on the list - the
>language should be rather common to 3D graphics community. I believe
>Python is unsurpassed here. Just to name few examples - Blender,
>PoserPro and trueSpace use Python. VTK has bindings for Python.)
>
>I have not look into Ruby, though. I thought it is just Yet Another
>Programming Language. It would be interesting to see how items 1-7
>apply to Ruby and see how Ruby does in comparison to Python and Perl.
>I would appreciate if someone will continue the thread with a follow
>up on this.

I programmed in Perl for about seven years, did some OO perl.  Like the 
originator of the thread, I really used to like Perl, that is until I 
started to do OO programming in Perl, then I started having my doubts.  I 
tried Python for a few days about a year and a half ago - I really 
intended to move to Python then(even bought the "Learning Python" and 
"Python Essential Reference" books) - but after a few days it just didn't 
seem to 'click' with me (OK, I'll say it at risk of great flame danger in 
this ng: I didn't like that indentation thing and I didn't like all of 
those __*__ method names ;-) and I went back to Perl.  Then about a year 
ago Dr. Dobb's ran an article on Ruby.  As I read through the article I 
thought it looked kind of cool, but it was the part about Ruby's 
Distributed Object system, dRuby that really convinced me to download it 
and try it out - I really needed a Distributed Object system for a project 
I was doing at work and  dRuby was a great fit.  Anyway, to make this 
short, dRuby convinced me to try Ruby, but the more I programmed in  Ruby 
the more I really liked it - it just seems to 'make sense'.

Phil




More information about the Python-list mailing list