【Tab 键引发的巨头纷争】
前段时间,微软退役老兵 Raymond Chen 在博客翻出旧事:当年微软和 IBM 合作开发 OS/2 操作系统时,因对话框里用户按哪个键从一个输入框跳到下一个起了争执。微软主张用 Tab,IBM 不同意,此事层层升级,直到副总裁级别。微软回应称 "Bill Gates's mother is not interested in the TAB key.",意思是难道比尔·盖茨他妈也要来讨论 Tab 键吗?一个按键竟让两家巨头公司闹到高管对线。
【代码缩进的世纪之争】
相比 "Tab 要不要用来切换字段",围绕代码缩进用 Tab 还是空格有更大的战争。这问题看似无聊,却让全世界最聪明的人争论了半个世纪,甚至早于冯诺依曼派和图灵派的争吵。
Tab 键最早在打字机上用于缩进,到计算机时代,因存储按 KB 计算,Tab 更省空间,早期终端将 Tab 定为 8 个字符宽。但 1978 年 VT100 终端使 Tab 宽度可自定义,导致不同电脑上代码排版混乱。于是,空格党登场,认为 "用空格,到哪儿都一样"。
【大佬站台引发的“宗教战争”】
真正将技术分歧升级为“宗教战争”的是两位大佬。Linux 之父莱纳斯·托瓦兹是 Tab 党原教旨主义者,Linux 内核编码规范规定制表符是 8 个字符,缩进也是 8 个字符。他认为 8 字符缩进可避免代码嵌套过深,若代码缩进到第四层有问题,是代码本身的问题。
Python 之父吉多·范罗苏姆则支持空格。Python 将缩进变为语法,解释器靠数空白字符判断代码结构,不同编辑器对 Tab 转空格的默认行为不同,代码跨平台易出错。最终,吉多决定所有人用 4 个空格,不许混用,其制定的 PEP 8 成了 Python 宪法,空格成为 Python 党的绝对信仰。
【现实案例与薪资差异】
这种争论在现实中有诸多体现。如在 HBO 神剧《硅谷》里,男主因女友用空格而崩溃。2017 年,Stack Overflow 的数据科学家分析几十万份数据后发现,用空格的程序员平均薪资比用 Tab 的高 8.6%,此事还上了 BBC。但后来查明,是有钱的公司要求用空格,因为在大厂协作的代码库里,空格的“绝对一致性”更省心。
【道德层面与技术改进】
虽然这场争论未分出胜负,但 Tab 党在道德上占据上风,因为盲人程序员用 Tab 更方便,空格缩进会浪费盲文面板空间。不过,空格党可通过适配插件解决问题。随着 2017 年 EditorConfig、Prettier 等格式化工具的出现,这些争论逐渐平息,这些工具默认不用 Tab,但也支持,采用 Tab 缩进、空格对齐的 SmartTabs 思路。
【AI 时代的终结】
缩进方式本质代表工程环境的成熟度。随着 AI 时代的到来,2026 年,Claude Code 的创造者鲍里斯·切尔尼称公司已无手写代码,并预言“软件工程师”头衔将开始消失。当 AI 写代码时,遵守项目配置文件,缩进方式变得无关紧要。也许再过二十年,“你用 Tab 还是空格”会成为古法编程时代的非遗谈资。