<div style="font-family: Helvetica; font-size: 13px; ">I don't always post to python-dev, but when I do I ask for braces.<br></div>
                <div></div>
                 
                <p style="color: #A0A0A8;">On Friday, December 9, 2011 at 4:43 PM, Antoine Pitrou wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div><br></div><div>Dear Cedric,</div><div><br></div><div>I'm guessing you drank too much (perhaps you are training for New Year's</div><div>Eve), ate some bad sausages or are simply very self-complacent.</div><div>python-dev is not the place where to post long unstructured ramblings</div><div>with no practical value. Consider writing on your personal blog</div><div>instead.</div><div><br></div><div>Thank you</div><div><br></div><div>Antoine.</div><div><br></div><div><br></div><div><br></div><div>On Fri, 9 Dec 2011 21:26:29 +0100</div><div>Cedric Sodhi &lt;<a href="mailto:manday@gmx.net">manday@gmx.net</a>&gt; wrote:</div><blockquote type="cite"><div><div>IF YOU THINK YOU MUST REPLY SOMETHING WITTY, ITERATE THAT THIS HAD BEEN</div><div>DISCUSSED BEFORE, REPLY THAT "IT'S SIMPLY NOT GO'NNA HAPPEN", THAT "WHO</div><div>DOESN'T LIKE IT IS FREE TO CHOOSE ANOTHER LANGUAGE" OR SOMETHING</div><div>SIMILAR, JUST DON'T.</div><div><br></div><div>Otherwise, read on.</div><div><br></div><div>I know very well that this topic has been discussed before. On forums.</div><div>Mailing lists. IRC. Blogs. From person to person, even.</div><div><br></div><div>And I know equally well, from all those years experiencing</div><div>argument-turned-debates on the internet, how a (minor|major) fraction of</div><div>participants make up for their inability to lead a proper debate by</div><div>speaking the loudest of all, so that eventually quantity triumphs over</div><div>quality and logic.</div><div><br></div><div>That ahead; I hope you can try not to fall in that category. Let instead</div><div>reason prevail over sentimentalism, mislead purism, elitism, and all</div><div>other sorts of isms which hinder advancement in the greater context.</div><div><br></div><div>Python has surprised once already: The changes from 2 to 3 were not</div><div>downwards compatible because the core developers realized there is more</div><div>to a sustainable language than constantly patching it up until it comes</div><div>apart like the roman empire.</div><div><br></div><div>Let's keep that spirit for a second and let us discuss braces, again,</div><div>with the clear goal of improving the language.</div><div><br></div><div>End of disclaimer?</div><div><br></div><div>End of disclaimer!</div><div><br></div><div>Whitespace-Blocking (WSB) as opposed to Delimiter-Blocking (DB) has</div><div>reasons. What are those reasons? Well, primarily, it forces the</div><div>programmer to maintain well readable code. Then, some might argue, it is</div><div>quicker to type.</div><div><br></div><div>Two reasons, but of what importance are they? And are they actually</div><div>reasons?</div><div><br></div><div>You may guessed it from the questions themselves that I'm about to</div><div>question that.</div><div><br></div><div>I don't intend to connote brazen implications, so let me spell out what</div><div>I just implied: I think anyone who thinks that exclusive WSB is a good</div><div>alternative or even preferable to DB is actually deluding themselves for</div><div>some personal version of one of those isms mentioned above.</div><div><br></div><div>Let's examine these alleged advantages objectively one for one. But</div><div>before that, just to calm troubled waters a little, allow me bring</div><div>forward the conclusion:</div><div><br></div><div>Absolutely no intentions to remowe WSB from Python. Although one might</div><div>have gotten that impression from the early paragraphs, no intentions to</div><div>break downwards compatibility, either.</div><div><br></div><div>What Python needs is an alternative to WSB and can stay Python by still</div><div>offering WSB to all those who happen to like it.</div><div><br></div><div>Readable code, is it really an advantage?</div><div><br></div><div>Two linebreaks, just for the suspense, then:</div><div><br></div><div>Of course it is.</div><div><br></div><div>Forcing the programmer to write readable code, is that an advantage? No</div><div>suspense, the answer is Of course not.</div><div><br></div><div>Python may have started off as the casual scripting language for casual</div><div>people. People, who may not even have known programming. And perhaps it</div><div>has made sense to force -- or shall we say motivate, since you can still</div><div>produce perfectly obfuscated code with Python -- them to write readably.</div><div><br></div><div>But Python has matured and so has its clientele. Python does not become</div><div>a better language, neither for beginners nor for experienced programmers</div><div>who also frequently use Python these days, by patronizing them and</div><div>restricting them in their freedom.</div><div><br></div><div>Readable code? Yes. Forcing people to write readable code by artificial</div><div>means? No.</div><div><br></div><div>Practice is evidence for the mischief of this policy: Does the FOSS</div><div>community suffer from a notorious lack of proper indention or</div><div>readability of code? Of course we don't.</div><div><br></div><div>I'm not a native speaker, but <a href="http://dict.cc">dict.cc</a> tells me that what we call "mit</div><div>Kanonen auf Spatzen schießen" (firing cannons at sparrows) is called</div><div>breaking a fly on the wheel in English.</div><div><br></div><div>I may lack the analogy for the fly on the wheel, which, if I'm not</div><div>mistaken, used to be a device for torture in the Middle Ages, but I can</div><div>tell you that the cannon ball which might have struck the sparrows,</div><div>coincidently caused havoc in the hinterlands.</div><div><br></div><div>For the wide-spread and professional language Python is today, the idea</div><div>of forcing people to indent is misguided. These days, it may address a</div><div>neglible minority of absolute beginners who barely started programming</div><div>and would not listen to the simple advice of indenting properly, but on</div><div>the other hand it hurts/annoys/deters a great community of typical</div><div>programmers for whom DB has long become a de facto standard.</div><div><br></div><div>For them, it's not a mere inconsistency without, for them, any apparent</div><div>reason. It's more than the inconvenience not being able to follow ones</div><div>long time practices, using the scripts one wrote for delimiters, the</div><div>shortcuts that are usually offered by editor, etc.</div><div><br></div><div>It also brings about a whole class of new problems which may be</div><div>anticipated and prevent, yet bear a great potential for new, even</div><div>hard-to-find bugs (just in case anyone would respond that we had</div><div>eventually successfully redeemed the mismatched parenthesis problem - at</div><div>what cost?!).</div><div><br></div><div>Not just difficult to find, near to impossible would be the right word</div><div>for anyone who has to review someone else's patch.</div><div><br></div><div>It is widely known among the programmer's community that spaces and tabs</div><div>are remarkably similar to eachother. So similar even, that people fight</div><div>wars about which to use in a non-py context. It might strike one as an</div><div>equally remarkably nonsensical idea to give them programmatic meaning -</div><div>two DIFFERENT meanings, to make things even worse.</div><div><br></div><div>While it becomes a practical impossibility to spot these kind of bugs</div><div>while reviewing code -- optionally mangled through a medium which</div><div>expands tabs to whitespace, not so much of a rarity -- it is still a</div><div>time-consuming and tedious job to find them in a local situation.</div><div><br></div><div>More or less easily rectified, but once you spent a while trying to</div><div>figure something like that out, you inevitably have the urge to ask: Why?</div><div><br></div><div>Last of all, some might argue that it's convenient to not to have type</div><div>delimiters. Well, be my guest. I also appreciate single lined</div><div>conditional or loops once in a while. I understand how not having to</div><div>type delimiters if you don't want them lifts a burden. Hence I would not</div><div>want rid Python of them. WSB may come in handy. But equally, it may not.</div><div><br></div><div>Proposing the actual changes that would have to be made to accomodate</div><div>both, WSB and DB is beyond the scope of this script. It is the</div><div>CONCLUSION that the current situation is undesirable and Python,</div><div>although not apparent at the first glance, suffers from exclusive WSB,</div><div>which is the goal of this thread.</div><div><br></div><div>Discussing has its etymological roots in Discourse, which connotes a</div><div>loosely guided conversation about a topic. Therefore, I conclude with a </div><div><br></div><div>DEBATE!!!111</div><div><br></div><div>kind regards,</div><div>-- MD</div><div><br></div><div>(not proof-read)</div></div></blockquote><div><br></div><div><br></div><div>_______________________________________________</div><div>Python-Dev mailing list</div><div><a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a></div><div><a href="http://mail.python.org/mailman/listinfo/python-dev">http://mail.python.org/mailman/listinfo/python-dev</a></div><div>Unsubscribe: <a href="http://mail.python.org/mailman/options/python-dev/donald.stufft%40gmail.com">http://mail.python.org/mailman/options/python-dev/donald.stufft%40gmail.com</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>