[Python-Dev] Replacement for print in Python 3.0
tjreedy at udel.edu
Sat Sep 3 05:33:08 CEST 2005
"Guido van Rossum" <guido at python.org> wrote in message
news:ca471dc20509021842e586aa3 at mail.gmail.com...
> With so many people expressing a gut response and not saying what in
> the proposal they don't like, it's hard to even start a response.
> Is it...
For me a bit of several things though with quite variable intensity.
First, print, as an abbreviation of looped writes, works fine for its
appointed task. It gives me don't-care-about-the-format info on values
with near minimal overhead. So change needs clear justification.
> - Going from statement to function?
Minor. For quickly adding debug prints, two extra ()s are a small burden,
but if the function were called 'out', then there would still be just five
keystrokes. Nick's output() convinced me that there are compensations to
the function form. Besides, having used the argument of aesthetic
consistency elsewhere, I can hardly deny it to you ;-).
> - Losing the automatically inserted space?
Major. This is an essential plus of print.
> - Having to write more to get a newline appended?
Near major. See above. I believe that two people have reported that
around 85% of their prints use these defaults, so I think adding a keyword
for something other would be the way to go.
> - Losing the name 'print'?
You gave one reason for this as disassociating from Basic. I can see how a
CS grad would want to do so, but Basic once was the vehicle for CP4E
(computer programming for everyone) that you want Python to become. In
fact, I think PSF should promote Python as the 'Basic for the 21st Century'
that should be on most desktops the way Basic once was. So I would prefer
to see a different reason for a name change.
> - [dash added] Some responses seemed to have missed [snip]
> that I was proposing builtins in addition to the stream methods,
My objections here are first the plural, which does not seem really
necessary, and second the longer (in chars and syllables) and also old
name 'writeln' from Pascal for the one that does what print does.
> I'd like to be flexible on all points *except* the syntax -- I really
> want to get rid of print as a *statement*. [snip]
> would anyone support a proposal to make it a statement instead?
Good question. Most Python statements benefit from statement syntax
because their function syntax equivalent would be a little to hughly more
awkward. This is mainly because parts of the statement are implicitly
quoted. (Lisp does this with special forms and macros, but I prefer the
Python way.) The two syntax tricks in print are different in that they are
easily replaced by keywords. So I strongly suspect 'no'.
Terry J. Reedy
More information about the Python-Dev