I say this as a currently predominantly Python dev, where spaces are encouraged and recommended, but I disagree as stated above.
Currently, I prefer a 2 space indent after previously using a 4 space indent for decades.
I say this as a currently predominantly Python dev, where spaces are encouraged and recommended, but I disagree as stated above.
Currently, I prefer a 2 space indent after previously using a 4 space indent for decades.
Practically, I eventually got fed up explaining this. Spaces only is easier to explain, because there is very little to get wrong with "spaces only".
My reading of "Disallow" must be wrong.
IIRC the original Sun Java source used an 8-space tab width, and looking at it with a 4-space width made it much more difficult to read.
This probably happens because there are tabs used for alignment too. Like many many many people have said, tabs are for indentation, spaces are for alignment. When people advocate for tabs, they understand their meaning, and they also use spaces for alignment. If someone uses tabs for everything always forever everywhere, they might as well just use only spaces.
Because you can't downvote posts more than 24 hours old.
I'm not sure why you'd want to downvote that post anyway; it made a reasonable point in a polite way. Replying is better than downvoting unless the original post made an egregious sin.
The lost freedom can be found again: hack an open source editor to render leading spaces as elements that have a configurable width.
Nobody who calls themselves a programmer should be whining about this, really.
That freedom isn't lost. As the pro-space camp is wont to point out, you're free to pile on another layer of translation software to revert the translation software that transformed the original tab input to a set of spaces.
And because everybody is using programmable IDEs (or IDEs that have had all possible programs precompiled into them), this translation will be part of your 10MB init config file, and because it's 2019 the translation is guaranteed to work with 100% fidelity. It's seamless!
Also, Google uses spaces, and if it's good enough for them, end of story. No matter that KNF (kernel normal form) for Linux, Solaris, and all the BSDs uses hard tabs, not to mention countless GNU projects. Unix developers aren't accustomed to writing readable, shareable source code that interoperates with a diverse set of tooling.
That's no argument
EDIT: The commenter is being sarcastic. Don't downvote them :)
Btw, Bill Gates uses tabs[0], so any decisive argument is impossible these days, because of legoog.
Personally, I prefer to make up my own mind on what I use rather than relying on big/ ¿evil corps design practices. I'm with GP and BG on this one though.
[0] https://www.businessinsider.com.au/bill-gates-on-tabs-versus...
Google using spaces means jack didly squat to me. I dont work for them and never will. Frankly, I disagree with a lot of their published coding styles for Python and C++. It may work for them, and I understand why they may want that homogony internally, but doesn't mean I have to like or use their style.
Don't want to start a holy war, but just my perspective.
All tabs for me. We can configure your editors to show it as whatever we want; no post and pre check in transformation needed. Accessibility is another reason. So really, why is this even an argument?
(long-function-name (lambda (arg ...)
(let ()
(...)))
more args ...)
That (lambda ...) doesn't start on a tab-established indentation; it's an argument to long-function-call. But inside the (let ...), it's indentation as usual. If we rename long-function-name, to something that is one character longer, the whole lambda block moves one character to the right.If you think this is just Lisp, think again; thanks to its influence, such patterns are showing up all over the place in numerous languages.
The lack of convenient semantic cues in the source file representation is exactly what burdens the visually impaired disproportionately. The well-sighted don't need a specialized parser and formatter for a language as a prerequisite to reasonably comfortably reading and editing because visual alignment suffices. The history of teletypes and keyboards made tabbed indentation an accidental equalizer when it came to source code editing. The well-sighted needed to willfully change convention to discard that benefit, and did so for highly dubious reasons.
[1] Which arose out of the tabs v spaces debate as a principled compromise and is not itself a historical style, AFAIK.