HN2new | past | comments | ask | show | jobs | submitlogin

> Deploying major new features to production should be as easy as starting a flamewar on Hacker News about spaces versus tabs

Great writing. Spaces all the way.



Elastic tabstops are clearly the best, but until we have good editor support I'm sticking with spaces.

http://nickgravgaard.com/elastic-tabstops/


For now, these decisions will be made for me by our gofmt overlords.


Seriously? Ugh. Tabs FTW.


I've actually thought about this a lot (for some reason).

Spaces are fixed. Tabs are adjustable via most user interfaces.

So, in theory, you'd think tabs are superior because everyone can have their own amount of spacing and that's that.

Therefore tabs > spaces

(I should probably leave now)


Until you want to align code on non-tab boundaries.


True...damn it.


But guys, this is what is being proved. Stop. Don't. Come back.


Would someone mind explaining the argument for spaces over tabs? Possibly naive young dev here.


How many spaces do you like to indent your code? Some people like 3 space indentations, some like 8 spaces, and some like 5. It's very personal (but anyone who doesn't use 3 is a reeky brazen-faced mammet).

A simple solution is to use tabs, because then every developer can set the tab distance however they like, and they are happy. It breaks down when you have code that is aligned beyond the indent, like this:

  if(a && b &&
     c && d &&
     e && f   ) {
In that case, increasing (or decreasing) the tab distance will ruin the intention.

The best solution is to use tabs to the point of indentation, and then spaces thereafter, but a lot of code editors don't support that, so in practice it's hard to implement, so people use spaces to preserve their formatting when it gets uploaded to github.


Mixing sounds like the worst option.Its what has cause horrendous looking code in the past when you open someone elses code and they are mixed.

Python and spaces for me.


  > Python and spaces for me.
Sounds like you are a very open-minded individual. Not.


I say this from experience, not narrow mindedness.

Open a file where it is all spaces, and it looks the same on every machine. Open a file with a mix of spaces and tabs, and it often turns out an absolute mess.


OMG! 3 spaces? EVEN number? 2 or 4. Never even.


You sir, are a reeky, brazen faced mammet!


Short version: spaces doesn't break over time.

Longer version: First understand that there is no tabs vs. space. There is only tabs + spaces vs. only spaces. (Because not all indentation line up with tab spaces, and someone may wish to line up assignments, lists, etc.) Only one developer in the history of your project that uses another tab stop standard is then enough to mess up your indentation. And that's just one way to mess it up, in a sufficiently large project some creative developer will find another.

Spaces just work and ensures your guidelines are followed. The only downside is a few wasted bytes. It might have been a religious debate in a long distant past when someone actually counted bytes, but today it's mostly young developers who don't know better who engage in it (with a few exceptions). Linus uses spaces. OpenSSL changed to spaces as part of cleaning up their codebase. It's the default behaviour of GNU indent. It is a good idea.


Right, but how many spaces?


4


Spaces always have the same width, so it's harder to screw up formatting and easier to enforce stuff like maximum line width.

Tabs width can be set to whatever you want, so everyone can use the spacing they prefer.


Spaces work better with my preferred IDE setup. Therefore spaces are inherently and objectively superior to tabs.


I personally like the idea of tabs better, but prefer spaces because it makes navigating the text less awkward when traversing tabs. It may sound stupid, but for my own stuff it's just more comfortable.


I take umbrage!!! (oh wait, I am a spaces person too)


Ah, but how many?


I like a mix of space's and tab's depending on if my line number is divisible by 3 or not.


2 1/2. Obviously you're using an editor that can do half-spaces?


Of course! I simply type one in with a half A-press.


For those who don't know the reference: https://www.youtube.com/watch?v=kpk2tdsPh0A. It's definitely in the hacker spirit.


En Space: U+2002



2 or 4


Tabs are obliviously superior since every developper can visually resize them to be as small or as big as they wish. Personally, I can't work with small indentation. My eyes have a hard time following long straight lines.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: