使用空格缩进的开发者比使用制表符的赚更多钱?

2017年06月16日

您使用制表符还是空格进行代码缩进?

这是软件开发者之间的一场“圣战”,也是许多辩论和笑话的主题。有些人会认为无论使用哪种方式都不是特别重要,但今天 Stack Overflow 发布的一份数据可能会改变你的看法了,这份 Stack Overflow 2017 开发者调查原始数据背后的分析表明,这个简单的选择可能比很多人想象中的重要。

使用空格比使用制表符赚更多钱

有 28,657 名调查对象为使用 Tab 还是 Space 这个问题提供了答案,他们都自认为是专业的开发者。在这个群体中,40.7% 使用制表符,41.8% 使用空格(17.5% 两者都使用)。其中,有 12,426 名调查对象提供了自己工资。

分析这些数据得出了一个有趣的结论:使用空格进行缩进的程序员比使用制表符的赚更多的钱,即使他们拥有相同的经验。

实际上,使用空格缩进的开发者的工资中位数为 $59,140,而使用制表符的为 $43,750(所有结果均已转换为美元)。

这是一个有趣的结果,当然这并不是决定性的因素。例如,可能人均 GDP 低的国家的开发者更有可能使用制表符,因此使用制表符的平均工资就会较低了。

我们可以检验这个结果是否出现在每个国家,看看受访调查最多的几个国家。

可以看到,这个差距在欧洲较小,但在印度却是尤其的大,不过在每个国家确实都有这种现象,所以这不是唯一的混淆因素。

不过我们也知道不同类型的开发者通常使用不同的缩进(例如 Devops 开发者更多可能使用空格而移动开发者则更有可能使用制表符),因为他们往往使用不同的编辑器和语言。此次的调查都问及了每个受访者使用的编程语言(Python,JavaScript 等)以及他们是什么类型的“开发者”(Web 开发者,嵌入式开发者等)。

那么这个组里面是否有着同样的差距?

是的,这里同样存在。那如果我们对比所有可能影响工资的因素,看看制表符/空格的选择有多大的影响?

为了回答这个问题,我们选择线性回归,基于以下因素预测工资:

制表符 vs 空格
国家
多年的编程经验
开发者类型和语言
正规教育水平(例如学士,硕士,博士学位)
他们是否为开源做出了贡献
他们是否只是将编程作为作为一个兴趣
公司规模

该模型估计,使用空格而不是制表符导致薪水升高 8.6%(置信区间(6%, 10.4%),,p值< 10^-10)。

我们无法确定我们已经控制了数据集中存在的所有混淆因素。所以,如果您是数据科学家,统计学家或分析师,我建议您下载原始调查数据并自行检查。

but,为了提升自己的薪水,是否考虑表明自己是一个“空格党”呢?

来自:Stack Overflow Blog

>>>【评论有礼】6月6日-30日评论每日更新的“新闻资讯和软件更新资讯”,评论点赞数超过 20 的可登上每周更新的“源资讯”和“软件周刊”两大栏目,点赞数超过 50 的还将获得 5 活跃积分奖励和开源中国定制好礼。详情

展开阅读全文
7 收藏
分享
加载中
精彩评论
滚蛋
2017-06-16 08:15
37
举报
空格敲4下,老板觉得你一天到晚在哪噼里啪啦的敲代码,就给你涨工资了
2017-06-16 08:46
18
举报
使用空格,目的是为了让任何人在使用任何编辑器下查看的效果完全相同。
2017-06-16 09:46
9
举报
fy0

引用来自“linzuk”的评论

空格敲4下,老板觉得你一天到晚在哪噼里啪啦的敲代码,就给你涨工资了
难道会有敲四下空格而不是设置TAB自动转空格的人吗?
2017-06-16 12:16
7
举报
rz
这么说,我加工资有希望了?
2017-06-16 08:31
4
举报
最新评论 (66)
首先,空格和制表符的确很重要, 其次,我认为结局如何使编辑器帮我们干的事. 而不是开发者维护的.
更好的统计师从开发者完成的软件角度考虑.
2018-09-15 20:48
0
回复
举报

引用来自“一剑倾城”的评论

PiedPiper的Richard表示不服!

引用来自“rwecho007”的评论

😏 Richard 公司还没开起来.被他鄙视的 空格党女朋友看起来比他有钱啊.
快了快了😎
2017-06-20 21:08
0
回复
举报

引用来自“肖特基在漏电”的评论

linux内核强制用tab缩进是逼着大家当穷鬼。
Linux/PHP/MySQL源码用1个制表符缩进.
Apache/Nginx用4个空格进行缩进.
SQLite源码用2个空格进行缩进.
2017-06-17 16:35
0
回复
举报

引用来自“红薯”的评论

滚蛋
@红薯 编辑被炒了?
2017-06-17 14:38
0
回复
举报
linux内核强制用tab缩进是逼着大家当穷鬼。
2017-06-17 08:02
2
回复
举报
visual studio自动的路过
2017-06-17 01:54
0
回复
举报

引用来自“talent-tan”的评论

华为编程规范明确规定,只允许用空格作为缩进,原因是tab在不同编辑器下显示效果不一样。
gofmt使用制表符tab进行缩进来格式化代码.
golang强制要求大括号{不能换行. 看来golang要逼死某些强迫症患者.
看来华为内部肯定不会用go啦,哈哈.

不过话说,基本是个代码编辑器都应该能设置一个tab制表符显示的宽度的吧.
比如我用的Geany,一个tab制表符,默认宽度就是4个空格的宽度,并且可以配置.
2017-06-17 00:08
0
回复
举报

引用来自“chunquedong”的评论

Both是什么意思?
应该是说,反正我按tab键和回车,编辑器给我缩进就好,我才不管它到底是1个制表符还是4个空格.
2017-06-17 00:04
0
回复
举报

引用来自“局长”的评论

调查发现使用空格键的开发者更愿意虚报收入。
局长,饶了大家一命吧!
2017-06-16 17:33
0
回复
举报
更多评论
66 评论
7 收藏
分享
返回顶部
顶部