I strongly dislike Python 3

Steven D'Aprano steve at REMOVE-THIS-cybersource.com.au
Sat Jun 26 21:06:12 EDT 2010


On Sat, 26 Jun 2010 17:02:32 -0700, Paul Rubin wrote:

> Terry Reedy <tjreedy at udel.edu> writes:
>> Having completely switched from 'printf(' to 'print ', I have had a bit
>> of a problem switching back to 'print('. It is my single largest source
>> of typos. But a decent system that puts me at the site of syntax errors
>> alleviates this. Logic bugs are a much bigger problem.
> 
> I tend to print a lot of tracing messages in my programs, in the form
> 
>    print (x, y, z)
> 
> expecting to print the tuple (x,y,z) in a form that I can read back into
> an analysis program.  That's going to break without throwing any syntax
> errors if I ever switch to Python 3.

Apart from retraining yourself to add the extra parentheses, the easy fix 
is to put this at the top of your module:


_pr = print
def print(*args, **kwargs):
    _pr(args, **kwargs)


But I'm sure you know this :)


I didn't notice this level of angst when Python made equally significant 
changes going from 1.5 to 2.0... admittedly Python 1.5 code would work 
unchanged in 2.0, but the 2.x series introduced MUCH bigger additions to 
Python than anything 3.0 and 3.1 have added, and anyone taking advantage 
of those changes is implicitly writing code which is not backwards 
compatible.

To all the Python 3.x haters -- spend a few minutes installing Python 1.5 
and playing around with it and see how much it is missing: no integrated 
help, no unicode, no __futures__, no generators, no iterators apart from 
xrange and xreadlines, no properties... See how long you last before you 
(metaphorically) throw it across the room in disgust. That's what you'll 
be like for Python 2.x in a decade. I realise it's hard to see that now, 
when so many major libraries haven't been ported yet and the unicode vs. 
bytes situation is still unclean, but 3.x is the future of Python, and a 
good thing it is too.



-- 
Steven



More information about the Python-list mailing list