广告

使用空格键比用Tab键的程序员挣得多?!原因在这……

时间:2018-09-25 作者:Max Maxfield 阅读:
Stack Overflow 2017开发者调查数据分析表明,使用空格键的程序员比用Tab键的薪水高8.6%。无论是在美国、印度、英国、德国、加拿大,还是其它国家和地区,无一例外。我这儿有一段代码出了问题,它碰巧用了Tab键来缩进,但是30年来,我一直被告知要“慎用”Tab键……

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

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

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

Space-Tab-F1.gif
这段代码本来是有缩进的,现在没了(来源:Max Maxfield)

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

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

Space-Tab-F2.gif
结果一样,我真是欲哭无泪!(来源:Max Maxfield)

接下来只能在CMS文件中找原因了,这次查看原始HTML代码。我希望只是漏了<pre>和</ pre>标签,它是用来保留多余空格的。但是标签并没有漏,到底是什么原因让空格不见了?此时此刻,我的IT同事还在查看这个问题。上面显示的那段代码原本是这样的:

Space-Tab-F3.gif
这段代码本来缩进了4个空格(来源:Max Maxfield)

好吧,这些都不是我今天想说的重点。在查找问题的过程中,我知道了Tommy是用Tab键来实现缩进的。输入代码时使用Tab键确实比较省事,但是30年来,我一直被告知要“慎用”Tab键,因为不同的系统可能用不同的方式解释它们。一个系统可能认为Tab代表四个空格,另一个系统则可能被设置为代表八个空格。但如果总是使用空格来缩进,就永远不会有歧义。我把这些告诉了Tommy,他回复说:

“我得承认,我以前从没听说过不要使用Tab键。使用Tab键缩进很容易,但我们确实遇到了麻烦。一些IDE工具会自动执行缩进,因此检查它们是使用Tab键还是空格键十分有趣。”

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

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

(a)缩进时始终使用空格键,不要用Tab键;
(b)最佳缩进是四个空格。

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

“我现在肯定只用空格键了,因为使用空格键的人会赚更多钱......我可不是开玩笑!”

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

这真是太有趣啦。

在Stack Overflow的2017开发者调查中,共有64,000多名受访者,其中28,657位“职业程序员”对这个“空格与Tab”问题进行了回答,又有12,426位对他们的薪水情况进行了回答。

其中40.7%使用Tab,41.8%使用空格,而剩下的17.5%两者都用。偏爱空格与偏爱Tab的人数几乎完全相同,这很有意思,但如果你看一看他们的薪水,就更有趣了:使用空格进行缩进的程序人员比使用Tab的人挣得多,即使他们的工作经验完全一样。

说得更具体一点,“使用空格键的程序员比使用Tab键的工资高8.6%,”换句话说,“这相当于一个多2.4年工作经验的程序员高出的薪水。”

Space-Tab-F4.png

下图表明,无论是在美国、印度、英国、德国、加拿大,还是其它国家和地区,都是如此。

Space-Tab-F5.png

针对这一调查结果,美国的程序员们反应热烈,纷纷发表了自己的观点。

@ Rick Curl
哇! 这个以前谁知道?以后我不要求加薪了,只要在代码中多插入空格就行了!

@ Elizabeth Simon
但是用Tab键更方便......因为在增加和删除缩进时按键次数少。

必须承认,我来自从前的老学校,那时Tab键统领天下(我开始学的是汇编语言),但是如果使用空格更赚钱的话,我准备改了,哈哈。

当然,我最喜欢的编辑器(Notepad ++)是使用Tab进行自动缩进的,所以改起来可能有点儿难.... ....

@ Sean Ellis
要么使用Tab键,要么使用空格键,想通过按Tab键来得到4个空格可不太好。如果输入错误并按“backspace”键来删除,你确定所有4个空格都删除了? 而大多数自动完成机制比这还糟。

(原文发表于ASPENCORE旗下EDN姐妹社区EEWeb,参考链接:Spaces vs. Tabs? Coders Who Use Spaces Make More Money!;Jenny Liao编译)

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
相关新闻
广告
广告
广告
广告