In case of C it&#x27;s not just makefiles, in fact I would guess that the reason makefiles use tabs is because there is a historical preference for tabs in C programmers (just a wild guess really).  Various C style guides mandate the use of tabs for indentation (and spaces for alignment), for example FreeBSD&#x27;s Kernel Normal Form Style[0] (which is really an older standard going back to how K&amp;R formatted the code), I think other BSD&#x27;s use a simmilar style, and Linux kernel coding style[1].<p>I&#x27;m not old enough to know personally, but I have a feeling tabs were preferred in the old days in general at least on Unix platforms.  Some of that sentiment might have spilled over into Go.<p>[0]: <a href="https:&#x2F;&#x2F;www.freebsd.org&#x2F;cgi&#x2F;man.cgi?query=style&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+10.2-RELEASE&amp;arch=default&amp;format=html" rel="nofollow">https:&#x2F;&#x2F;www.freebsd.org&#x2F;cgi&#x2F;man.cgi?query=style&amp;apropos=0&amp;se...</a><p>[1]: <a href="https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;Documentation&#x2F;CodingStyle" rel="nofollow">https:&#x2F;&#x2F;www.kernel.org&#x2F;doc&#x2F;Documentation&#x2F;CodingStyle</a>