Thursday, June 21, 2007

Python 3000

I don't know If I like some of the changes that Python 3000 will bring. Introducing a destinction between string and binary data, seems like a backwards step. It seems to be more Windows style than Unix stile and harks back to the bad old days of breaking files when reading them via FTP.

Is this the cost of using Unicode encodings, and if so is it worth it. Granted I do all my writing and coding in english so I won't really gain anything from being able to use Unicode Identifiers. But all in all it seems clunky.

Dropping the reduce function entierly also seems a little extreme, like many people have already said, just move it to join all the other functional programming functions.

On the other hand Generic Functions, which are a great paradime (and would make my multiple dispatch post oboslete, stand a danger of being droped due to lack of activity. PEP 3124, which describes generic functions actually covers almost the entire CLOS (Common Lisp Object System) specification.

On balance I have a feeling that Python 3000 is just not going to be the same language, the number of differences seems so significant that best practices and general approaches will have to change. Porting to Pythong 3000 looks like it will not be a trivial task. All In all it will be interesting to see what hte adoption rate will be. A lot of the new features will also be available in Python 2.6, It may end up that everyone moves to python 2.6 and stops there preferring to keep the old style ways of doing things, such as havig a single unifed string/ binary type, and does not go any further.