#Tab党和空格党吵了半个世纪# 今天给差友们讲一个意想不到的对线:写代码的时候,缩进到底该用Tab,还是用空格?就这么个破事儿,全世界最聪明的一帮人,为它撕了整整半个世纪。甚至比冯诺依曼派和图灵派的吵吵还要早。
因为这事儿,得从打字机说起。Tab键最早在打字机上就有了,本职就是替空格干缩进的活。到了计算机时代,存储是按KB的。同样缩进4层,空格要16个字符,Tab只要4个,省出来的全是白花花的银子。所以早期终端直接把Tab定成8个字符宽。
直到1978年,VT100终端把Tab宽度第一次变成了可以自定义的,这下坏了。你的Tab是4个字符宽,我的是8个,他的是2个。你电脑上排好的代码,到我屏幕上一开就全乱了,那找谁说理去?所以为了应对混乱的Tab字符,空格党正式登上了舞台。
但像鼎鼎大名的Linux之父:莱纳斯·托瓦兹,是纯纯的原教旨主义者,忠诚的Tab党。Linux内核编码规范的第一章,就是这么写的:"制表符是8个字符,因此缩进也是8个字符。有些异端运动试图将缩进设为4个甚至2个字符深,这无异于试图将圆周率定义为3。"
但问题是,空格党也有高手。这边派出的就是:Python之父,吉多·范罗苏姆。Python把缩进变成了一种语法,你不缩进,代码就跑不了,因为解释器靠数你每行前面有几个空白字符来判断代码结构。他决定:所有人全部用4个空格,不许混用!紧接着他制定的PEP 8也成了Python宪法,空格也就成了Python党的绝对信仰。
元始天尊通天教主都发话了,那还说啥了。于是从上世纪末开始,tab党和空格党就常年互殴。虽然没分出胜负,但由于盲人程序员使用的盲文显示器通常只有40个字符格,4空格缩进嵌套3层就是12格,而Tab一层只占一格,3层嵌套就3格。Tab在道德层面就直接封神了。当然空格党也没有因此投降,毕竟装个适配插件就能折叠空格缩进的事。
不过AI来了,AI帮你写代码的时候,它遵守的是项目配置文件。至于缩进用什么?随便。这好比你费了半天劲争论毛笔该用羊毫还是狼毫,结果抬头一看,大家都用打印机了。或许"你用Tab还是空格"将成为古法编程时代的非遗谈资。








