At the risk of making a fool of myself, I'd like to say a few things from the newbie (to both Ruby and Python) viewpoint... > We've had a pretty civil discussion so far so I'd like to extend it to > ask if Ruby adherents do or do not see Ruby's current threading model as > a fairly major potential issue for someone thinking of moving from > Python to Ruby? My understanding is that a single blocking network call > will halt all threads which might mean hanging a GUI for example. Let me just say that this is the single biggest problem that I see with Ruby. To my mind, native threading support is a must for a language to be widely accepted. Ruby's internal threading support has already demonstrated how elgantly Ruby can support common threading patterns - I'd love to see the ability to transparently drop in either Ruby-thread or native thread backends into a Ruby program, without changing anything but the threading class used. As for Ruby vs. Python - I'm interested in this discussion, because I've been learning Python and Ruby concurrently over the past couple weeks. My background is in C++, and I do like Perl a lot. Each is good for it's own set of uses; I'd never want to implement a large, object-oriented system in Perl; and I'd never want to write a quick text-munging program in C++. My impressions, gleaned from learning Ruby and Python side-by-side (to the point of writing out the excercises in Mark Pilgrim's excellent Python tutorial twice, once in Python and once in Ruby): Ruby just feels more elegant. Sure, it's got hackish shortcuts that make the transition from Perl effortless; but it really has the feel of a language that the author thought about for several years before ever sitting down to write it. Python, on the other hand, feels "accumulated". Python, at version 2.1, is going through massive, code-breaking changes to fix admitted flaws and omissions in it's design. On the one hand, it's great that Guido has the humility to fix the flaws, rather than gloss over them; but I get the feeling that Python is going to be a rather unstable language for awhile yet. It just feels like a younger language than Ruby, no matter what their actual ages are. On the other hand, Python's standard library kicks ass. It's not only comprehensive, but it actually seems pretty well thought-out. Python also seems to be on a path toward becoming more and more like Ruby. And of course, it has native threads. Plus there is something to be said for it's simplicity, especially for use in education. In the end, of course, it all comes down to "use what you like". I just thought somone might be interested in the impressions of a software engineer learning both lanaguages for the first time. -Avdi Grimm