因为一个看不见的东西 程序员吵了半个世纪
时间:2026-06-04 | 作者: | 阅读:0前段时间,微软退役老兵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之父,吉多·范罗苏姆。
和Linux相比,这哥们就走了完全相反的路,Python把缩进变成了一种语法。
你不缩进,代码就跑不了,因为解释器靠数你每行前面有几个空白字符来判断代码结构,如果团队里有人用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还是空格"也会和"羊毫还是狼毫"一样,成为古法编程时代的非遗谈资。
老程序员们坐在一起喝酒,聊起当年为了一个看不见的字符差点跟同事绝交,就像老木匠聊起刨子该推还是该拉吵得不可开交。
手艺还是好手艺。只是用得上的人,越来越少了。
来源:https://news.mydrivers.com/1/1127/1127114.htm
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- 月薪13.2万断层领先!北京渗透率30% 2026春招最疯赛道浮出水面
- 时间:2026-05-14
-
- 36岁程序员每天盯屏超12小时:误把青光眼当视疲劳 视野缩成管状
- 时间:2026-04-29
-
- 成都程序员自研车辆违章自动举报程序 AI识别车牌自动上传引热议:本人回应
- 时间:2026-03-12
-
- Dify女装程序员火了!网友:乍一看是女的 开口直接没绷住
- 时间:2026-01-28
-
- 硅谷祛眼袋、海淀求嫩肤:大厂中年男程序员被曝医美热潮
- 时间:2025-11-08
-
- 底层程序员末日来了!黄仁勋:无法再靠“手写代码”混下去
- 时间:2025-07-27
-
- 程序员为了打赏游戏主播 盗空了公司158台平板电脑
- 时间:2025-05-08
-
- 35岁脑干出血程序员发声:大家累了就歇歇 我是前车之鉴
- 时间:2025-04-24
精选合集
更多大家都在玩
大家都在看
更多-
- 蓝宝石显卡海外版支持查询指南
- 时间:2026-06-03
-
- 优派显示器切换HDR显示模式的方法
- 时间:2026-06-03
-
- 惠而浦空调F6故障码是否引发跳停机
- 时间:2026-06-03
-
- 三国志王道天下地形机制详解
- 时间:2026-06-03
-
- OPPO Reno4手机截屏后编辑功能设置方法完整步骤教程
- 时间:2026-06-03
-
- 华硕主板BIOS设置保存失败原因与解决
- 时间:2026-06-03
-
- vivo手机实拍对焦快不快?真实实测告诉你答案
- 时间:2026-06-03
-
- 曙光纪元手游礼包码大全
- 时间:2026-06-03












