From: Lennon Day-Reynolds Date: 2003-03-21T14:27:14+09:00 Subject: Re: Strong advantages over Python Jim Weirich wrote: > [snip] > >It sounds to me as if the original poster is looking for a "slam dunk" >for Ruby (compared to Python), and I'm not sure he's going to find one. >Ruby and Python have far more in common than they have differences. >What differences there are more more differences in preferences than >real differences in language power. > Well, one can always fall back on the argument that they're all Turing-complete, and therefore equally "powerful," but I tend to agree that Python and Ruby are in the same general ballpark at least as far as power and conciseness are concerned. >The truth is that I was on the verge of making a real effort to learn >Python when I read a posting by Dave Thomas (perhaps on the XP mailing >list?) mentioning Ruby. If it weren't for that fortuitous posting, I >might be a Python advocate today (shudder :-). > > I was a *serious* Python advocate when it was my primary scripting/automation/prototyping tool, and continue to highly recommend it as a teaching/learning language. Much of the real power of Ruby isn't immediately apparent to inexperienced developers, and the Python community and documentation are definitely larger and more polished. Plus, for learning purposes, there's just more Python code out there for people to read, even if most of it isn't that interesting to us hardcore-types. ;) I actually came to Ruby (and away from Python) because I was trying very, very hard, and yet failing, to become a Perl hacker. The bizarre scalar/list/hash distinction, typeglobs, etc., just turned me off, while Ruby borrowed just enough of the conciseness and UNIX/POSIX savvy of Perl to take care of the trivial stuff that made up so much of my regular development effort. Personally, I can still see a number of circumstances in which I'd use Python instead of Ruby: 1. Complex web application development (Zope just kicks the crap out of most of the other app server options out there) 2. Java application scripting (Jython is one of the better, if not best, scripting options for Java) 3. Basic programming education (though this is more because of the availability of complete tutorials and libraries than the quality of the language itself) Until recently, I might have included "sandboxed" code in this list, but from what I understand, the 'rexec' functionality in Python 2.3 is seriously broken, and is not necessarily going to be fixed any time soon. Lennon