3 ms·
Always liked the idea of whitespace-only indenting but always suspicious of it. Problems I've found are that automatically generated code can't just be dumped i
by throwaway_pdp09 7y ago
Always liked the idea of whitespace-only indenting but always suspicious of it. Problems I've found are that automatically generated code can't just be dumped in with { and } around it.
A colleague spent a few hours tracking down a python bug caused by a bad merge that messed up the indent without it outright causing the code to crash, just produce wrong output. That's IMO too expensive a bug type to permit just to save a few keystrokes. But YMMV as they say.
- _bxg1 7y agoAnd then there's tabs vs spaces (you can't tell just by looking whether or not the syntax is correct), and the fact that a block expression can't be nested inside anything else, etc.
- zenhack 7y ago+1 for the bit about machine generated code. I think if you're going to have significant whitespace, Haskell does the right thing here: the indentation rules are specified in terms of automatic insertion of braces and semicolons. Almost nobody is them in by hand, but they make codegen easier. Re: the bad merge, that can happen the other way to: this was the cause of Apple's infamous goto fail bug. I think block structured languages should do what go and some others do: braces on conditionals and loops are mandatory, parens are optional.
- mixmastamyk 7y agoIt is a great deal, millions of keystrokes and code reading impediments avoided over decades vs. one exception a colleague of someone on a discussion board had once. That’s a 1000x advantage in my book. Not mention exceptions are often avoided with a professional editor with whitespace highlighting and indentation guides.
- viklove 7y ago> one exception a colleague of someone on a discussion board had once You're not even trying to have a reasonable discussion about this, are you. At least this guy has a datapoint. You just have a hunch that you can write code faster if it's formatted slightly differently. I don't think it's true -- I don't think typing semicolons and curly braces slows down my coding enough to warrant omitting them. Most of my time coding is spent thinking and reading, probably less than 15% of my time is spent typing. So if I only type semicolons and commas 5% of that time, that means I'm saving 0.75% of my time by not typing them, which is about 14 hours a year if I work 40 hour weeks. I've definitely debugged a yaml error or two due solely to formatting in the past year, which probably cost me at least 4 hours of productivity. If my entire codebase was formatted solely by indents and returns, I imagine that number would balloon significantly, which is why I opt to use semicolons and other formatting characters. Also, they're not "reading impediments," at least not universally. Being able to use my code-editor to jump to the end of a code block (by matching a { or }) has been immensely useful in my experience.
- mixmastamyk 7y agoThe detriment to readability of punctuation chars is documented. I write code all day in .py and .js and it is obvious which is easier to read. I won’t bother to mention .pl. If you need 4 hours to fix a yaml file, then what can I say? Perhaps you need better tools, or reduce tech debt.
- throwaway_pdp09 7y ago> The detriment to readability of punctuation chars is documented Not to my knowledge, and I have a great interest in UIs and usability, so a link would be very interesting. It would also help resolve a lot of whitespace vs. brackets debates if you can find it, thanks. > But there are more uncharitable interpretations That was nasty.
- mixmastamyk 7y agoLower case prose with plenty of whitespace and little punctuation is the easiest to read, and well known from the days of typesetting books and periodicals. Python is the closest to that of major langs. Taken to the other extreme you get perl to APL. Or perhaps programming with east-asian symbols. You're unlikely to find many peer-reviewed studies on this, the way you won't find many on proving other things learned centuries past.
- throwaway_pdp09 7y ago"detriment to readability of punctuation chars is documented". Your words. So please produce.
- mixmastamyk 7y agoI found these with google: - http://impact-information.com/impactinfo/readability02.pdf http://impact-information.com/impactinfo/readability02.pdf (about prose but mentions bullet points with space) - https://www.researchgate.net/publication/320407173_A_COMPARITIVE_ANALYSIS_OF_THE_C_JAVA_AND_PYTHON_LANGUAGES https://www.researchgate.net/publication/320407173_A_COMPARI... - https://alistapart.com/article/whitespace/ https://alistapart.com/article/whitespace/ - https://softwareengineering.stackexchange.com/questions/298564/ https://softwareengineering.stackexchange.com/questions/2985... - https://ieeexplore.ieee.org/document/8091188 https://ieeexplore.ieee.org/document/8091188 - https://dl.acm.org/doi/10.1109/ASE.2019.00047 https://dl.acm.org/doi/10.1109/ASE.2019.00047 A quicker method however: Do you find regular expressions more readable than string methods? If so, you're highly unique. If not, you already agree.