当前位置: 首页 > news >正文

Tab 键之争:从微软 IBM 到程序员群体,半个世纪的代码缩进战争!

【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 还是空格”会成为古法编程时代的非遗谈资。

http://www.jsqmd.com/news/964133/

相关文章:

  • 别再为天线匹配头疼了!用HFSS仿真耦合馈电圆极化天线,手把手教你避开传统馈电的坑
  • 建议收藏|一键生成论文工具测评:2026最新好用工具推荐与对比
  • [鸿蒙PC命令行移植适配]移植rust三方库peep到鸿蒙PC的完整实践
  • 免费绕过iOS 15-16激活锁的终极指南:applera1n让你的iPhone重获新生
  • QQ截图独立版:3个隐藏技巧让你的Windows效率飙升300%
  • 中国电子学会图形化2022.6月Scratch三级考级题
  • 如何完整备份你的QQ空间:GetQzonehistory终极指南
  • 如何通过智能辅助工具全面提升英雄联盟游戏体验:League Akari完整指南
  • C# 文件级 using(global using)
  • AI写论文大比拼!4款AI论文生成工具,哪款才是你的心头好?
  • AI写论文的秘密武器!4款AI论文生成神器,让你的论文写作更高效!
  • 寄快递行李哪个比较便宜?寄大件行李怎么省钱 便宜快递怎么选 - 不再彷徨啊
  • MIFARE Classic Tool终极指南:用手机轻松管理你的NFC门禁卡
  • 高端制造行业晶圆制造技术岗工艺整合工程师晋升CTO的路径
  • 一张卡片撬动万级私域流量?CSDN官方AI引流系统架构图首度流出(含CDN调度链路与CTR提升17.3%的关键节点)
  • 【PC】SPlayer-高颜值免费音乐软件-畅听全网
  • ESP32 TCP通信保姆级教程:从Socket创建到数据收发,手把手带你跑通第一个网络例程
  • GEO监测工具选哪个?搜极星、GEO探针、AllrightTOP、AiSaysTOP横向对比
  • 手把手教你爬取贝壳找房新房楼盘数据:动态加载破解与反爬虫实战
  • 采购岗位全解析:从Sourcing到Buyer,供应链管理的职能细分与职业发展
  • 2026实力之选:市政清洗吸污车/化粪池清理车/下水道疏通吸污车/工地泥浆转运车等源头工厂实力解析 - 品牌企业推荐师(官方)
  • JASP统计分析软件:免费开源的贝叶斯与频率统计完整解决方案
  • 告别臃肿系统软件:GHelper如何用50MB内存为华硕笔记本带来极致性能控制体验
  • 复解析互易律与Gysin映射在复几何中的应用
  • 5分钟掌握录播姬:开源直播录制工具的完整使用指南
  • 食品伙伴网实验室信息管理系统(LIMS)如何定制自己的管理系统
  • 从‘芯’认识运放:TI/ADI常见型号选型指南与典型应用电路解析
  • 风场光伏光缆分缆测损,DM-40A 光通信综合测试仪高效运维
  • kanzi中动画的使用--让属性动起来
  • 多语言模型知识遗忘技术:原理、挑战与实践