Skip navigation.

Python and PHP for the next 100 years.

The most important characteristic of a programming language designer (apart from the normal nerdy technical brilliance) is to have taste. Any popular language will have thousands of competing feature requests at any given time, and the designer has to pick and choose the ones that fit into the overall scheme of things.

Python has achieved a fine balance between the needs of different communities. It is not the perfect AI language. It is not the perfect web language. It is not the perfect systems language. It is not the perfect beginner language. But it has a nice balance that makes it suitable for all of the above. However since Python 2.0 I have felt that many of the recent additions to the language make Python more obscure and satisfy the needs of very small parts of the community such as Decorators and List Incomprehensibles. Dare I say that Python is over-the-hill when it comes to language design?

Andrew Kuchling, noted Python developer, suggests that more focus should be put into developing the Python stdlib, and less on hacking the interpreter. I couldn't agree more. If Python fragments even more (Jython, CPython, IronPython, Parrot, etc), then language stability (in terms of features and syntax) becomes more important in order to ensure interoperatability.

IMHO, PHP is also maturing rapidly, though the PHP community is probably 4 years younger than Python in terms of level of sophistication. But I think that the PHP-internals have baked a good design in PHP 5, good enough to last for the next 100 years. Though I am not particularly keen on being forced to switch to using "public", "private" and "protected", I'm happy enough and wouldn't want PHP5 to transmogify into something more complex than this.

Of course PHP5 is still not perfect. Here are my gripes and prejudices:

  1. Inadequate date and timestamp type support. Being unable to support dates prior to 1970 in the core engine is just laughable.

  2. Lack of good threading support. By this I mean PHP should be able to create and execute in multiple threads within a standalone PHP program, without the mediation of a web server. Support for sewing might not be a bad idea either :-)

  3. PHP is not a an equal opportunity language, but skewed to web development. Developers should go on strike and protest this form of racism ;-)

  4. Extensions are still too hard to write. Of course, commissioning one from a talented but poor open source developer is a good thing. Bless you.

  5. Update (2 Oct 2004): As Sam Ruby points out, native UTF-8 and Unicode support would be great.

I also hope that PHP6, 7, 8, 9 and so forth continue to develop, but in the direction of being ported to run on advanced virtual machines such as Parrot, JVM and CLR, supported by more powerful frameworks, and not language featuritis.

Update (5 Oct 2004): Ian Bicking has a well considered response to the proposed focus on Python's stdlib.