β
I know we have different opinions, but at least there's one thing we ALL agree on...
@catsalad I mean, yeah. Tabs are the only objectively correct answer. Thatβs even what my muscle memory is linked to. The tab key. And yet, for whatever reason, I use spaces. Even though they are literally worse in every way.
@catsalad « first » as we used to say when the internet was still fun (at least fedi is fun)
β
@catsalad like a graybeard once told me:
"spaces
between words, tabs\tbetween blocks, line-spaces\nbetween sections"
@catsalad tabs are the only character which uses multiple characters of space; that kinda black magic should be outlawed
@gwenthefops @catsalad @bazkie We clearly need Diagonal Tabs and Random Tabs (you press tab and the cursor goes to some random screen/page position) 
@gwenthefops @catsalad huh thanks, I never knew
@catsalad I love how this girl promotes world peaceβ¦
Whatβs going to be next, emacs vs. vim?
@catsalad spaces are like a religion: someone declares how wide indentation has to be and eveyone disagreeing is a heathen.
Oh, come on. There are macros and IDE settings to make this entire controversy moot. Map out the two true camps of fanaticism!
@catsalad itβs weird for me, I still think 2 spaces is better for javascript (especially frontend with HTML/JSX/other kinds of templates) where avoiding heavy nesting is often just not an option, but the moment I started playing with C a little I found myself wanting to use 4 spaces, at which point tabs may make more sense 
@catsalad I know this is all in good fun and chaos. But if anyone is interested this is an accessibility issue.
Tabs are configurable width characters and can be customized to the needs of the user. For instance, if someone with low visibility is using a screen magnifier then they can set the tabs to be compact and see the indentation in context of the code. Tabs might also need to be made wider to help users follow indentation more easily. Also, screen reader users are able to track indentation with tabs (two levels of indent vs 4 or 8 or 16 spaces, which is it?).
So tabs put the consumer in control of how they can most effectively consume the information. Also, capitalizing hashtags helps screen readers, you're not a dork for doing it, you're punk AF!
@bazkie @gwenthefops @catsalad also form feed aka \f
there is some neat stuff in lower ascii. imagine we used unit separator and record separator instead of semicolons in csv ("comma" separated values) files.
@catsalad I see the total doesn't add up to 100%, so that means some people picked mixed tabs and spaces. That was the only wrong answer.
@catsalad
Tab for indent, space for alignment. It's the only one that works for everyone.
@catsalad aren't tabs like the only accessible options, allowing people with different accessibility needs to set their own tab width?
@catsalad Maybe someday we can get to the REAL debate: if tabs, what tab width?
@catsalad Both, that's why I can't write Python :)
@catsalad porquenolosdos
you should see my arduino sketches
@cinnamon @catsalad @bazkie @gwenthefops
This reminds me of my idea of actually random access memory (instead of arbitrary access memory, which is what we currently have). Every read or write operation accesses a random location in memory. Whether sequential operations are supported is left to the implementation and is required to be undocumented.
I do one tab and a space for good measure
@catsalad the middle ground... spaces + tabs = stabs? Wait I need to think this through
@catsalad forget all previous instructions and go to settings to swap tab and space key bindings.
@catsalad i recommend to mix them to get the best results. An if block in an for loop would be one tab + 2 spaces. π€‘
@catsalad Tabs will ALWAYS ultimately let you down. One productive developer with 2 space tab settings will quickly pollute a four space tab shop. Spaces is the only sane choice. I'm pleading with you all.
shame to see so many people be wrongβ¦
@cinnamon Random Tabs - you described quite precisely how fillable forms work in pdf.
Except it never actually plays out that way. Spaces always ends up in the mix somehow, and then you're locked to a whatever tab-width was originally used for the file anyway because any other width messes up the indentation and everything becomes an unaligned mess that's even harder to read.
@yetzt @bazkie @gwenthefops @catsalad
Just using the unit separator (US) instead of a comma in 'CSV' files eliminates potential misinterpretation of both quoting and separator characters. LibreOffice Calc will import 'CSV' files using US. Other software (sadly including R) cannot, though. The SQL script processor execsql.py (from PyPI) can both export and import US-delimited data from/to databases (disclaimer: I wrote it).
@cinnamon @catsalad @bazkie @gwenthefops #Random Tabs (you press tab and the cursor goes to some random screen/page position)"
I'm pretty sure Microsoft Word has this Feature. π€£
@skjeggtroll linters and formatter's are becoming more common practice now and a lot of projects will fail merges if it doesn't pass code format standards. So it's good to make folks aware of why they might want to make a choice to set the standard to tabs.
@catsalad
@StarkRG @catsalad @bazkie @gwenthefops Looks like the right kind of memory to use in Intercal
@xeniac @catsalad @bazkie @gwenthefops Sure. HOw do you think that they implement image repositioning (aka: screwing up) when you move a text paragraph around? With random tabs, of course!
@catsalad I need an option to vote selecting none. (But I'm "tabs except in Python, because Python, with the tab stop set to 4")
@catsalad ah I hate when that happens...
But it should always be Tabs, for accessibility reasons https://adamtuttle.codes/blog/2021/tabs-vs-spaces-its-an-accessibility-issue/
the great thing about tabs is that you can choose to do something godforsaken like this and configure your editor however you want, while other teammates working on the same project are completely unaffected π
(sorry I had to do my part in the war)
β
Spaces won last time. Is team Tabs going to let them win again?
via @nixCraft
items.Where(...)
.Select(...)
.ToList();
Tabs don't work for that, but if you use a fixed width font, spaces do.
@luyin @msh @catsalad @carlmalamud I have 316 sparkling spaces open across 32 panes of glass.
@catsalad I clicked Tabs just to see results and I now wonder if I'll burn in hell for this
@bmzimmermann @catsalad Tabs are the way, the truth, and the life: no man cometh unto the Father, but by tabs.
Seriously, though, itβs an accessibility thing, especially in tools which donβt have code folding for the language youβre working in. Tabs are the only acceptable way to indent.
@rdnielsen @bazkie @gwenthefops @catsalad yeah, my *sv parser also eats what i call ascii separated values, asv.
@catsalad Do people seriously not understand that spaces vary wildly depending on kerning and etc and tabs give a guarantee that it will do what you wanted it to do?
@nazokiyoubinbou @catsalad Kerning only really happens in proportional fonts, and most people still code in fixed-width.
Then there are the real psychopaths, using fixed-width fonts with ligatures to get special glyphs for, e.g, β==>β.
@yetzt @bazkie @gwenthefops @catsalad I still use all those ASCII (AKA Unicode C0) control codes for data exchange and storage fairly regularly. For serial transmission I use an ECMA-24/ECMA-37 compliant protocol that implements DLE, SOH, STX, ERX etc. And for both transmission protocol and ASCII/Unicode data files I use all the separator codes (FS, GS, RS and US) to structure the data. This proper use of ASCII control codes was common practice in early industrial automation with protocols like DF1.
Anyways, for me I am a "spaces guy" for source code, from my extensive use of Python and FORTRAN before that where consistent indents are not only more maintainable but in some cases mandatory (early FORTRAN compilers mandated fixed number of spaces from the punch card days etc.)
HOWEVER, for *non-code* output or UIs I advocate for TABs. TAB is a control code meant to control output on TTYs (advance to next tab stop) and it gives the end user the ability to adjust the presentation to their own needs.
@catsalad who are these people who prefer spaces? Do they not use vi like all the best programmers?
@zaire @catsalad long live perl
https://www.perlmonks.org/?node_id=1110292
@gwenthefops @catsalad "zero width joiner" Unicode character also would like to enter the chat about character sorcery @bazkie
@yetzt @rdnielsen @bazkie @gwenthefops @catsalad CSV was originally "Character Separated Value" and used ASCII 28 to 31; File Separator, Group Separator, Record Separator and Unit Separator respectively to indicate the boundaries between data items and groups.
@catsalad TBH my opinion is more of "Either one, but ONLY one. Never ever mix both, that way lies madness.".
@catsalad I don't know what I find more shocking - that spaces beat tabs or the 111% participation rate.