使用空格键比用 Tab 键的程序员挣得多,原因是…

Stack Overflow 2017开发者调查数据分析表明,使用空格键的程序员比用Tab键的薪水高8.6%。无论是在国外,还是其它国家和地区,无一例外。我这儿有一段代码出了问题,它碰巧用了Tab键来缩进,但是30年来,我一直被告知要“慎用”Tab键……

最近,我们在网站上发布了Thomas (Tommy) Gartlan的一篇文章,文章发布后看起来有点问题:某处的代码缩进不见了,影响了可读性。

这让我有点窘,因为我总是苦口婆心地教导我那些可怜的学生们写代码的时候要注意缩进,不要怕麻烦,这样可读性才好。

说真的我有点惊讶,因为在编辑文章时,这段代码看起来很好。我回去检查,发现确实出问题了。

使用空格键比用 Tab 键的程序员挣得多,原因是…_第1张图片
图片发自App


这段代码本来是有缩进的,现在没了

我一边郁闷,一边动手重新缩进所有内容并在内容管理系统(CMS)中保存,然后我在浏览器中打开改好的版本,发现缩进又不见了。

然后我去检查另一篇文章的代码。结果一样,这让我很失望。


使用空格键比用 Tab 键的程序员挣得多,原因是…_第2张图片
图片发自App


结果一样,我真是欲哭无泪

接下来只能在CMS文件中找原因了,这次查看原始HTML代码。我希望只是漏了

 标签,它是用来保留多余空格的。但是标签并没有漏,到底是什么原因让空格不见了?此时此刻,我的IT同事还在查看这个问题。

上面显示的那段代码原本是这样的。


使用空格键比用 Tab 键的程序员挣得多,原因是…_第3张图片
图片发自App


这段代码本来缩进了4个空格

好吧,这些都不是我今天想说的重点。在查找问题的过程中,我知道了Tommy是用Tab键来实现缩进的。输入代码时使用Tab键确实比较省事,但是30年来,我一直被告知要“慎用”Tab键,因为不同的系统可能用不同的方式解释它们。

一个系统可能认为Tab代表四个空格,另一个系统则可能被设置为代表八个空格。但如果总是使用空格来缩进,就永远不会有歧义。我把这些告诉了Tommy,他回复说:“我得承认,我以前从没听说过不要使用Tab键。使用Tab键缩进很容易,但我们确实遇到了麻烦。一些IDE工具会自动执行缩进,因此检查它们是使用Tab键还是空格键十分有趣。”

前不久,Barr Group向我介绍了嵌入式C语言编码规范。Michael Barr及其同事创建此规范最主要的原因是为了减少嵌入式软件(即固件)中的错误个数,包括由维护人员添加或修改的代码。

规范中有两点让我印象深刻:

1.缩进时始终使用空格键,不要用Tab键;

2.最佳缩进是四个空格。

当然,我向Tommy介绍了Barr Group的编码规范之后,他这样回答:

“我现在肯定只用空格键了,因为使用空格键的人会比使用 Tab 键的人水平更高 ......我可不是开玩笑!”

什么!真的吗?这个我倒是从未听说过。Tommy为了证明他没有瞎说,让我到StackOverflow.blog上看调查报告。这真是太有趣啦。

既然看完了,顺手点击右上角麻烦转发出去吧。

你可能感兴趣的:(使用空格键比用 Tab 键的程序员挣得多,原因是…)