On Wed, May 20, 2020 at 8:36 AM Thierry Parmentelat <thierry.parmentelat@inria.fr> wrote:
Plus, it’s not only IDE’s, I’m prominently concerned by beginners and students, who start reading code on sources like github, or teaching websites, or notebooks; one cannot expect all these stacks to go this extra mile, that is just not right IMHO

This seems to be the main (only?) argument beyond it being pretty - that it's somehow easier for beginners to deal with. I think it's the opposite.

Many (probably most) people are going to come across a unicode symbol having previously only encountered ASCII symbols and probably thinking that was the only option. That includes all currently experienced Python programmers who aren't up to date on the latest news, and all beginners who learned using anything but the most up to date material. Even after this feature has been around for a while, many (most?) new learning materials will not include unicode symbols because authors don't want to go through the extra effort to write those symbols.

And if you think Python is ASCII only, then when you see unicode, you'll think something is wrong. Someone's editor magically transformed `->` or the website has some overly clever rendering or something. That would be my reaction if I saw such code now. Indeed, if I copied the code and ran it with the wrong version of Python, I'd get the expected SyntaxError. Overall it just creates confusion.

If you try to teach people from the beginning that both options exist, then that just slows down learning. Learning coding is hard enough for most people without being distracted by minor details about syntax.

If someone thinks that special unicode symbols are the only option, or if they know they're optional but get the impression that they're preferred and feel pressure to use them, then typing code becomes a pain. In particular beginners often start coding with a basic editor such as notepad so that they aren't distracted by unneeded features or reliant on tools which do too much work for them that they need to learn on their own (https://cseducators.stackexchange.com/a/634). So they won't have fancy IDEs to insert symbols for them, and must rely on their OS.

Finally, in what way does it make it easier for beginners? `->` is pretty clearly meant to represent an arrow, but beyond that an arrow is not particularly informative. The student would still need to learn that → in that particular context is a type hint for the return value, which is not immediately obvious. Whatever difficulties they may have learning that concept, the symbol used is not going to make much difference. ≥ instead of >= might be an improvement because that's a symbol learned in school, but ultimately the student still needs to learn what `>=` means as it will be used most of the time.