On Wed, May 20, 2020 at 8:36 AM Thierry Parmentelat <
thierry.parmente...@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.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/NTMRUQWS5IG2IV34B7TWVRDGYLLHCL35/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to