程序员已为一个看不见的东西争论了半个世纪
程序员关于缩进用制表符还是空格的争论持续半个多世纪,Linux之父与Python之父分别代表两派。盲人程序员对制表符的需求使其在道德上占优,最终格式化工具的出现逐渐平息了这场被称为“缩进战争”的争论。
我们先从一桩往事说起。
前阵子,微软资深老兵Raymond Chen在他的博客上,揭开了一段尘封已久的趣闻:当年微软和IBM携手开发OS/2操作系统时,双方竟为一个按键僵持不下。
在对话框里,用户按哪个键才能在输入框之间跳转?微软坚持用Tab,IBM却不认同。这场争议层层上报,整整跨越了七级管理架构,最终呈递到副总裁案头,并要求微软派出同级别的高管来做最终裁决。

微软的回应堪称经典冷幽默:“比尔·盖茨的母亲对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之父,吉多·范罗苏姆
当然,空格派也拥有顶尖高手。这边派出的代表,就是吉多·范罗苏姆。
与Linux走的是完全相反的道路,Python将缩进变成了一种语法规则。你不缩进,代码就无法运行——解释器通过数每行前面的空白字符来判断代码结构。如果团队里有人用Tab、有人用空格,程序会直接报错。

实际上,吉多早期也曾尝试推行Tab,但社区的反馈实在一言难尽。类似于终端问题,不同编辑器对Tab转换为空格的默认行为完全不同,导致代码在跨平台时立刻崩溃。
为了保全自己的声誉不被社区“群起而攻之”,他最终做出决定:所有人统一使用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年开始消失。未来,每个人都是会写需求的产品经理,代码相关的工作全交给AI Agent。

当AI帮你写代码时,它会严格遵守项目配置文件。至于缩进用什么?随你便。反正不是人类亲手敲的。
这就好比你好不容易争论清楚毛笔该用羊毫还是狼毫,结果一抬头,发现大家都改用打印机了。
也许再过二十年,“你用Tab还是空格”这个问题,也会和“羊毫还是狼毫”一样,成为古法编程时代的一项非物质文化遗产话题。
老程序员们坐在一起喝酒时,聊起当年为了一个看不见的字符差点跟同事绝交的经历,就像老木匠们聊起刨子该推还是该拉曾让他们吵得不可开交一样。
手艺依然是好手艺。只是能用到它的人,越来越少了。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
特斯拉开发Grok语音控制FSD,实现对话式自动驾驶
7月12日,一则引人关注的消息传来:与汽车进行语音交互的方式,正从“发出指令”转变为“像与驾驶员聊天”一样自然。 特斯拉将人工智能融入汽车的计划,即将迎来新的突破——让Grok聊天机器人与FSD自动驾驶系统实现深度整合。AI不仅能与用户进行自然对话,还能直接操控车辆行驶。 事情的起因是这样的。近日,
MiniMax闫俊杰放弃薪酬 5%股份激励团队和开源
MiniMax创始人闫俊杰宣布即日起不再领取薪酬,并拿出个人名下5%股份:4%用于激励团队,1%设立基金支持开源社区。此前公司因大规模限售股解禁股价大跌20%,但大股东无减持计划,创始团队已设12个月自愿禁售期。
小米首款SUV命名SkyNomad N90揭晓
小米澎程首款SUV命名为SkyNomadN90,采用全新十字大灯、封闭式前脸设计,该车定位智能可变大空间SUV,可切换为工作室、卧室等多种移动生活空间,内部研发代号为昆仑,提供五座和七座版本,并标配激光雷达系统。
Redmi Note 17 7英寸大屏8000mAh电池追剧神器
红米Note17将于7月14日发布,配备7英寸大屏与8000mAh电池,定位千元价位。大屏视野开阔,观影沉浸感强;大电池续航持久,弥补短板;延续Note系列耐用特质,填补千元大屏市场空白。
马斯克承认看错Anthropic 不会因竞争断其服务器
马斯克公开承认看走眼,称Anthropic现为AI领域领导者,驳斥“拔服务器”的竞争手段。SpaceX向Anthropic出租算力,双方合作紧密。马斯克强调不会因竞争切断服务,认可其模型实力,体现技术与商业并行的底线。
- 热门数据榜
相关攻略
2026-07-12 13:49
2026-07-12 13:48
2026-07-12 13:48
2026-07-12 13:48
2026-07-12 13:48
2026-07-12 13:48
2026-07-12 13:48
2026-07-12 13:48
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

