6 ms·
Rob Pike on why Go is indented with tabs [0]: > How wide should the indentation be? 2 spaces? 4? 8? Something else? > By making the indent be a tab, you get t
by jihadjihad 1y ago
Rob Pike on why Go is indented with tabs [0]:
> How wide should the indentation be? 2 spaces? 4? 8? Something else?
> By making the indent be a tab, you get to decide the answer to that question and everyone will see code indented as wide (or not) as they prefer.
> In short, this is what the tab character is for.
0: https://groups.google.com/g/golang-nuts/c/iHGLTFalb54/m/zqMoq9JRBAAJ https://groups.google.com/g/golang-nuts/c/iHGLTFalb54/m/zqMo...
- throwawayqqq11 1y agoExactly. Indentation != spacing. And thats all the argument i need. I dont understand why people argue with consistent text layout for all-spaces. You can use tabs to indent and spaces to align after that, in most cases.
- lesuorac 1y agoYou use tabs to delimitate tabular data. Unless you're trying to argue that your code is a tsv file then tabs is the wrong thing to use.
- rafram 1y agoYou use line feeds (\n) to instruct your teletype machine to feed in one more line of paper. Unless you're trying to argue that your text editor is a teletype machine, then line feeds are the wrong thing to use.
- lesuorac 1y agoI think most people are pretty amenable to the argument that text editors are teletype machines. Nobody cares that phone calls happen over fiber now instead of telephone lines. So, same should apply to teletype. Nobody is going to care you're reading this over fiber instead of a telephone line. Now, people do care if they're trying to read a csv document and somebody didn't quote their commas within strings and now the values are in the wrong columns which could've been avoided by using tabs to store tabular data.
- g-b-r 1y ago> I think most people are pretty amenable to the argument that text editors are teletype machines. So you're ok if your text editor interprets the LFs of a Unix text file as mere line feeds, without ever going back to the beginning of the lines?
- thih9 1y ago> You can use tabs to indent and spaces to align after that, in most cases. In practice this is difficult; since the characters are invisible by default, people will inevitably mix up the two. Looks like the industry standard is to give up and use spaces everywhere, unless strict and mandatory tooling exists.
- 1718627440 1y agoThat's on you though, in the editors I use they are visible and not just in my default IDE.
- Izkata 1y agoAnd that was (one of the reasons) why spaces won: alignment always worked. But the new problem is linters and formatters don't understand alignment, so they always want those extra spaces removed, making a mess.
- thih9 1y ago> linters and formatters don't understand alignment, so they always want those extra spaces removed, making a mess. I’m not sure what are you referring to, could you give an example?
- geon 1y agoStop aligning stuff. I don’t even use a monospaced font.
- xipix 1y agoYou can't use spaces to align because you can't assume a monospaced font will always be used. You can't use tabs either for that matter. If you need structure, use the language's punctuation and line breaks.
- idbehold 1y agoI can and do assume a monospaced font when using spaces to align code. Folks using variable width fonts will get what they deserve.
- pepa65 1y agoReally please stop aligning with spaces!
- eviks 1y agoYou can use tabs, that’s exactly their role, but only in theory since in practice elastic tab stops that would work with proportional fonts aren’t implemented anywhere in code, only word processors
- em-bee 1y agono, i can't. i want to be able to align on arbitrary columns, not on tab stops. and when i add or remove character that break the alignment, tabs mess everything up. spaces don't.
- eviks 1y agoNo, you can't do that with spaces because spaces have a fixed width, which can't always be aligned to a variable width column. Only in the primitive environment of fixed width fonts does this work, but even there the tabstops can also be placed at an arbitrary column position, check Word out
- em-bee 1y agoanyone writing code with variable width font deserves the hell they put themselves in.
- deafpolygon 1y agohonestly, spaces shouldn't be used; it's a design issue- use tabs only for indentation, then the language should ideally support not having to use spaces for manual alignment.
- throwawayqqq11 1y agoBut this depends on the identifiers you choose. Languages cant help here, or better should not.
- vbezhenar 1y agohttps://www.reddit.com/r/ProgrammerHumor/comments/1sq7sp/tabs_vs_spaces/ https://www.reddit.com/r/ProgrammerHumor/comments/1sq7sp/tab...
- pepa65 1y agoI am very much against any alignment with spaces, just not needed, and adding a lot of unnecessary complexity to code formatting. Just use tabs for indentation, and don't mix them with spaces.
- tsss 1y ago[flagged]
- frizlab 1y agoI don’t like go, but at least they got that right!
- vvillena 1y agoFunny that the language famous for enforcing standard formatting allows freedom for this one particular thing.
- suralind 1y agoIt is standardized tho. Tab width in the editor is a preference just like the theme or a font each dev uses.