1. 聚能聊>
  2. 话题详情

用空格缩进的程序员赚钱更多吗?

最近,Stack Overflow 发布了一篇 2017 开发者调查报告,分别从技能、工具、学习趋势等方面进行了数据统计,此次有超过 64,000 名开发者参与调查。分析这些数据,我们得到一个很有趣的结论:使用空格缩进的开发者比使用 TAB 缩进的开发者工资更高,是不是觉得有点扯?以下是统计结果截图:
90ec997d3121478cb52aab162ac9ceeb_th

你用Tab还是空格来处理代码缩进

在处理代码缩进时,使用Tab和空格都是可以的,在不同的IDE环境下,Tab对应的空格数也是不一样的,有的是2个,有的是4个,有的甚至8个。
你用Tab还是空格来处理代码缩进,我想一千个程序猿或许会有一千个答案,这个问题通常会引起程序员间的”圣战“,它已经无数次引起争论了。

用空格的程序员比用Tab的程序员挣钱多

在上面的调查中,有28657名职业程序员(他们不是学生也不是实习生)参与了这个”用Tab还是用空格的调查“。这之中,40.7%的程序员使用Tab,41.8%的程序员使用空格,17.5%的程序员两者都用。
在上面的统计截图中,使用空格缩进的程序员的薪资中位数是59,140美金,而使用Tab缩进的程序员的薪资中位数是43,750美元。当我第一次看到这个结论的时候,我怀疑是不是某一个因素影响了结果,比如程序员所在国家或者使用的编程语言。所以我们选取了样本最多的几个国家,并进行了相关的统计,结果惊奇的发现:
14b094X1GA0_3c35

观察上图我们发现,在欧洲这个现象相对比较弱,而在印度这个现象却相当明显。不过可以看到,无论在哪个国家,使用空格缩进的程序员薪资都比用Tab缩进的程序员高。

另一方面,我们知道不同语言的程序员会有不同的习惯:比如DevOps会倾向于用空格,而移动开发者更喜欢用Tab。这个差异主要因为他们使用的语言不同。在这次调查中,对于使用的语言的也做了相关的调查,结果如下:
14b094X1cI0_4HO

从统计数据来看,无论是在同一语言内部,还是同种开发者内部,使用空格的程序员都比使用Tab的程序员薪资更高。

空格 or Tab对薪资的影响

如果我们把影响薪资的所有因素都放在一起,那么“空格 or Tab”的选择在这里占有多大的权重呢? 为了解答这个问题,实验主要对以下选项做了统计
对“空格 or Tab”的选择
国家
编程工作年限
开发者类型和使用的语言
学位
是否为开源项目做过贡献
是否热爱编程
公司规模

通过这个模型发现,使用空格缩进会使得工资相较于使用Tab缩进高8.6%,相当于增加了2.4年的工作经验。最后这个统计,确实难以置信。

使用空格缩进的开发者比使用 TAB 缩进的开发者工资更高

1,你认为这个统计合理吗,说说你的看法?
2,平时开发中,你用Tab还是空格来处理代码缩进?
3,说说你认为影响你收入的方面有哪些?
4,不限于上面的问题

参与话题

奖品区域 活动规则 活动已结束,可继续参与讨论哦

  • 奖品一

    淘公仔U盘16G x 1

  • 奖品二

    云栖定制电脑包 x 3

  • 奖品三

    阿里云代金券 x 4

249个回答

0

蛋蛋派 已获得阿里云代金券

我来讲讲道理,可能有些公司会强制要求空格,其实这只是一个很荒谬的要求。比如我,码的时候会尽可能让代码看起来一目了然,而不是固定在某种格式里面,这就导致我写过的代码基本上都是tab和空格混用,尽管可能我写完以后也会用空格去替代tab,使未来重新审查的时候效率高点,最主要还是和公司要求一样,不同IDE下同样的缩进。但其实真没必要,如果你要那样规规矩矩的缩进,大可Ctrl Shift F格式化一遍,不然你要IDE有何用?为了一目了然,我的缩进可能会一会长,一会短,只要把区块内仔细标明就好了,所以说,缩进是虚的,能够一眼看清楚的缩进就是好缩进,每个区块都像我这样标明注释开始结束是个好习惯。(当然现在国内很多开发者也是这样做的吧?)

1,你认为这个统计合理吗,说说你的看法?
不合理,参上。
2,平时开发中,你用Tab还是空格来处理代码缩进?
均有,看情况,有时候为了美化还是用空格,但大多时候还是tab。
3,说说你认为影响你收入的方面有哪些?
还是经验吧,经验不足,学的不够多,这才是硬伤。
4,不限于上面的问题
没了。。。。。

zxdposter 回复

大哥,你要是和我一起共事我都想打死你。。你代码基本上都是 tab 和空格混用,那是你的电脑环境!不是所有人的电脑环境,你在你的电脑上好看了,你就不提交代码了?只给自己看吗?你自己电脑上看清楚了,我电脑上的?大部分IDE有时候默认 tab 是 4 个空格长度,有些人就喜欢用 vim 看代码,或者是一个脚本在生产环境上没有桌面系统,就只有 vim,但是 vim 如果不经过设置默认就是 8 个空格长度,你让别人怎么想?

ewer0017 回复

不能同意的更多,因为也遇到过这样的同事,他混用的爽了,我是一点都不想看,,,,

fuq1978 回复

如果我是你的领导,你会被我骂死。我允许你使用空格,也允许你使用TAB,但是你不能混用。

治洋 回复

“大可Ctrl Shift F格式化一遍”,你问过git diff的感受吗?

嘉谷农业 回复

LZ可能只做过一个人的项目……

我的看世 回复
回复@治洋:

-w即可

哥德萝莉控 回复

暗中多打了几万字的代码,不多拿工资憋屈型…

步雪舞树 回复

混用?你代码崔给别人看的吗?

1631292586592108 回复

我的编辑器是设置成按一下tab等于4个空格,所以我实际上是按tab,但用的是空格缩进,呵呵

1394178867686875 回复

举个例子,python,如果python用tab缩进的话真想打人

评论
6

巴洛克上校 已获得云栖定制电脑包

1,你认为这个统计合理吗,说说你的看法?
我认为合理,这个统计最终目的就是想说明一个对待工作态度的问题,使用空格好处是为了让代码在使用任何编辑器进行编辑或者查看时的效果相同,不至于像TAB键会出现显示问题,因为每个编辑器对代码的缩进会有些差别,能够注意这种细节的人,在其他方面依然会这么细致,这样的工作态度是他们比别人高薪的原因。

2,平时开发中,你用Tab还是空格来处理代码缩进?
两种都有用,一般在码完代码的时候用TAB 或者直接,不缩进因为我感觉想格式的问题会打扰我思路,码完之后我都会用一些时间整理下代码的格式,我只要看着格式很乱的代码不管是不是我写的就想改,强迫症患者。

3,说说你认为影响你收入的方面有哪些?
影响收入主要还是技术水平,如果你什么都会不管提出什么需求你都能实现那工资肯定高啊,在就是好的机遇,想我一个同学一毕业到北京正好中国人民银行招聘Java程序员他就去应聘结果通过了,而他在大学期间技术不是特牛的,就是这个机遇让他现在技术水平提升,工资30k;再就是一个好的公司直接影响你的技术水平和工资多少;

4,程序员工作需要细心吗
程序员工作我认为细心很重要,细心可也避免很多BUG,BUG的产生很多情况都是写完代码也许就是一个错误的标点,或者拼写的储物,也许就是这小小的错误能让我们找一天,如果写的时候细心点也许就不用浪费这么长时间去找BUG了,而且很可能一个小小的错误就会造成很严重的后果。用空格缩进工资高也是因为细心,和认真的工作态度被领导赏识的结果。

PS:个人的看法认真回答(拒绝复制) 希望能赏个U盘

巴洛克上校 回复

宝商云服务 回复

good
支持空格

费少 回复

我觉得用空格好,体现出一个人用空格的细心程度,所以我觉得用空格好。

评论
1

zxdposter 已获得阿里云代金券

我来说一下真正公道的东西吧!

唉~

1. 评论区里面一群小白

真的

2. 我认为风格统一,个人让步于团体的选择无疑是最好的选择

让你用什么你就用什么,别瞎捣鼓,我如果是项目负责人,看到 空格tab 混用的代码,我立马打死你

3. 空格会让你的代码膨胀???(黑人问号脸!)

我们到底是在写看起来好看的代码,还是在写看起来好看的文件大小?

a. 对于 c/c++ 来说,我相信编译器不会考虑是 空格 还是 tab,对编译器来说通通都是不存在的
b. 看代码文件大小来评判是否是工业级水准的是 S13
c. 是不是用空格对运行效率一丁点毛关系都没有

4. 经常使用 空格 tab 混合的 S13,我建议你们去写写 python,写一个函数我就让你知道什么叫做后悔

去试试

5. js / css /html 经常使用长度为 2 的 tab 作为缩进,我建议你们在 linux 上用没做配置的 vim/vi 打开看看,然后再花 5 分钟 时间把配置调成 tab 长度等于 2

去试试

6. 不要再说他喵的 IDE 都设置好了的、这种情况不会碰到的、我从来不在 Linux 打开 js / css / html !!! OK???

不论是工业级代码,还是工业级标准,都要求,你的东西,不论在任何情况下,考虑任何可能出现的问题。
哎呀!这代码在我电脑上在我的 IDE 里面多好看啊,我好看你个大头鬼。

fuq1978 回复

说得好,我也不能容忍空格和TAB混用。那些小白说什么IDE里看起来一样,其实并不能保障每个人的IDE环境设置都相同。如果甲的代码混用空格和TAB,乙打开后看起来很别扭,于是乙重新调整了代码格式。当乙修改好代码并提交到SVN后,我来查看乙对代码的改动,这个时候我看到代码每一行都有改动,我那个去。

hzabyte 回复

IDE环境不同,别说看起来比按钮了。编译环境不同,甚至都不能编译通过。

codebee 回复

吐槽python的傻逼对齐设计

评论
0

林峰08 已获得阿里云代金券

通常情况下,按制表键(Tab键)出来的符号(一般就是 水平定位字符)应该叫制表符,那么称tab符好了。这个符号不意味着空格,而意味着距离,这个距离在多行的情况下展现:每个tab符可以产生一段与楼上tab符对齐的空间。显然这是不等长的。这使其便于制表,其相比按空格的优势在自动产生距离以便排版。
个人认为其实这个没什么大的区别的吧,我平时空格和tab其实都用的很多的,就好比如果前面所需要缩进的距离比较远的话,我就需要先用tab进行大量的缩进,然后再用空格去调整,直到对齐,因为我是处女座,所以我有强迫症,代码都会把格式弄好的。这样调整代码的时候可以节约大量的时间,不过更多的时候还是空格来的快一点,可能是因为我们平时打字都用空格做确定键,所以熟悉的动作就促就了大部分人都用空格去缩进。从而不需要去找一下tab键。
楼主所说的用空格键的人收入高,我推测也是代码敲的比较多,导致了习惯性的敲空格键,当然,敲代码比较多的人,当然也算是有一定水准的。所以收入可能也相对来说会高一些。
其实现在用ctrl + alt +L在开发工具中来格式化代码也是相当不错的一个方式了,比空格来的快多了!

zxdposter 回复

使用空格 ctrl + alt + L 就不能用了吗?你怎么知道的?

pxz252 回复

Tab键还用找???

哥德萝莉控 回复

暗中多打了几万字的代码,不多拿工资憋屈型…

评论
0

战神莱卡

我也用空格缩进,为啥挣得不多

code_xzh 回复

姿势和手法不正确!!!

且听风吟_ 回复

拜服楼上,思维清晰逻辑合理,else都省了

聚小编 回复

姿势不对

巴洛克上校 回复

内个我请教个事情,为什么后得的奖品邮到了,先得的还没到泥????

聚小编 回复

我帮你查查,是不是有的地址你没填啊

巴洛克上校 回复

不应该啊 ,我把截图发到 nan.li 邮箱了

巴洛克上校 回复

怎么还丢了一个公仔呢,发的快递就一个公仔,显示是发两个呢???

评论
0

梦落 已获得阿里云代金券

看到帖子的内容,我惊呆了,再看回复,我更惊呆了,很少回帖的我,想吐槽一句,难道开发都不用ide,难道不知道ide可以自动把tab转空格,难道不应该tab提高编码效率,转空格交给ide,就像以前有人认为用记事本做开发的很牛逼,我知道记事本没提示,能写代码很厉害,可是ide更能提升编码效率,这是毋庸置疑的

_静听雨落 回复

idea和webstorm这类JB公司的产品都是默认空格代替tab,sublime也可以设置空格代替tab,eclipse应该也可以吧,所以其他人都是用的记事本吗,vim我不懂不评价

zxdposter 回复

都可以设置,这和你用不用 ide 没有关系,这关系到你的代码要在任何环境都有相同的展现。你不能寄希望于 IDE 都帮我做好了,不用我操心,万一哪个 IDE 比较操蛋咧

评论
0

chenley 已获得云栖定制电脑包

使用空格缩进的开发者比使用 TAB 缩进的开发者工资更高 1,你认为这个统计合理吗,说说你的看法?

我觉得这个统计不合理,类似的统计还可以有,比如:使用机械键盘的程序猿比使用普通键盘的收入高?使用Vim编辑器的程序猿比使用IDE的程序猿收入高?等等。看似合理的统计,却常常因为统计样本和各种统计误差的因素,导致统计的结果大不一样,因此我觉得这个统计:**仅供参考!**

2,平时开发中,你用Tab还是空格来处理代码缩进?

平时开发中我一般使用空格键(这就是我工资低的原因?手动/cry0)。总感觉每次使用tab键都不能精确的调整都我需要的位置,还是使用空格来的精确调整间距和缩进。再说那么长长长长.....的空格键不就是用来啪啪啪啪个不停的么?

3,说说你认为影响你收入的方面有哪些?

正经的来说,个人技术实力/管理经验/为人处世等等硬实力才是你获得高薪的关键点和基础。不正经的说,口才好,会侃大山,敢吹牛逼,再加上一些运气成分,拿高薪的机会比木讷的/内敛的大部分程序猿获得薪水要高的多。这样的情况,在我身边遇到很多,所以说各位牛逼的程序猿,没事多撩撩妹子什么的,对以后涨工资是很有帮助的。

4,不限于上面的问题

路边捡了张鼠标垫,还差个电脑,lz来个电脑包包吧~~!
顺便推荐一款小软件
WebTorrent Desktop – 支持 BT 种子、磁力链接,可以边播边下
image

哥德萝莉控 回复

暗中多打了几万字的代码,不多拿工资憋屈…

评论
0

dannypu 已获得淘公仔U盘16G

1,你认为这个统计合理吗,说说你的看法?
我认为这个统计不具备参考价值,在中国决定收入的首要因素是技术能力及工作年限包括做过那些大的项目
2,平时开发中,你用Tab还是空格来处理代码缩进?
两个都有使用过,更多会使用格式化快捷键
3,说说你认为影响你收入的方面有哪些?
工作年限,技术能力,工作及学历背景
4,不限于上面的问题
有架构方面及管理方面的人薪资相较于程序员薪资待遇更高

leric 回复

统计表达的只是相关性,因果联系另说

评论
4

似水的流年

1,你认为这个统计合理吗,说说你的看法?
我觉得这是一个无聊的统计,毫无意义可言,这样的个人习惯问题跟工资技术等没什么直接的联系
2,平时开发中,你用Tab还是空格来处理代码缩进?
都有,看自己心情喽
3,说说你认为影响你收入的方面有哪些?
技术强就工资高

4

1071240036657304

1,你认为这个统计合理吗,说说你的看法?
不合理,用空格还是tab键是个人习惯问题,跟写代码没有什么关系吧
2,平时开发中,你用Tab还是空格来处理代码缩进?
我看我手在哪里就用哪个,吃东西的时候肯定会用空格,一般都用左手拿东西吃,右手按空格比较方便
3,说说你认为影响你收入的方面有哪些?
技术呀

0

浅蓝丶

其实这个统计不准。大部分编辑器和IDE都支持tab=4空格,也支持自动缩进。所以代码里用的是空格,并不一定敲代码是用的空格,

vim下可以这样设置~/.vimrc文件:

set tabstop=4
set expandtab
set autoindent
" Tab键设置为4个空格

set softtabstop=4
set shiftwidth=4
 " 统一缩进为4

VSCode、Sumlime Text等编辑器,IDEA、PyCharm等IDE,默认就是tab=4空格:

截个VSCode的配置图:
image

所以,这个统计数据本身就是错误的,大部分程序员呢都是设置tab=4空格,所以这个统计数据不准。

zxdposter 回复

不是大部分,是所有都支持,可能有不支持的,但是在我知道它们之前都死了

tidyjiang8 回复

tab=4并不代表文件在存储的时候是用的4个空格!

hzabyte 回复

tab=4的间距 与 tab=4空格 是两码事。

评论
1

1326026129665886

扯淡,一群拿着高工资,尽做些低水平的事。有本事就去统计,低层程序员。薪资40k,50k美金,我只能呵呵呵。这么牛b,去统计国内乞丐的收入啊,艹……

哥德萝莉控 回复

暗中多打了几万字的代码,不多拿工资憋屈型…

评论
1

六月的小雨

非常扯蛋的问题,目前IDE换行后的代码缩进这算是TAB还是空格缩进?
目前的IDE完全可以把TAB保存时替换成空格,如果是N行代码缩进调整,是不是不用按两次TAB键而非要去按8*N个空格键?要不要考虑效率问题?

这种条件有充足的时间使用空格缩进,只能证明任务压力不大,也证明不懂得变通,把简单的事交给新手了,技术问题自己解决,由于技术的原因导致收入较高吧。

絮雪楼兰 回复

你有想过8个空格真的需要按8下吗

评论
0

一只平头哥

曾经,我有个同事,写代码只用空格,也不对齐,可能第3行打3个空格,第4行只打2个空格,第5行又3个空格,这样的,连{}都对不齐,你别说写完后代码格式化什么的,他不懂,我真的不想说什么,用空格的只是年龄比较大,出来混的日子长一点工资高一点罢了,用4个空格代替Tab,你有算算10000行代码你需要多敲多少次按键吗?我非常替键盘感到憋屈

luyamin 回复

不是敲4下空格键,而是敲一下tab键,编辑器自动替换成4个空格,这都可以设置的。为什么非要转换一下,是为了在不同系统不同开发环境都能显示相同的格式。

评论
0

神谕程序员

按“#”的程序员工资最高。

我的看世 回复

为啥?

meko_ 回复

懂得注释吧

评论
1

庭中暮

我认为合理,因为在不同的环境下两者的呈现效果不一样,空格可以限定而不会变动,而tab有时就会导致格式的不一致,到头来还得重新维护,我认为用空格会更加好一点,仅个人观点,如有分歧望指出。

0

皇族灬战狼

一个Tab键等于四个空格键,一键能完成的事情,为什么非得要四建呢?要是连这个都不注意的话,谈什么细节呢!

1

dabendan321

作为程序员,用空格代表你的个人态度。说明你相对严谨,毕竟空格缩进的代码可以适合任意环境。我看有人说TAB压缩小,或者IED支持转换,当然这都是事实。但是既然对这件事就为了所谓的便利性失去了严禁。相对来讲,这类程序员不严谨,这是情商问题。不是智商问题。当大家智商都差不多的时候,情商得差距最后导致了收入的差距。
我有几个同事,智商情商高的人,毕业时间越久相对越厉害;智商高,情商低的人,到了一定水平后就进入瓶颈期。期望大家都能理解我的意思。大家都收入高高。呵呵!

1

子驭

可能用空格的都是老程序员吧,统计一下空格和TAB使用的年龄分布吧。现在应该都是用快捷键格式化代码。只有早期习惯了用空格的人才会一直用空格。我猜是这样的。。。

1

tidyjiang8

首先申明一个观点,在编辑器中,设置tab的宽度为4,并不代码tab在保存时是4个空格!
但是我们可以设置编辑器(例如source insight),直接让我们在输入tab的时候,自动将tab转换为空格。如果把这归类于敲空格而非敲tab的话,我认为这是合理的!因为只有经验非常丰富的程序员才会这样干!
当然,使用空格和tab与自己的工资肯定是没有必然联系,不够这个调差结果真的挺值得品味的。

13
26141
浏览
0
收藏
邀请他人互动
关注
5
粉丝
226
话题
17

简介:

软件工程专业毕业,工作6年来,先回从事过web、Android、iOS、React Native开发。对Android,ios,Node.js,React.js,Docker等前端技术和Java web后台技术比较擅长,活跃于各大开源论坛。
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...

RDS是一种稳定可靠、可弹性伸缩的在线数据库服务。支持MySQL、SQL Server、PostgreSQL、高...