[swift-evolution] Reconsider ++ and -- operators removal and prevent other well-known operators from change

Chris Lattner clattner at apple.com
Sat Jan 30 15:59:25 CST 2016


> On Jan 30, 2016, at 11:13 AM, Vanderlei Martinelli via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Hello. I also like the alternative: keep ++ and -- while returning void. :-)

Vanderlei, please read the proposal in question.  This alternative is directly addressed at the end.

-Chris



> 
> On Sat, Jan 30, 2016 at 5:00 PM, Will Stanton <willstanton1 at yahoo.com <mailto:willstanton1 at yahoo.com>> wrote:
> Hello Van,
> 
> I think you make some good points about readability, and I do not recall the retention of ‘++’ and ‘--' being discussed much, perhaps since SE-0004 and 0007 were accepted. All the same:
> 
> At first, I really disliked the removal of ++ and --. In my opinion, the first three disadvantages in SE-0004 (https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md <https://github.com/apple/swift-evolution/blob/master/proposals/0004-remove-pre-post-inc-decrement.md>) were not that strong:
> 
> > These operators increase the burden to learn Swift as a first programming language - or any other case where you don't already know these operators from a different language.
> 
>  ‘++’ does not seem less obvious than ‘+=’ and learning about the 2-4 extra operators doesn’t seem burdensome.
> ++ and -- are also not particularly rare (I remember being surprised that Python did not support them)
> 
> > Their expressive advantage is minimal - x++ is not much shorter than x += 1.
> Still, `++` is easier to type than `+= 1`
> 
> > Swift already deviates from C in that the =, += and other assignment-like operations returns Void (for a number of reasons). These operators are inconsistent with that model.
> 
> I liked the alternative considered: keep ++ and -- while returning void
> 
> 
> 
> But over a few days I became less bothered by the proposal. I agreed with this:
> > Swift has powerful features that eliminate many of the common reasons you'd use ++i in a C-style for loop in other languages, so these are relatively infrequently used in well-written Swift code. These features include the for-in loop, ranges, enumerate, map, etc.
> 
> 
> I respectfully disagree with removing the operators but also don’t have strong objections.
> 
> Regards,
> Will Stanton
> 
> > On Jan 30, 2016, at 1:12 PM, Vanderlei Martinelli via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> >
> > Hello everybody.
> >
> > I see Swift as a member of “C family" (a granddaughter/grandson of C, a daughter/son of Objective-C). OK, she/he is different and has her/his own personality like a daughter/son should be and have, but I still like to see Swift and recognize some traces that I know are things that became from C.
> >
> > This said, I would like to say that after the removal of `++` and `--` my code becomes less readable and more prone to errors. There were two characters to differentiate an addition from a subtraction, now there is only one (`+= 1`, `-= 1`). Also the character keys are very close in the US keyboard so it is easier to make a mistake and is not as simple as the previous solution when I typed two times the same key. Using Erica's way of saying certain things: I do not love the removal of `++` and `--`.
> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160130/678dcffd/attachment.html>


More information about the swift-evolution mailing list