On Thu, Jun 5, 2014 at 6:05 PM, Marko Rauhamaa <ma...@pacujo.net> wrote: > Chris Angelico <ros...@gmail.com>: > >> If, in Python, I say print("Hello, world!"), I expect that to produce >> a line of text on the screen, without my code having to encode that to >> bytes, figure out what sort of newline to add, etc, etc. > > That example in no way represents the typical Python program (if there > is one).
It's simpler than most, but use of print() is certainly quite common. A naive search of .py files in my /usr came up with five thousand instances of ' print(', and given that that search won't necessarily find a Python 2 print statement (and I'm on Debian Wheezy, so Py2 is the system Python), I think that's a fairly respectable figure. >> Only an extreme few Unix programs actually manipulate binary standard >> streams > > That's quite an assumption to make. Okay. Start listing some. You have (de)compression programs like gzip, which primarily work with files but can work with standard streams; some image or movie manipulation programs (eg avconv) can also read from stdin, although again, it's far more common to use files; cat will happily transmit binary untouched, but all its options (at least the ones I can see in my 'man cat') are for working with text. What else do you have? Let's see... grep, sort, less/more, sed, awk, these are all text manipulation programs. All your "give me info about the system" programs (ls, mount, pwd, hostname, date.......) print text to stdout. Some also read from stdin, like md5sum and related. Piles and piles of programs that work with text. A small handful that work with binary, and most of them are more commonly used directly with files, not with pipes. The most common case is that it all be text. >> we should have print() and input() "naturally just work" with Unicode > > No problem there. I couldn't imagine using either function for anything > serious. I don't know about those exact functions, but I do know that there are plenty of Python programs that use the console (take hg as one fairly hefty example). Maybe input() isn't all that heavily used, but certainly print() is a fine function. I can not only imagine using them seriously, I *have used* them, and their equivalents in other languages, seriously. If the standard streams are so crucial, why are their most obvious interfaces insignificant to you? ChrisA -- https://mail.python.org/mailman/listinfo/python-list