本帖最后由 攻城狮 于 2016-11-4 10:39 编辑

对齐代码时,该用 Tab ,还是空格。这个话题,就像浏览器和操作系统之战,也是能让程序员争辩很久的。甚至还动粗,比如下面漫画。

居然还有人用 3 个空格来对齐代码 1

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 1


Uku Pattak 最近分析了 GitHub 上多种语言的热门项目(star 数量高的),下面摘编其分析结果

(2016 年,谷歌程序员 Felipe Hoffa 分析了 10 亿份代码。详情请看敏捷大拇指这个帖子。)




1、C 语言

分析了 371 个热门项目,结果:

居然还有人用 3 个空格来对齐代码 2

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 2


  • 32.08% 用 Tab
  • 35.31% 用 4 个空格
  • 26.15% 用 2 个
  • 4.31% 用 3 个
  • 2.16% 用 8 个





2、C++

分析了 248 个热门项目,结果:

居然还有人用 3 个空格来对齐代码 3

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 3


  • 20.56% 用 Tab
  • 39.11% 用 4 个空格
  • 38.71% 用 2 个
  • 1.61% 用 3 个





3、CSS

分析了 357 个热门项目,结果:

居然还有人用 3 个空格来对齐代码 4

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 4


  • 19.89% 用 Tab
  • 71.71% 用 2 个空格
  • 8.4% 用 4 个空格





4、Go

分析了 238 个项目,结果:

居然还有人用 3 个空格来对齐代码 5

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 5


  • 98.32% 用 Tab
  • 0.84% 用 2 个空格
  • 0.84% 用 4 个





5、Groovy

分析了 110 个项目,结果:

居然还有人用 3 个空格来对齐代码 6

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 6


  • 8.18% 用 Tab
  • 17.27% 用 2 个空格
  • 74.55% 用 4 个





6、Haskell

分析了 308 个项目,结果:

居然还有人用 3 个空格来对齐代码 7

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 7


  • 1.62% 用 Tab
  • 61.69% 用 2 个空格
  • 36.69% 用 4 个





7、Java

分析了 293 个项目,结果:

居然还有人用 3 个空格来对齐代码 8

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 8


  • 11.6% 用 Tab
  • 23.21% 用 2 个空格
  • 65.19% 用 4 个





8、JavaScript

分析了 317 个项目,结果:

居然还有人用 3 个空格来对齐代码 9

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 9


  • 13.25% 用 Tab
  • 59.94% 用 2 个空格
  • 26.81% 用 4 个





9、PHP

分析了 408 个项目,结果:

居然还有人用 3 个空格来对齐代码 10

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 10


  • 28.68% 用 Tab
  • 6.12% 用 2 个空格
  • 65.2% 用 4 个





10、Python

分析了 234 个项目,结果:

居然还有人用 3 个空格来对齐代码 11

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 11


  • 2.99% 用 Tab
  • 5.13% 用 2 个空格
  • 91.88% 用 4 个





11、Ruby

分析了 489 个项目,结果:

居然还有人用 3 个空格来对齐代码 12

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 12


  • 0% 用 Tab
  • 100% 用 2 个空格
  • 0% 用 4 个





12、Scala

分析了 220 个项目,结果:

居然还有人用 3 个空格来对齐代码 13

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 13


  • 0% 用 Tab
  • 98.64% 用 2 个空格
  • 1.36% 用 4 个





13、Shell

分析了 288 个项目,结果:

居然还有人用 3 个空格来对齐代码 14

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 14


  • 21.88% 用 Tab
  • 48.26% 用 2 个空格
  • 28.82% 用 4 个
  • 0.35% 用 3 个
  • 0.69% 用 8 个





14、Swift

分析了 88 个项目,结果:

居然还有人用 3 个空格来对齐代码 15

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 15


  • 5.68% 用 Tab
  • 11.36% 用 2 个空格
  • 82.95% 用 4 个





15、国内的情况:

2015年12月28日,我们发了一个投票。截至发稿时为止,结果如下:

居然还有人用 3 个空格来对齐代码 16

居然还有人用 3 个空格来对齐代码?Swift等14门语言对齐统计 - 敏捷大拇指 - 居然还有人用 3 个空格来对齐代码 16





2016 年,谷歌程序员 Felipe Hoffa 分析了 10 亿份代码。详情请看敏捷大拇指这个帖子




最后有 2 个小问题:

1. 对齐代码时,你是用 Tab,还是空格?
2. 那些用 3 个空格的,是肿么回事?大家来猜猜。




转自:伯乐在线