3 ms·
> If you use spaces, that freedom is lost. That freedom isn't lost. As the pro-space camp is wont to point out, you're free to pile on another layer of transla
by wahern 7y ago
> If you use spaces, that freedom is lost.
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.
- rendall 7y ago"Also, Google uses spaces, and if it's good enough for them, end of story" That's no argument EDIT: The commenter is being sarcastic. Don't downvote them :)
- wahern 7y agoA commenter in that Reddit thread made that argument, more or less: https://www.reddit.com/r/javascript/comments/c8drjo/nobody_talks_about_the_real_reason_to_use_tabs/esmgl4j?utm_source=share&utm_medium=web2x https://www.reddit.com/r/javascript/comments/c8drjo/nobody_t...
- claytoneast 7y ago"10MB init config file" - this is the point at which you gotta realize they are being sarcastic.
- rendall 7y agoI think you're right. I read it quickly on mobile and missed that.
- cmroanirgo 7y ago> Google uses spaces 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-spaces-2018-2 https://www.businessinsider.com.au/bill-gates-on-tabs-versus...
- hermitdev 7y agoFreedom is lost. I'm unaware of any IDE that will expand a 2 space indent to 4 on commit, without using special hooks. 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.
- deleted 7y ago[deleted]
- sundvor 7y agoYour sarcasm is brilliant; top points! :-) 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?
- kazinator 7y agoDoesn't work for blocks that contain nested indentation levels, but are themselves positioned from something aligned: (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.
- wahern 7y agoBut that style elides the distinction between syntax and semantics by making indentation a function of the number of letters in an identifier. The above code isn't indenting so much as typesetting--aligning visual elements, not grouping semantic components such as compound statements. If you're typesetting and the only thing you can rely on is monospace fonts, then of course you must use spaces. That's reflected in the rule, "tabs for indentation, spaces for alignment."[1] 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.