> On Wed, 2007-02-14 at 15:48 -0700, Andrew McNabb wrote: > Thought I'd interject with a few of my favorite things to hate about > python. > > The other major architectural limitation in python is the GIL, a giant > lock that synchronizes calls to the interpreters core. Thus > multithreaded programs can not utilize multiple processing units. In > practice this usually isn't a huge deal.
I wasn't going to respond to the original message because my only thought was "It depends" (on what you are going to write, mostly). But since I looked at these 3 languages for a specific project recently, I'll go ahead and add my $.02. The project I was doing required either heavy threading or asynch IO. It was basically replaying production application server traffic in real time so we could run our new database cluster in parallel with our old one for a couple of weeks before replacing the old one. Since it was doing a lot of HTTP requests, I didn't have time to write my own HTTP library, and I wanted to use an existing lib, I ended up choosing threads and Python. If threads are important to you, Python, even with its limitations, is still way ahead of Ruby or Perl. At least according to the docs. Although I did already have a log munging code in Perl that I didn't want to re-write, so I had a bunch of Perl processes piping data to a multi-threaded Python process. So maybe JUST learning python is a bit limiting. Perl really is excellent at transforming text. FWIW, Barry Roberts /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
