Since the Python 3K alpha 1 release there have been some discussions about what the new Python should look like. The discussions have been interesting, and mostly hovering around concurrency support in the new version.
Juergen Brendel wrote an open letter to Guido van Rossum, the author of Python, about removing the Global Interpreter Lock (GIL) from Python. GIL is a single lock that a thread has to hold to access Python objects. This effectively stops multiple threads from running in parallel. While this was acceptable earlier, the advent of multiple cores has raised the stake in concurrency. Juergen proposes removal of GIL to enable truly parallel threads. Guido provides convincing reasons why it is not easy to remove GIL. Previous attempts have led to slowing down the processing by a factor of two.
Bruce Eckel too touched on the topic, expecting more from the new version.
Though I agree that it might be tough to support concurrency, it is something that we cannot ignore as programmers, whichever language we are using. Of course, there is no need to panic, but we have to evolve along with the hardware changes to not get obsolete. It is quite possible that concurrency is not critical today for Python programmers, but it is poised to solve a lot of problems in software development. This is the biggest reason I find Erlang interesting.
Bruce Eckel thinks Parallel Python might be a good candidate to support concurrency through a library. There are others as well. I also agree with Bruce’s demand for support for DSL creation. While it might not enhance the core language itself, it can help developers provide better solutions with it.
Guido has rightly replied to all the discussions by stressing importance of separating the core language from the library support. This is one of the most important things for language design, and this is what keeps the language clean and focused. I also liked his suggestion of using the concurrency solutions in one of the web frameworks.
These are good discussions, and will help Python programmers like me to understand the future direction. I personally feel that, along with the language, the Python environment has to stay in sync with rest of the development. Thought not critical today, I see support for concurrency and DSL creation as significant developments.