You seem to be completely missing basically every point I have made.  You were 
the one who said redundancy was a *goal* of swift, which it is not.

I have explained the actual issues with the current design of access controls 
in earlier posts (as well as various mitigation strategies). They had nothing 
to do with redundancy.


> On Mar 24, 2017, at 9:09 PM, Drew Crawford <d...@sealedabstract.com> wrote:
> On March 24, 2017 at 10:28:43 PM, Xiaodi Wu (xiaodi...@gmail.com 
> <mailto:xiaodi...@gmail.com>) wrote:
> 
>> I'm not sure where you're reading that Chris thinks the current design 
>> reaches the stated aims to his satisfaction.
> 
> I'm pretty sure it's a fair assumption that when he introduces the 
> static/dynamic system to illustrate the design goals of Swift, he means those 
> goals can be seen in that feature to some significant extent.
> 
>> "We intentionally want Swift to have a common 'center of gravity' and be an 
>> 'opinionated' language, rather than fall to the 'design by committee' 
>> approach that leads to a watered-down design."  This is diametrically 
>> opposite to "shipping a full toolbox with plenty of overlap."
> 
> Chris has elaborated on this elsewhere 
> <http://atp.fm/205-chris-lattner-interview-transcript/>:
> 
>> Another thing to keep in mind is that Swift is opinionated, I guess is the 
>> way to say it. It really does encourage you to do the right thing where it 
>> can. For example, if you use var for everything, the Swift compiler 
>> [1:21:30] will say, hey, you marked this as a var but it could be a let, and 
>> let me fix it for you. That's just its subtle way of encouraging you to use 
>> immutable values, which is a very small thing, but it's just pushing you in 
>> the way that it thinks leads to a better code. Immutability for a local 
>> variable doesn't matter that much except that it communicates something more 
>> to the person who has to read and maintain your code.
>> 
>> I think that Swift really does [1:22:00] encourage you down the right lines 
>> in some ways. But on the other hand, in other places where you're saying, 
>> "Should something be a class or a struct?”, the trade-offs are more nuanced 
>> and it's a harder thing, and the Swift compiler can't just know what problem 
>> it is that you want to solve, so it can't help you with that.
>> 
> 
> `let` and `var` are "redundant" in the same way as private/fileprivate; one 
> can effectively replace the other.  Far from advocating we should eliminate 
> the redundant keyword, he argues the compiler should encourage it, because 
> "Swift is an opinionated language" and an argument to the principle of least 
> power.  The analogous idea would be if the compiler offered a fixit to change 
> "fileprivate" to "private" where legal.  Actually, that would be an 
> interesting proposal, especially since some believe private/fileprivate is 
> hard to learn.
> 
> But "Swift is an opinionated language" is not a battlecry for eliminating 
> "redundant" keywords, it is an exhortation to use them correctly.
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to