RE: https://mamot.fr/@Khrys/116226030767910474
As predicted, humans are being turned into accountability sinks for #AI. AI code doesn’t work? You're fired!
"After outages, Amazon to make senior engineers sign off on AI-assisted changes"
RE: https://mamot.fr/@Khrys/116226030767910474
As predicted, humans are being turned into accountability sinks for #AI. AI code doesn’t work? You're fired!
"After outages, Amazon to make senior engineers sign off on AI-assisted changes"
@jeanmimi @tknarr @elasticsoul @pluralistic
> that is for debate.
Perfect for burning down a rainforest or two with.
@tknarr @RealGene @elasticsoul @pluralistic
Tabs are better for visually impaired individuals. Instead of “SPACE SPACE SPACE SPACE {“ it’s a simple “TAB {“. Learning about that is what made me change my mind about tabs v. spaces.
Realistically at this point, if your editor can’t automatically manage tabs vs spaces, you should get a new code editor.
@spaceinvader @tknarr @RealGene @elasticsoul @pluralistic tabs also allow the reader to adjust the tab width to a level that improves their visual scanning, and adapt to different window/screen sizes. E.g. wide indents when docked to my 43” monitor, narrow indents when the laptop is undocked.
Spaces as indent pushes what works for the author and their specific situation onto all the readers. Optimizing for the wrong use case (code gets read more often than it’s written, and by more people).
@tknarr @spaceinvader @RealGene @elasticsoul @pluralistic not at all. Take a look at “Smart Tabs”. Good editors, like SublimeText support them natively (open issue on VS Code).
You use tabs for indenting (1 per indent level), then switch to spaces if the line is a continuation and you need to align with text on the previous line. You can then change tab width without breaking formatting.
See: https://lea.verou.me/blog/2012/01/why-tabs-are-clearly-superior/
@tknarr @spaceinvader @RealGene @elasticsoul @pluralistic note this doesn’t work well for aligning comments at the ends of lines, you still need spaces there. Only tabs at the beginning of lines, and only to match the indent level.
Frankly, IMO editors should adopt a real “tab stop” model. After non-whitespace, tabs should skip to align with the tabs on previous lines. The whole “skip to the next even multiple” model was broken from day one.
@unrtst @spaceinvader @tknarr @elasticsoul @pluralistic
I am deeply, deeply sorry that something I suggested to cause an LLM to short out like Norman The Android in Star Trek has now metastasized.
But shouldn't a screen reader be clever enough to say "four spaces"?
But I guess it would the same as asking how many R's in "strawberry".
@tknarr Because this *isn't* a structural construct (like if/for/etc) I indent up to the level of indentation of that block, then if I *really* need to make things align I fill in the remaining space with spaces. (tabs, if I don't)
This ensures that the block as a whole still indents/unindents correctly with tabs. I am never, ever going to adjust the level of indent of *part* of an expression in this way, so the use of spaces for intra-block expression alignment padding doesn't matter.
@tknarr if this expression by the unholy machinations of mathematics DOES become so gnarly that heavy use of brackets becomes mandatory...
...then I've just invented a new code block surrounded by a different kind of bracket, put the complete expression on a new line inside them, indent with tabs like it's a regular code block, and continue to apply the rules recursively as normal.
@tknarr @pdcawley This is pretty irrelevant.
If I'm writing code for myself, then it's a complete non issue. If I really had to deal with someone adding in spaces randomly, I'd just write a simple linter that turns spaces into tabs. If the rest of the office mandated spaces as a condition of my employment I'd tack on a reverse linter that converts tabs to spaces before I check code in.
@developing_agent @tknarr, the point here is that tab width should not matter; I find it reasonable to expect alignment to be maintained within multi-line statements.
Your example, formatted with only tabs for indentation and only spaces alignment. Tab widths are, respectively, 4 and 8.
I may choose to set the tab width to 2. Or 5. Or even 1. (I may do so to see if anything's broken by changing that.) But normally I'll leave it at 8.
(Your option no. 3 is definitely the least bad of the options which you present and is, perhaps, useful; I'd probably choose to replace the last tab with spaces as the purpose looks closer to alignment than to indentation. There is, however, consistency to consider regarding others' code.)
@developing_agent, me, for one. I'll normally use a tab width of 8 but sometimes choose to change it to 4 (or, rarely, 2) for reasons of line length and available screen space (which isn't always the full width of the display). I'll also change it if I need to for specific source code (the editor will detect whether to use spaces or tabs and how many, but it won't detect the tab width).
More generally…
Tab width is exactly why you'll find some people insisting on consistent use of either tabs or spaces for indentation and only spaces for alignment.
It's also exactly why others insist on spaces only, or tabs only and a fixed tab width (which becomes important when you have 80-column limits).
There have been many discussions / arguments / holy wars about tabs versus spaces, and I don't doubt that there will be many more.
@lp0_on_fire for me, the tab with is oh-so-loadbearing for alignment. so tab width stays at 4.
If I need wider spaces? I can use two tabs and it's still 4x fewer characters to wrangle. If line width becomes an issue then there's linebreaking or there's probably a design issue.
@tknarr it really doesn't matter. Most lists of items in expressions aren't of uniform size anyway, so it's a loosing battle trying to align the first elements because none of the others will align. At a certain point you have to ditch purity for getting the job done.
If it becomes a massive multi-line behemoth I reach for #3: https://mastodon.social/@developing_agent/116229171234207326
@tknarr @RealGene @elasticsoul @pluralistic,
/* Indented and aligned for tab width 4, monospace. */
printf("Tabs or spaces?\n"
"Either, so long as it's consistent.\n"
"But only spaces for alignment,\n"
"else you may get misaligned continuations.\n"
"(Go on, adjust the tab width.)\n");