游乐游手机版
首页/科技数码/文章详情

程序员为一个看不见的东西争吵了半个世纪

时间:2026-06-04 12:34
从微软与IBM因Tab键争论到程序员之间长达半个世纪的Tab与空格缩进之争,Linux之父力挺8字符Tab,Python之父则推行4个空格。薪资调查显示空格党收入更高,但实为大厂规范所致。盲人程序员使Tab在道德上占优,而AI写代码或将终结这一争论。

最近,微软退役工程师 Raymond Chen 在个人博客中回忆了一段鲜为人知的往事:

当年微软与 IBM 携手开发 OS/2 操作系统时,双方曾因一个按键的触发逻辑争执不下。

在对话框界面中,用户应该按哪个键才能从一个输入框跳转到下一个?微软提议使用 Tab 键,IBM 不同意,于是矛盾层层上报,一直升到副总裁级别,对方还要求微软派遣同等职位的高管来确认方案。


微软这边的回应是:"Bill Gates's mother is not interested in the TAB key." 言下之意,比尔·盖茨上面就只剩他母亲了,难道连盖茨的母亲也要为 Tab 键专门开会吗?

仅仅一个按键,竟让两家科技巨头闹到高管对峙。

不过,和“用 Tab 切换字段”这种小摩擦相比,真正的风暴还在后面——编写代码时缩进到底该用 Tab 还是空格?

这个问题乍听起来就像“你吃饭用左手还是右手”一样无聊。但偏偏就是这件小事,全球最聪明的一群人为此争执了整整半个世纪,甚至比冯·诺依曼派与图灵派的辩论还要早。


要追溯这场代码缩进之争的源头,得从打字机说起。Tab 键最早出现在打字机上,本职工作就是替代空格完成缩进任务,避免打字员一格一格地敲击导致手腕劳损。

然而进入计算机时代,存储容量以 KB 计算。同样缩进四层,空格需要 16 个字符,而 Tab 仅需 4 个,节省下来的空间都是宝贵的资源。

因此早期终端直接将 Tab 宽度固定为 8 个字符。从 1969 年的 TOPS-10 到 1974 年的 VT52,Tab 始终保持 8 字符宽度。甚至在 ASCII 编码中,Tab 和 Space 也被明确区分为控制字符和可打印字符。老祖宗定下的规矩,不容商量。

直到 1978 年,VT100 终端首次允许用户自定义 Tab 宽度,从此麻烦接踵而至。

很快大家发现:你的 Tab 宽度是 4 个字符,我的是 8 个,他的是 2 个。你在自己电脑上排版整齐的代码,在我屏幕上打开就完全错乱,该找谁说理去?


为了应对混乱的 Tab 字符显示问题,空格党正式登场。他们的论据非常直白:“用空格,无论在什么环境下显示效果都一样。”

本来,你爱用 Tab 就用 Tab,喜欢统一就去空格,没有人会阻拦。但真正把技术分歧升级为“宗教战争”的,是两个关键人物的登场。

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


这位老兄不仅是 Tab 党,更是纯粹的原教旨主义者。Linux 内核编码规范的第一章就这样写道:

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

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

但林纳斯并非无理取闹。他的逻辑是:8 字符缩进,一行 80 个字符就满了,最多嵌套 3 层,超过 3 层就说明代码结构太差。代码缩进到第四层出现了问题,那不是 Tab 的问题,而是你的设计问题。

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


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

他和林纳斯走了完全相反的路。吉多把缩进化为了语法——你不缩进,代码就无法运行。解释器通过统计每行前面的空白字符数来判断代码结构。如果团队中有人用 Tab、有人用空格,代码立刻就会报错。


实际上,吉多早期也曾想推广 Tab,但社区反馈非常糟糕。和前面终端问题类似,不同编辑器对 Tab 转空格的默认行为完全不一致,代码一旦跨平台就直接崩溃。

因此,为了保全自己的“名声”不被社区集体攻击,他最终决定:所有人统一使用 4 个空格,严禁混用!

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


其实,双方都是为了解决代码规范问题:一方用强制的缩进深度倒逼代码架构优化,另一方用绝对的空格一致性换取跨平台安全。底层逻辑类似,但思路不同,结果也大相径庭。

再加上两位大佬的站台,就像封神榜里的元始天尊和通天教主都发了话,那还有什么可说的?

于是从上世纪末到最近几年,Tab 党和空格党就像阐教与截教一样,互不相让。

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


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

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

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


不过后来真相查明:并非用空格让你变有钱,而是有钱的公司要求你使用空格。

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

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


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

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

这倒不是因为 Tab 根正苗红,而是一群大家从未考虑过的群体——盲人程序员。

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

因此,Tab 在道德层面直接封神——空格党追求的“一致性”,本质上假设每个人都有完美视力和标准显示器,但世界上还有很多人并非如此。


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

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

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


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

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

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

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

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


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

随便。反正不是人敲的。

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

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

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

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

撰文:纳西

编辑:江江 & 面线

美编:素描

图片、资料来源:

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


来源:https://www.163.com/dy/article/KUHODT84051196HN.html
上一篇豆包官方宣布即将收费基础功能依然免费 下一篇最新谷歌Pixel 11全系机型官方壁纸高清抢先预览
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
加油站卖车 全国首座能源汽车综合服务站落地
科技数码 · 2026-06-04

加油站卖车 全国首座能源汽车综合服务站落地

广汽集团与中国石化在广东湛江遂溪建成全国首座“能源+汽车”综合服务站,推出加油站+汽车销售+维保一体化新模式,填补县域市场跨界空白,构建看车、购车、养车、加油一站式用车服务生态圈。

谷歌被曝研发至少8款Googlebook安卓本 今秋发布
科技数码 · 2026-06-04

谷歌被曝研发至少8款Googlebook安卓本 今秋发布

谷歌正在研发至少8款Googlebook安卓笔记本,计划今年秋季发布。其中4款搭载英特尔PantherLake芯片,3款采用高通骁龙X系列,1款配备联发科迅鲲Ultra芯片并支持可拆卸键盘设计。

巴菲特重仓谷歌而非英伟达的投资逻辑
科技数码 · 2026-06-04

巴菲特重仓谷歌而非英伟达的投资逻辑

伯克希尔·哈撒韦重仓谷歌而非英伟达,因其看好AI基础设施的长期价值。谷歌拥有搜索现金流、云服务和数据中心,商业模式可预测。伯克希尔认为投资“卖铲子的人”更具确定性,而非高风险的AI模型公司。

2026年WWDC最值得关注的升级与实操避坑指南
科技数码 · 2026-06-04

2026年WWDC最值得关注的升级与实操避坑指南

2026年苹果全球开发者大会预计将聚焦于人工智能与操作系统的深度融合。iOS18、iPadOS18等系统或将迎来AI原生体验的全面升级,包括更智能的Siri、系统级AI助手以及开发工具的革新。对于开发者和用户而言,了解新特性适配、隐私数据准备以及测试流程是顺利过渡的关键。

iPhone语音备忘录内置AI转写功能iOS 18起无
科技数码 · 2026-06-04

iPhone语音备忘录内置AI转写功能iOS 18起无

你是否也遇到过这样的场景——会议刚结束、课程刚刚听完、采访也收了尾,手机里却躺着一段十几分钟甚至更长的录音,亟待整理成文字? 原本想着快速转成文本,结果反复暂停、回放、快进,三十分钟的音频硬生生耗了一个多小时才逐字敲完。不少人不得不下载第三方转写工具,到头来却发现——付费门槛才是真正的绊脚石。 其实