On Nov 10, 2019, at 08:00, Stephen J. Turnbull <turnbull.stephen.fw@u.tsukuba.ac.jp> wrote:
Andrew Barnert via Python-ideas writes:
On Nov 7, 2019, at 19:59, Chris Angelico <rosuav@gmail.com> wrote:
And I do the same with the operators that you disparagingly call "ASCII soup". I touch type them. What's the difference, other than that I can transfer my knowledge of typing English?
Well, there’s also the fact that you can touch type them into Mail.app and pine and a StackOverflow answer box and a blog comment and a general purpose text editor and get the exact same result you get in PyCharm or PyDev. That’s a pretty huge difference, which the OP is ignoring.
I don't think there would be a difference nowadays. I type Japanese encoded in Unicode into Mail.app and Emacs and Nano and web forms all the time; they're perfectly happy with Unicode.
Sure, they’re all happy with Unicode; the question is how you type it. On a Mac, I can use a system input method to type Japanese characters, and it works the same way in every app (including the console), but iOS and Windows and X11 have different input methods, and if I sit down at someone else’s laptop it’s not likely to have the IM configured. (Or I can use emacs native IMs, which work across platforms, but only work within emacs.) But it’s worse than that. MacOS, iOS, Android, Windows, and most Linux distros come with a Japanese IM that you just have to know how to enable and configure, but I don’t think any of them come with an APL symbol IM. So if I want to type APL source code, I have to find a third-party IM, or maybe even write one. (Or I have to buy an APL IDE or configure emacs, and not be able to type code anywhere else, including on my phone.) And that wouldn’t change if Python used the APL arrow for assignment. I’m sure PyCharm would have a shortcut for it, and anyone who uses emacs could figure out how to set that up, and Pythonista would have an arrow key on its bar above the virtual keyboard, but none of that would enable me to type Python code into an email message or a StackOverflow answer or even a terminal REPL session.
The question is what will the *audience* do with those unfamiliar symbols?
If we’re talking about APL-like symbol density, that’s an issue. But just adding the arrow for assignment wouldn’t commit us to that. It’s possible that the happy medium of readability lies somewhere between Python and APL, and that’s what Python would approach over the next decade. (Python already approximates a hybrid between English pseudocode and math notation; it would just be moving along that spectrum.) And the audience would have no problem with that—novices would learn the arrow for assignment in the very first lesson, and they’d learn how to use iota instead of range (and the best practices for when to do so) a few lessons in, and so on. If it really is more readable, people would learn to read it. Of course it’s arguable that Python is already so close to the sweet spot that there’s no benefit to be gained there. But I don’t think that’s something that’s immediately self-evident. If it weren’t for the input problem, arrow might well be better than equals, a few extra operators might be helpful, etc. It’s the input that dooms that possibility, not the readability.