Old Man Yells At Cloud

Rick Johnson rantingrickjohnson at gmail.com
Tue Sep 19 22:01:56 EDT 2017


On Tuesday, September 19, 2017 at 1:31:52 PM UTC-5, bartc wrote:
[...]
    
> Can't you get around all those with things like
> sys.stdout.write?

Yes.

> If so, what was the point of having a discrete print
> statement/function at all?

I believe the original intent was to create a universal
symbol for a "shortcut to sys.stdout.write". As you can
imagine, if every programmer is required to implement their
own version of print, not only is the wheel being re-
invented, many unique symbols would be used, and Python code
would be far less intuitive between authors.

Furthermore, i don't believe print should have ever been
expanded for use _outside_ of the most simple outputs. For
instance: using print for advanced things like redirecting
output is going beyond the scope of a special purpose
shortcut.

Finally, (and this is most important) i believe that when
print() and input() are over-utilized, noobs, especially
those who do not have an understanding of IO streams, fail
to realize that print() and input() are just shortcuts to
the more feature-rich objects living in the `sys` module. In
fact, for a noob who begins programming with Python
(especially when outside of a structured academic
environment) they are likely to never make the connection,
or, at least, not make the connection for a very long time.
And being that IO streams are one of the fundamentals of
programming, such a heavy reliance on shortcuts is harmful
to the intellectual development of these students.



More information about the Python-list mailing list