Python 3000 is ready
jeremyhylton.blogspot.com
jeremyhylton.blogspot.com
I am mostly curious how this will pan out on the Mac. I've released a program that relies on the system Python, which has worked okay so far because the 2.x installations of each Mac OS X version are basically compatible. I hope Snow Leopard ships with Python 2.6 as well (even if it includes 3.0), so that I have more breathing room and code doesn't automatically break. :)
I haven't moved it and it's still working (of course!).
I can't believe they've ruined years of boasting about how hello world is as simple as "print 'hello world'" by making print a function. :(
Previously: 2 characters that aren't directly relevant to what you want to do (print text, the quotes), Now: 4 (quotes and parens).
Previously: No shifted characters, Now: 2 shifted characters
Previously: Inconsistent behaviour, right in the core of the language where you are most likely to benefit from minor savings and least likely to forget about it. Now: Consistent behaviour at the expense of extra typing, visual clutter and, for experienced users, the hassle of changing.
Previously: Python loved for its interactive interpreter, only really possible because Python is concise enough to use in a throw-away fashion.
Yes it's different, the question is, is it an improvement, and is it significant enough to be worth it?
The question is, given all the changes to unicode and classes and iterators and final removing of the int/long split which are all going to play out over big programs and many days/months, why not pick on the color of the bike shed 'issue', extrapolate it over the whole of Py3k and make out of proportion complaints?
Er, wait...
How about "Unicode, only Unicode, nothing but Unicode"? Doesn't it smell Microsoftish/Sunish? 16-bit data is a pain in the arse, and as long as communication hardware is essentially 8-bit, Unicode will never replace old good 8-bit and UTF. It will only make your I/O programming harder and the programs themselves slower, with no real benefit. UTF-8 gives you a perfect solution for all your localization needs without any special support on the compiler side.
I have mixed feelings about Python "3000". Many changes are meant to bring more consistency (if saying you shouldn't do this because it's bad is called "consistency"), however, as a result Python 3 will successfully make it into the corporate environments, but will never be truly popular among geeks. Stick with 2.6, it's nice.