4 ms·
Spaces for indentation work perfectly fine without fixed-width fonts. If you indent code with leading spaces, things will "line up" with any font. By the way,
by recursive 6y ago
Spaces for indentation work perfectly fine without fixed-width fonts. If you indent code with leading spaces, things will "line up" with any font.
By the way, what's the misunderstand with lining things up?
- rhn_mk1 6y agoI'll demonstrate using periods due to the forum eating spaces. The parts after the dots line up in a monospaced font. Fixed width:.good Flexible:....not good .............so not good
- recursive 6y agoThis doesn't make any sense. Indented code does not have non-whitespace characters to its left.
- rhn_mk1 6y agoSure it does. const ONE = 1; const MILLION = 1_000_000; Even without non-whitespace it's a problem: def foo(arg1, ........arg2, ........arg3)
- recursive 6y agoYour first example isn't what I'd call indentation. "Alignment" maybe. I don't think anyone would expect that to work in a proportional font. For the second one, I'd write it this way. def foo( ....arg1, ....arg2, ....arg3) I prefer that even in a fixed width font.
- rhn_mk1 6y agoThis still matches the parent's picture > If you use spaces to indent code, or in any way rely on a fixed width font to "line things up", you have a fundamental misunderstanding. As long as the limitations of lining things up "exactly" are avoided, spaces shouldn't be any different than whatever way comes from true understanding.
- recursive 6y agoI do use spaces to indent code. And I still have no idea what my fundamental misunderstanding is supposed to be.
- rhn_mk1 6y agoMy take on it is that (most) code isn't a picture, so drawing with it (alignment especially) is missing the point that code is a form of text instructions. If anything, the editor should "render" the text in a form that is pleasant to the eye, divorcing the meaning from the presentation. Lining up things too much is a "works for me" way of baking presentation into the data, where the writer assumes that because it looks good o their setup, it will look well for the reader too. Similarities can be seen to building web pages on tables, sending around Word documents, or hard-wrapping emails.
- gsoto 6y agoSpaces work well for indentation. You could argue here that typing one character (tab) is more efficient and maintainable than writing N (also semantically more powerful). The real problem comes when people start aligning things on the middle of the line.
- u801e 6y agoI think the solution is to rely on hanging indents rather than trying to align with the column of the previous opening parenthesis, bracket, etc. So instead of this: def some_method(param1 param2): statement1 you do this: def some_method( param1, param2): statement1 Hanging indents work regardless of whether you use tabs or spaces for indentation.
- Supermancho 6y agoMy IDE types 4 spaces when I hit tab shrug