That’s true, we are discussing a rather subjective point here. At the end of 
the day, it will probably come down to personal preferences of the core team 
members.

I haven’t yet seen a good argument against the ‘redundancy’ point I (and a 
couple of others) have made, but then again what others consider a ‘good’ 
argument seems to differ. Perhaps the best argument is that the redundancy is 
worth it for other reasons (easier to spot scoping errors?).

Regarding tabs vs. spaces, I was only kidding around really. The (!) was meant 
to indicate that, sorry for not being clear! I’ve done a fair amount of Python, 
but actually come from more of a C/C# background. My personal preference is 
tabs, but wouldn’t like to claim the same of the community. We don’t want to 
start up the war here, like you say.

I’ll be honest, I do like that Swift requires braces for single-line 
statements. It introduces a level of consistency that makes me reasonably happy 
(given that I have to tolerate braces anyway).

> On 20 Dec 2015, at 20:37, Michael Buckley <[email protected]> wrote:
> 
> 
> 
> On Sun, Dec 20, 2015 at 11:46 AM, Alexander Regueiro <[email protected] 
> <mailto:[email protected]>> wrote:
> Thanks for sharing your thoughts. I hear what you’re saying, but not sure any 
> of these points are substantial enough to outweigh the benefits.
> 
> And I think this is one of the most difficult aspects of discussing languages 
> on this list. We're both looking at the issues from our own points of view, 
> which are informed by our experiences, and neither of us can't rightly say, 
> "your experience is invalid". The truth of the matter is, we lack any empiric 
> evidence on which to base our decisions. Do braces hinder readability? You 
> might say yes, I would say no. Again, we disagree, but without a large-scale 
> analysis of these types of bugs in languages with braces vs. those without, 
> we have nothing but our own experiences to go on, and our experiences may not 
> be representative of the programming community at large.
> 
> That's a long-winded way of saying that, while you may not think any of these 
> points are substantial enough to outweigh the benefits, I don't see any 
> benefits to be outweighed. I'm receptive to the argument that redundant and 
> unnecessary features should be removed from the language, but from my point 
> of view, braces provide value with no downsides.
>  
> I think the best and simplest solution for this is just to force tabs to be 
> used for semantic indentation, and disallow spaces. I believe F# does this 
> (and also allows optional spaces which are ignored) – though that could have 
> changed since I last used it.
> 
> Golang did something similar a while back. The go-fmt tool indents everything 
> with tabs. There was some grumbling about this, but my impression was people 
> got over it. 
>  
> Is this really as big a problem as you make it out? Personally, as a 
> programmer, I *like* being constrained in these ways. If there’s only one way 
> to do something correctly, it saves me a potential headache. Also, I thought 
> tabs had won the war(!)
> 
> It's a very, very large distraction. Programmers love to bikeshed. I get more 
> than enough  email on this list, and I shudder to think of the flood that 
> would occur if the tabs-spaces war began in here. The war is not over. Just 
> google tabs vs spaces and you'll still find that people are writing arguments 
> about this in 2015.
> 
> For reference, everything I have seen has indicated that spaces are more 
> popular. PEP-8 even calls out spaces as the preferred indentation method in 
> Python, so I found it interesting that, coming from a Python background, you 
> thought tabs had won the war. It goes to show that, despite PEP-8, the Python 
> community is still not unified on tabs or spaces.
> 
> http://legacy.python.org/dev/peps/pep-0008/#tabs-or-spaces 
> <http://legacy.python.org/dev/peps/pep-0008/#tabs-or-spaces>
> 
> Two years ago, spaces were used three times more in Java projects on Github.
> 
> http://haacked.com/archive/2013/09/17/popular-code-conventions-on-github.aspx/
>  
> <http://haacked.com/archive/2013/09/17/popular-code-conventions-on-github.aspx/>
> 
>  
> This is not a significant issue for me. We can’t help other software being 
> stupid (or other languages having small deficiencies). I don’t think it crops 
> up enough anyway.
> 
> This is a great example of my point about our different experiences. This 
> crops up often for me, but not often for you. Who knows how big a problem 
> this really is? Not I! 
> 
> 
> > Additionally, I have heard tell that one of the original inspirations for 
> > Python's significant whitespace code were C bugs caused by programmers who 
> > omitted braces and relied on indentation for if statements. In other words, 
> > code like the goto fail bug. Swift already takes care of this by making the 
> > curly braces mandatory in if statements, so Swift code will not fall victim 
> > to the class of bugs that inspired significant whitespace.
> 
> I think that if you know from the outset that whitespace is semantic in a 
> given language, such bugs are no more likely than mismatched brace problems.
> 
> No more likely, I agree, but my point is these bugs are more catastrophic in 
> significant indentation languages. The entire reason why swift requires 
> braces for even single-line statements is to avoid the kinds of bugs that 
> caused the goto fail issue.
>  
> 
> This has never personally happened to me in all my Python coding… though 
> related issues like forgetting to indent are caught by the Python compiler, 
> since empty blocks are not allowed (there’s the `pass` statement of course). 
> It’s well worth my Python code being more readable and prettier, in any case.
> 
> And again, different experiences. This has happened to me a couple of times 
> over the years.

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

Reply via email to