当前位置: 首页 > 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.gsyq.cn/news/1475822.html

相关文章:

  • [鸿蒙PC命令行移植适配]移植rust三方库peep到鸿蒙PC的完整实践
  • AI写论文的秘密武器!4款AI论文生成神器,让你的论文写作更高效!
  • 【PC】SPlayer-高颜值免费音乐软件-畅听全网
  • MIFARE Classic Tool终极指南:用手机轻松管理你的NFC门禁卡
  • 寄快递行李哪个比较便宜?寄大件行李怎么省钱 便宜快递怎么选 - 不再彷徨啊
  • AI写论文大比拼!4款AI论文生成工具,哪款才是你的心头好?
  • 复解析互易律与Gysin映射在复几何中的应用
  • JASP统计分析软件:免费开源的贝叶斯与频率统计完整解决方案
  • 从‘芯’认识运放:TI/ADI常见型号选型指南与典型应用电路解析
  • 食品伙伴网实验室信息管理系统(LIMS)如何定制自己的管理系统
  • 利用快马平台快速生成php免费安装包部署原型,三步搭建开发环境
  • 手把手教你用CD4518和74LS00在实验箱上搭一个电子钟(附Proteus仿真文件)
  • 【CSDN AI数字营销分发权威指南】:3大必绑平台+2类未绑定导致流量归零的致命错误,你中招了吗?
  • 服务器风扇转速越高,散热就越好吗?
  • STM32 RTC实时时钟配置指南:从原理到实践,实现精准计时与断电保持
  • 3步解锁学术论文PDF:Unpaywall浏览器扩展实战指南
  • 2026靠谱的装修公司怎么样?深度解读金螳螂 - 资讯速览
  • SQL基础学习--《SQL必知必会第5版》第二章 数据检索
  • 工业级AR眼镜硬件设计:物流场景下的可靠性、舒适性与成本平衡
  • 终极指南:如何免费扩展qBittorrent搜索功能,打造全能下载体验
  • Digital数字电路设计工具:从零开始掌握逻辑设计的终极指南
  • Python学习之路:数据的逻辑处理——循环
  • ai辅助开发:在wsl中借助快马平台ai模型优化python数据处理脚本
  • Protel 99 SE PCB拼板全攻略:从特殊粘贴到队列粘贴的规范操作
  • 如何突破平台限制:用yuzu模拟器在PC上畅玩Switch游戏的革命性方案
  • QKeyMapper深度指南:如何通过智能按键映射提升Windows操作效率
  • 微电网协调控制系统柜的分类:按场景、功率、控制模式划分
  • Win11 X-Lite 26H1 各版本说明与完整安装技术教程
  • 新手入门linux不再难,用快马生成交互式命令行学习工具
  • 3分钟掌握WindowResizer:彻底解决Windows窗口调整难题