Python 3000
I just attended a talk about Python 3000 (3.0) by Guido van Rossum. At the CWI (Center for Mathematics and Information Technology) in Amsterdam. Always nice if something happens in your own town!
For me as a Python n00b it was still pretty interesting. Guido explained what the path to Python 3.0 will look like and also described some of the major changes in the language and standard library. All pretty good stuff and well documented on his blog and in the PEPs. It is nice to see that they are not afraid to break backward compatibility to make some big steps forward.
I’m using Python for small to moderate sized hacks these days and it suits me well. I would like love to use Python for more serious work like networking and/or concurrent programming.
Unfortunately that is an area where Python does not and will not shine. I asked Guido if there were plans to make Python 3.0 more thread friendly but he basically told me that concurrent programming is hard (he seriously said that if he does not get it right, then why would other people) and that you should just use fork() and classic IPC.
This was a very disappointing answer. I had truly hoped for a thread friendly Python 3000. Maybe in the Python world concurrent programming is difficult, but on the Java side where I do most my work it is really not that difficult. It is pretty simple to correctly do things like having a bunch of threads take jobs of a ConcurrentQueue all orchestrated by a simple ExecutorService. It is a basic example but strangely things like that are still considered difficult in the popular scripting languages of 2007.
I bet that concurrent programming in Python 3.0 could be as easy as in Java too. The only thing Python has to provide is basic primitives and a thread safe environment. Something like a java.util.concurrent package would then probably spring into existence pretty quickly.
I know this sounds easier than it actually is. There are a lot of legacy C extensions that don’t deal with concurrency at all and there is still the Big Giant Lock in the interpreter. But given that Python 3.0 final will be released 2 years from now, there must be something that the Python community can do here. By that time we’ll probably have quad core cpus in our laptops and 8-core in our desktops.
Modified

Taras Tielkes says:
Added on July 5th, 2007 at 9:04 pmNext time there’s an interesting local talk, please mention it (here).
I would certainly have tried to attend had I known.
stefan (blog author) says:
Added on July 5th, 2007 at 9:22 pmHi Taras, I had no idea you were in Amsterdam. Next time something is happening in this town in the Java or Python world I’ll post it here
S.