菜鸟AI - 让提示词生成更简单! 全站导航 全站导航
AI工具安装 新手教程 进阶教程 辅助资源 AI提示词 热点资讯 技术资讯 产业资讯 内容生成 模型技术 AI信息库

已有账号?

首页 > 资讯 > 程序员世纪争论排行榜:空格与制表符谁更优?
其他资讯 空格 程序员世纪争论排行榜

程序员世纪争论排行榜:空格与制表符谁更优?

2026-06-04
阅读 0
热度 0
作者 菜鸟AI编辑部
摘要

摘要

从微软与IBM因Tab键争论到程序员之间长达半个世纪的Tab与空格缩进之争,Linux之父力挺8字符

不久前,微软资深老兵Raymond Chen在个人博客里挖出了一桩陈年往事:

当年微软与IBM联手开发OS/2操作系统时,双方为了一个按键争执不下。

对话框里,用户该按哪个键才能从一个输入框跳到下一个?微软坚持用Tab,IBM不同意,于是层层上报,一直报到副总裁,并要求微软也派出对等高管确认。


微软这边回了一句:“Bill Gates's mother is not interested in the TAB key.” 意思是比尔·盖茨上面只剩他妈了,难道他妈也得来讨论Tab键吗?

一个按键而已,竟让两家巨头闹到高管直接对线。

但话说回来,跟“用Tab切换字段”这种小摩擦相比,真正的大战还在后头——写代码缩进,到底该用Tab还是空格?

这问题听起来就像“你吃饭用左手还是右手”一样无聊。然而,就为这么个破事,全球最聪明的一帮人,硬是撕了整整半个世纪。甚至比冯·诺依曼派和图灵派的争论还早。


要追溯这场战争的根源,得从打字机说起。Tab键最初就在打字机上,本职就是替空格干缩进的活,省得打字员一格一格戳到手腕报废。

但到了计算机时代,存储按KB来算。同样缩进4层,空格要16个字符,Tab只要4个,省出来的全是实打实的成本。

所以早期终端直接把Tab固定为8个字符宽。从1969年的TOPS-10到1974年的VT52,Tab永远是8字符宽。甚至在ASCII中,Tab和Space也被截然区分:一个是控制字符,另一个是可打印字符。老祖宗定的规矩,没得商量。

直到1978年,VT100终端让Tab宽度第一次变得可自定义,这下麻烦来了。

大家很快发现:你的Tab是4字符宽,我的是8个,他的是2个。你电脑上排好的代码,到我屏幕上一打开就全乱,找谁说理去?


所以为了应对混乱的Tab字符,空格党正式登场。他们的论据简单直接:“用空格,到哪儿都一样。”

本来嘛,你乐意用Tab就用,喜欢到哪儿都一样就用空格,也没人拦着。但真正把技术分歧升级成宗教战争的,是因为两个男人的登场。

第一位选手,就是大名鼎鼎的Linux之父:莱纳斯·托瓦兹。


这老小子不仅是Tab党,而且是纯粹的原教旨主义者。Linux内核编码规范第一章就这么写的:

“制表符是8个字符,因此缩进也是8个字符。有些异端运动试图将缩进设为4个甚至2个字符深,这无异于试图将圆周率定义为3。”

这口气,简直恨不得亲自开飞机去撞空格党的大楼。

但人家倒也不是在耍流氓。他的逻辑是:8字符缩进,一行80个字符就满了,你最多嵌套3层,超过3层说明代码写烂了。代码缩进到第四层出了问题,那不是Tab的问题,是你的问题。

所以有句名言至今流传:“如果你的代码需要超过3层缩进,那你已经完蛋了,去修你的程序吧。”


但空格党这边,也有一位重量级选手——Python之父,吉多·范罗苏姆。

跟Linus走的完全是相反的路。他把缩进变成了一种语法——你不缩进,代码就跑不了。解释器靠数你每行前面有几个空白字符来判断代码结构。如果团队里有人用Tab有人用空格,那代码直接就报错。


实际上,吉多早期也想推Tab,但社区反馈实在一言难尽。跟前面的终端问题类似,不同编辑器对Tab转空格的默认行为完全不一样,代码一跨平台就直接炸了。

所以为了保全自己的“户口本”不被社区AOE,他最终决定:所有人全部用4个空格,不许混用!

紧接着他制定的PEP 8就成了Python的“宪法”,空格也成了Python党的绝对信仰。


其实吧,大家都是为了解决代码问题:一个用暴力缩进倒逼代码架构,一个用绝对空格换取跨平台安全。底层逻辑差不多,但思路不同,结果就大有不同。

再加上两方大佬站台,就跟封神榜似的。元始天尊和通天教主都发话了,那还说啥了。

于是从上世纪末到最近几年,这Tab党和空格党就跟阐教截教一样,互殴不止。

举个例子,在HBO神剧《硅谷》里,男主发现女朋友用空格,当场崩溃冲出家门,破口大骂:“我绝不可能和一个用空格代替制表符的人在一起。”


啧,剧组技术顾问是Google的开源总监,这段灵感还真就来自程序员的真实吐槽。

还有2017年,Stack Overflow的数据科学家也是看热闹不嫌事大,直接公开“拱火”:分析了几十万份数据后发现,用空格的程序员平均薪资比用Tab的高8.6%。这事还上了BBC。

空格党你们怎么还搞薪资歧视啊喂!职场霸凌!


不过后来真相查明,不是用空格让你变有钱了,而是有钱的公司逼你用空格。

因为高薪群体大多供职于工程规范严格的大厂,在几百人协作的代码库里,空格的“绝对一致性”确实最省心。

说白了,缩进方式本质上是个变量,代表的不是编程能力,而是你所处的工程环境有多成熟。


那么讲到这,最后空格党和Tab党到底谁赢了呢?

直接说结论:虽然没分出胜负,但Tab党在道德上占据了上风。

这倒不是因为它根正苗红,而是一群大家压根没想过的人——盲人程序员。

盲人靠盲文显示器写代码。盲文面板通常只有40个字符格,4空格缩进嵌套3层就是12格,30%的物理空间就浪费在空白上,手指摸一圈发现没摸到多少代码内容。而Tab一层只占一格,3层嵌套就3格。

所以这下,Tab在道德层面直接封神了——空格党追求的“一致性”,本质上假设每个人都有完美视力和标准显示器,但世界上还有很多人不是这样的。


不过空格党也没有就此投降——装个适配插件就能折叠空格缩进,技术问题终归可以用技术解决。

同样地,随着2017年EditorConfig、Prettier这类格式化工具的出现,这些手工敲代码的争论也逐渐被技术改进平息。这些工具默认不用Tab,但也支持,并且会用Tab缩进、空格对齐的SmartTabs思路。

所以空格还是Tab,越来越变成了一种文化上的身份认同。


弗洛伊德1917年提出过一个概念,叫“微小差异的自恋”。说的是两个群体越相似,越会对彼此一丁点不同的地方抓狂。所有程序员面对的压力几乎一样:改不完的需求、查不尽的Bug、半夜三点的报警、发际线曲线高度重合。正因为太像了,才需要找一个微小差异来证明——“我跟你不一样”。

无论是简约头像还是动漫头像,格子衫还是女装,Tab还是空格,这都早已不是工程决策了,本质上是极客世界里的部落图腾。

这种古已有之的争论,靠人类自己,是永远分不出胜负的。

但随着AI时代的到来,分不分其实也没什么意义了。

2026年,Claude Code的创造者鲍里斯·切尔尼说:“我们公司已经没有任何手写代码了”,并预言“软件工程师”这个头衔,2026年就会开始消失。以后每个人都是会写需求的产品经理,代码的事儿交给Agent。


当AI帮你写代码的时候,它遵守的是项目配置文件。至于缩进用什么?

随便。反正不是人敲的。

这好比你费了半天劲争论毛笔该用羊毫还是狼毫,结果抬头一看,大家都用打印机了。

也许再过二十年,“你用Tab还是空格”也会和“羊毫还是狼毫”一样,成为古法编程时代的非遗谈资。

老程序员们坐在一起喝酒,聊起当年为了一个看不见的字符差点跟同事绝交,就像老木匠聊起刨子该推还是该拉,吵得不可开交。

手艺还是好手艺。只是用得上的人,越来越少了。

撰文:纳西

编辑:江江 & 面线

美编:素描

图片、资料来源:

the register,Github等,部分图源网络


来源:互联网

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

同类文章推荐

相关文章推荐

更多