[swift-evolution] [Accepted with Revision] SE-0099 Restructuring Condition Clauses
Ethan Eberle
ethandeberle at gmail.com
Thu Jun 9 11:53:03 CDT 2016
Hi Brandon –
I’ll try to speak for one of those ‘newer’ developers (I’ve only got ~1 year of experience in dev work and it’s all part time as a hobby), although my views obviously only reflect my own.
I also had a similar ‘gut’ reaction to the approval but after re-reading it several times the change is surprisingly minor. At its core, the proposal just involves adding extra ‘lets’ and ‘cases’ to the syntax. I think this is a great solution that avoids the need for semi-colons or some new delimiter (I first learned to code in Python and semicolons are anathema in my mind). It also removes the arbitrary use of “where” (I didn’t even know this was possible). I’d prefer we allow the use of “where” when the constraint applies only to the unwrapped item immediately preceding it, but such is life [1]. (Core Team – I’ll look forward to reading the revised accepted proposal, I’m still confused about a few of the details).
In terms of the broader review process, it’s predicated upon users providing timely feedback during the official review period – which went on for the proscribed time. The core team clearly put much thought into this since it took longer than usual, on balance, to announce their decision. I would add that the only time an accepted proposal should be ‘overturned’ is if the implementation turns out to be too complicated or if there were other downstream affects that weren’t previously discovered in the review process (we’ve already seen a bit of this). If everything is continually revisited, then there will be next to no forward progress.
That said, the one process improvement I have is that proposals should ideally only be “Accepted” by the core team as it is originally written (or with relatively minor changes) or completely “Rejected”. The “Accepted with Revision” approach can result in new ideas being approved but not being fully vetted by the community. This also eliminates needless "surprises", which is always good. Proposal are either accepted or rejected, nothing in between. I actually think this approach is win-win for the core team and the community – although the ultimate decision to reject or approve a proposal must rest with the Core Team. For this reason, I think in this case it *might* be tenable to “re-visit” this proposal (say, after WWDC) once Chris puts the accepted version's language on GitHub. It could also be evaluated within the broader context of removing (or retaining) 'where' elsewhere in the language (see Erica's proposal), though for scoping purposes the proposals should remain separate. If it is re-visited, I’m no compiler/language expert but it seems like you could unambiguously permit the use of ‘where’ in the specific cases I mentioned earlier. It’s purely syntactic sugar and “burns” a keyword but is a nice optional expressivity feature, and I remember seeing some Core Team members showing interest in it. Maybe this approach is the best of both worlds? :D
“I just wanted to express my concerns for a language I was growing to really love!”
-> Hopefully you’ll continue to love it :)
Just my two cents,
Ethan
[1] Swift is indeed an opinionated language.
Sent from my iPhone.
> On Jun 9, 2016, at 12:35 PM, L. Mihalkovic via swift-evolution <swift-evolution at swift.org> wrote:
>
>
>
>> On Jun 9, 2016, at 6:16 PM, Brandon Knope via swift-evolution <swift-evolution at swift.org> wrote:
>>
>>
>>
>> Sent from my iPad
>>
>> On Jun 9, 2016, at 11:55 AM, Brent Royal-Gordon <brent at architechies.com> wrote:
>>
>>>> I believe large syntax changes should have more discussion from more developers and not a very small subset of them. The review announcement needs to be broader: the swift blog needs to announce it so more people know.
>>>
>>> No.
>>
>> Grrrr
>>
>>>
>>> Firstly, for those who cannot follow the list—and I can't say I blame them—the -announce list already allows them to ignore everything except the beginnings of reviews. Anyone who wants to (and who speaks English) can be notified of any significant proposed change to the language and can submit their comments for the core team's consideration. That is enough.
>>
>> I think your perspective is flawed here. You are precisely one of the "top developers" I have been referring to. Am I surprised this is your opinion? Not one bit.
>
> But if you followed the email trail you must have noticed that the final choice was not what brent supported. I would even say that it was not any of the solutions anyone proposed.. Proof that the process worked, the team made a change nobody anticipated, yet many people can (partially) identify with.
>
>>
>> Mailing lists are a rather old thing...and I think many will find them daunting or maybe somewhat annoying with all of the announcements. How many people are subscribed to announce? It does not seem like many because well...we don't always get a lot of feedback. We get feedback from the same people over and over. How is this enough? How is this enough variety?
>>
>> Just because "announce" is more palatable does not mean that it is being used in the way you are describing.
>>
>> Maybe there is another problem then: people afraid to share their opinions publicly. I wonder why this would be.
>>
>>> The purpose of reviews is not to cast ballots for or against a feature. It is to submit arguments, for and against, for the core team to consider as they decide whether and how to address the problem the proposal's "Motivation" section describes. For that purpose, there is no need to collect hundreds or thousands of reviews, and if we did, the review manager would be swamped anyway. It is enough to get a reasonable variety of eyes, from a reasonable variety of perspectives, on the problem.
>>
>> Why do people keep saying I am asking for: "hundreds or thousands" of reviews? I am just asking for something like 20 - 25 unique people's feedback. We are not getting that. We get the same people over and over...which makes the feedback seem screwed to this small group's philosophies.
>>
>> Getting feedback from the same ~10 people is not a "reasonable variety of eyes" in my opinion. That is a very small sample. And that sample is usually those who are very technically skilled...who I would say do not always design the best interfaces.
>>
>>> I think that has happened here. We have not heard from every perspective, but we have heard from enough of them that adding more will not help all that much. Feedback always has diminishing returns: going from one person to two is far more valuable than going from fifty-one to fifty-two.
>>
>> I think you will be very surprised come WWDC when people learn of this change.
>>
>> How is there value when the same people keep justifying changes for the sake of consistency? Is this in the user's best interest? Or is this in the swift engineer's best interest?
>>
>> This is precisely why I think more feedback is important. We need more than just the same people propping up proposals that gives an illusion that it is representative of everyone using swift.
>>
>> The bar should be high for changing syntax, so I don't buy the argument that 25 people sharing their feedback is somehow less valuable than 10 people sharing.
>>
>>> And in particular, I *don't* think the beginner perspective is an especially worrisome one for this particular proposal.
>>
>> I don't think this was though through thoroughly enough. It just happened too fast
>>
>>> Though some of the syntaxes we considered might have been confusing for beginners (*cough*semicolon*cough*), the one the core team settled in is actually one of the simplest, and certainly much simpler than the status quo. If anything, the people most disadvantaged by this solution are the power users who are used to the "multiple if-let" shorthand and will now have to add extra keywords to their code.
>>
>> Maybe you are right. Maybe I am vastly wrong. But I guess this will be clearer come WWDC.
>>
>> And I already know how the people complaining about this change will be silenced: it was done for the consistency of the language and the grammar.
>>
>> How can us simpletons argue against that?
>>
>> Also, I want to make clear that my concern is not just for this review but for future reviews also. How different could the language look with more varied feedback?
>>
>> Again, I hope I am wrong =/
>> Brandon
>>
>>
>>> --
>>> Brent Royal-Gordon
>>> Architechies
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> _______________________________________________
> 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/20160609/7fdd74ac/attachment.html>
More information about the swift-evolution
mailing list