
Steven Bethard wrote:
[Guido van Rossum]
And good riddance! The print statement harks back to ABC and even (unvisual) Basic. Out with it!
[Barry Warsaw]
I have to strongly disagree. The print statement is simple, easy to understand, and easy to use.
[Paul Moore]
I agree with Barry. In particular, the behaviour of adding spaces between items is something I find very useful, and it's missing from the functional forms.
... as proposed, but ...
While I agree that mostly the print statement is "simple, easy to understand, and easy to use", I've seen the trailing-comma version cause confusion for a lot of newbies. I wouldn't mind at all if the trailing-comma version disappeared in Python 3.0 -- if you need this kind of complicated output, you can always use sys.stdout.write and/or string formatting.
... the trailing-comma version is indeed BASIC voodoo of ancient heritage, and not something I'd personally miss.
The spaces-between-items point that Paul Moore makes is IMHO the best argument against the proposed write*() functions. I think we *do* need a statement or function of some sort that does the most basic task: writing a line to sys.stdout that calls str() on each of the elements and joins them with spaces. That is, I think we need to keep *something* with functionality like:
def XXX(*args): sys.stdout.write('%s\n' % ' '.join(str(a) for a in args))
Note that this would keep the Hello World example simple:
XXX(greeting, name)
Of course, for Python 3.0 if we lose the keyword there's nothing to stop us calling the convenience function "print". With the removal of the trailing-comma functionality we'd only have to add parentheses to 2.X print statements to have them work :-) Next question: could the function have a sensible return value, or is None the best possible result? hesitating-to-suggest-minus-one-ly y'rs - steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/