I want to learn a new language...

blr at robertsr.us blr at robertsr.us
Thu Feb 15 10:07:32 MST 2007

> 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.

Barry Roberts

More information about the PLUG mailing list