Python: All Purpose Glue With A Catch

I started learning Python two years ago. I’ve implemented server-based bots that process daily water  meter readings and water account configuration changes. Additionally, I implemented a primitive Django web site, so that inventory can be loaded into the system and water reads can be “snapped” for billing. (By primitive, I mean I am not a great UI designer.)

This past week, I attended a Boston Python Meetup session on SyPy and NumPy. Python’s diverse use fascinates me, from film/video processing, to traditional programming projects and sciences like Chemistry and Biology. During this talk, I was reacquainted with the notion that Python is being used by trained programmers, scientists, and non-programmers who want to exploit Python’s power for the own work. All in all, Python is great all-purpose glue, but there is a catch.

I do not believe Python’s popularity will be diminished in the present or near or distant future. However, as different presenters at our Meetups talk about how they use Python and then talk about multithreaded environments, the Python Global Interpreter Lock (GIL) discussion rears its head. The speaker goes on to suggest that threaded code can be moved elsewhere, like into C or Java.

This bothers me. Python is a good language. It’s multiprocess (as opposed to multithreaded) library is excellent and avoids the GIL problem. If Python is good then use it and work with its problems, like using the multiprocessing library instead of multithreading. It just does not make sense to sell people on a language, and then say, to implement synchronization, use another language. (Only one Python thread can execute at a time because of the GIL.)

I believe Python developers will have to fix the GIL problem or simply accept that Python is good for some, but not all tasks.

Advertisements

Leave a comment

Filed under python

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s