2 points

I’d imagine it’s because people who use spaces are either further in their career in average (because the modern programming ecosystem in general uses tabs so new devs are more likely to only know that) or they’re just more serious about software development because the kind of person to die on that hill is also the kind of person who is very obsessive about other things as well.

permalink
report
reply
7 points

Wait. Are tabs used more often in modern stuff? Almost everything I use does spaces and I’m not that new to programming. Been doing it for maybe 5 years. I use spaces in everything but Go.

permalink
report
parent
reply
4 points

Most text editors people use (like VSCode) generally automatically adjust tabs to be whatever the standard indent is for the project (and convert to spaces if it’s necessary). As a result, indenting with tabs usually just works, and so most people just learn to do it that way. Also people are used to using tabs for indent from things like Word which they used before learning to write code. As a result, I’ve noticed most people use the tab key (even if their not technically “using tabs” every time they do it).

permalink
report
parent
reply
4 points

Yeah, I have my tab key set up to insert spaces. I meant the characters being used, not the key used to write them.

permalink
report
parent
reply
3 points

I think the deeper generational thing is in the idea that anything “just works”. Like I’m a programmer, right, so I know shortcuts. Ctrl+S saves the file, simple right?

Me when I want to save a file: Ctrl+SSSS. Why? Because I don’t trust it “just works”. Same reason I don’t trust auto save. Same reason I am stunned every time I tell windows to diagnose and fix the network problem and then it actually does.

I grew up in a time where you couldn’t trust any of that shit.

permalink
report
parent
reply
-1 points

Well, spaces are superior, so…

permalink
report
reply
3 points
*

Tabs make more sense because that’s exactly what they’re for, indents. Ignoring how it looks, which makes more semantic sense for an indent, <indent character> or <space character><space character>? You wouldn’t use a bunch of spaces to indent a paragraph, so why would you use it to indent code?

permalink
report
reply
3 points

And by using tabs the IDE can customise whether it’s displayed as two character or four character deep indentation. It just makes so much more sense.

It’s insane that anyone considered spaces to be a sensible default. Yet I primarily develop in C# where four spaces are the standard so that’s what I use. However the reality is the IDE handles all the formatting automatically so I’m never actually typing four spaces

permalink
report
parent
reply
1 point

Just don’t use IDE

permalink
report
parent
reply
0 points

I was pro tabs when I started out with software development. It just made sense, right? You press the key once, you get a single symbol, you have your indention, neat. And there is the argument that everyone can adjust their tab sizes, want it to be 2 spaces? 4? 6? Whatever? Awesome!

Then you write actual code and this perception changes. Tabs make a mess, developers often align both code and comments to make sense. That alignment only works at x-spaces and utterly breaks if you change tab width.

An example in C# with LINQ (just semi-random stuff):

var test = customers.Where(c => c.Deleted == false
                             && c.Enabled
                             && c.HasProducts()
                             && blockedCustomers.Contains(c.Id) == false);

This kind of indention only works with spaces, not with tabs. And no, mixing tabs and spaces doesn’t work (like some users claim, that you can indent with tabs and then do alignment with spaces… nope, if you change tab with then your space alignment breaks).

Honestly, I don’t care either way, I just use what my company uses and adapt. But till now it has always been spaces (even though I was team tabs in university) and now I actually prefer spaces as it just makes sense. It’s consistent, it’s easy, it works everywhere.

Btw. the Lemmy code editor is shit, trying to align this was trial and error for a minute :-/

permalink
report
parent
reply
3 points
*

if you change tab with then your space alignment breaks

No, it doesn’t? Here’s the exact same text content with different tab widths:

The tabs are smaller but the spaces are the same, so the alignment remains.

permalink
report
parent
reply
2 points

Ah, I see what you mean, out of instinct I’d have put one more tab on the “whatever” line, which would break the concept. But if you manually do both the indent + alignment in spaces then it works.

Besides your IDE of choice screaming at you that you are mixing tabs and spaces that is :)

It still feels like a hack though, simply going with spaces is more uniform and works everywhere. Especially as a lot of code is viewed in browsers nowadays (GitHub, GitLab, …) and tabs are often a mess in those environments.

permalink
report
parent
reply
1 point

Well, the tab key was created to avoid repeatedly having to press space to create an indentation, but that was on typewritters, so either way, you can use spaces or tab key to indent text.

Now text editors can transform tab character (‘\t’) to desired amount of spaces, and I think the problem with using tab characters in code (‘\t’) is that system may have different configurations for the amount of space a tab char takes, making it look inconsistent on different systems, while space char is pretty much standard on every system.

permalink
report
parent
reply
11 points

I use tabs because I prefer 4-space indents and others might prefer 2-space indentation or the gross and unacceptable 6-space indentation.

If more than one person is working on a code base, there will likely be more than one preference, and with tabs everyone gets to just set their own tab width.

Yes, even the 3-space savages.

permalink
report
reply
0 points
*

It’s OK, I replace all the tabs with spaces for uniformity. Tabs are stupid and they mess things up when I paste stuff. I like to watch the world burn.

permalink
report
parent
reply
2 points
*

Imagine not having an IDE that automatically fixes the spacing of pasted text.

permalink
report
parent
reply
3 points

Tabs work fine as long as you don’t align stuff. If you do, you have to assume a tab size and mix tabs and spaces.

permalink
report
parent
reply
2 points

This is a legit observation. However, I would argue that spaces needs a set indentation width anyway, so if tabs had a set indentation width that coders are expected to maintain when aligning code, it wouldn’t make a difference. Enforcing that in practice may be different, but in theory it works.

permalink
report
parent
reply
5 points
*

Generally aligning stuff isn’t nice. But if you do, it’s tabs up to whatever level of indentation you’re at then spaces the rest of the way. So you wouldn’t have to assume a tab size. And the tabs and spaces have different semantic meaning (indent vs alignment) so mixing them makes sense. It’s even built into Jetbrains IDEs, where it’s called “Smart Tabs”.

Although really just adding a level of indent is better than aligning.

permalink
report
parent
reply
3 points
*

Casualty / coincidence

Edit: causality/coincidence

permalink
report
reply
1 point

Did you mean “causality” ?

permalink
report
parent
reply
1 point

nop

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 3.8K

    Monthly active users

  • 1.5K

    Posts

  • 35K

    Comments