> On Oct 19, 2016, at 7:18 AM, Xiaodi Wu <[email protected]> wrote:
> How did you decide on those operators instead of ASCII ones?

They are the “correct” mathematical symbols.  On my machine, there is a block 
of characters explicitly marked as “Math Symbols".  It’s a pretty good start 
(until you get to the section where latin characters are just drawn in 
different fonts,at which point, I make no assertions).  ASCII is not the 
future.  We have unicode for a reason, so we can type what we mean.

>  Obviously, we would want to enable as many operators as possible to continue 
> functioning.
I don’t find this statement to be consistent with the others.  From my 
perspective, it looks like the proposal deleted as many operators as possible.

>       •       Operators suffer from low discoverability and difficult 
> readability. They use symbols, not names. This places a cognitive cost on 
> users with respect to both recall ("What is the operator that applies the 
> behavior I need?") and recognition ("What does the operator in this code 
> do?"). 

Requiring a developer to read “formUnion(with:)” is a large cognitive burden 
for someone trying to use Swift to solve problems in their field.  Not all 
developers are only UI app makers or coding philosophers.  Many are engineers 
and scientists trying to find a tool to get their job done.  For these fields, 
using the correct mathematical operators significantly reduces the difficulty 
in reading code, which reduces the difficulty finding bugs.  Swift offers a 
major performance improvement over the tools they may currently be using to get 
their jobs done, i.e. MatLab and Mathematica.  While those tools offer other 
features Swift never will, there is always a push in research fields for better 
performance and independence from a desktop meta-tool, so battle tested 
algorithms are frequently moved out into stand-alone libraries.  Yes, at times, 
that has been my job.  Occasionally, someone working on advanced math libraries 
chimes in on the forum, I know there are folks working on vector libraries out 
there, I’m sure their code would be more legible using the correct 
vector-oriented operators.  With the ascii-only operators, there is a lack of 
distinction between scalar products, and vector products, for example.  
Something which can be represented easily with extended unicode operators.

If someone really wants to make the operator sets so restricted, fine, make 
that a policy at your company.  Please don’t delete it from the language.  In 
the course on Swift 3 that I’m teaching, I even recommend users don’t create 
operators they can’t easily type, but keyboards are going to get better.  Heck, 
I’m paying as much for an Apple keyboard these days as I paid for a cell phone 
back in 2001.

Look, go easy on me.  I’m still reeling from discovering that weak references 
cause memory to be persisted until the app itself acts as a garbage collector.  
I was unable to bring myself to write code for 2 days following that.  Please 
don’t take away my icing, too.  I’m not sure I can keep writing code if you do. 
 Removing standard math operators would make my code look I’m constantly 
writing 1980’s work arounds instead of clean code.

I have a hard time accepting that essentially reverting the character set for 
Swift to ASCII is really a good move forward.  I think the proposal reflects 
some good work on codifying identifiers, but I think the removal of emoji and 
almost every operator means there’s more work to be done before this proposal 
is ready for acceptance.

-Ben

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to