最被开发者diss的编程语言:PHP,Ruby榜上有名
Posted 优达学城Udacity
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最被开发者diss的编程语言:PHP,Ruby榜上有名相关的知识,希望对你有一定的参考价值。
(本文仅供学习参考,请勿玻璃心~)
在Stack Overflow 职业生涯页面上,用户可以创建自己的开发者履历,展示自己获得到成就,推动职业生涯的进展。在充实履历的过程中,有一个选项,可以让用户添加自己希望或不愿与之共事的各种技术的标签。
这给可是一个特殊的机会,使我们得以窥探一下几十万开发者的喜好。在之前,衡量一种语言的受欢迎程度,有许多不同的办法;比如我们曾经用Stack Overflow上的访问量或者问题阅读次数来衡量此类趋势。但现在,我们获得了这样一个独特的途径,通过让用户在自己的简历中增加这些标签,可以准确地知道哪些技术被人们所讨厌。
(两年前我在自己的个人博客就已经贴出了部分此类分析结果,但这次我采用了更新的数据,并增加了更多的可视化分析与探索)
编程语言分析
为了衡量每个标签的两极分化情况,我们用它出现在用户讨厌列表中的次数和它出现的总次数(无论是喜欢列表还是讨厌列表里)做比较。这样,50%就意味着一个标签被放在讨厌列表里的数量和在喜欢列表里差不多,而1%表示每100人中,99个用户都喜欢,只有一个不喜欢。(我们使用了我在这篇文章中提到的经验贝叶斯估计方法来估算这些平均值,并采用这种方法计算95%置信区间的范围)。
从一开始,我们一起来看看这个经过筛选的程序设计语言列表(不包含android之类的平台,也不包含jQuery这类的库),我们只选择在开发者履历中出现次数超过2000次的语言。
最遭人讨厌的语言中,排在第一梯队,并把其他语言都远远甩在后面的前三名是Perl、Delphi和VBA。第二梯队是php、Objective-C、Coffeescript和Ruby。就我们团队来说,我们当然很高兴看到R语言是被讨厌的比率最低的语言。
我们在之前的几篇文章里,讨论过编程语言用户数量的增长和衰退。你可能已经意识到,上面这些被标”讨厌”次数最少的语言都倾向于是快速增长的语言。从StackOverflow的动态趋势来分析,R、Python、Typescript、Go以及Rust全部都是快速增长中的语言(我们之前的文章里专门分析过Python和R的“爆炸式增长”),而且都是两极分化最不明显的语言。类似的,许多评价不太好的语言,比如Perl、Objective-C和Ruby,也恰好在我们之前研究过的用户数量减少最快的几个语言之中。
为了检验这一推测,我们将每一种语言的总量、增长量与被人讨厌的百分比进行了比较。橘色表示被人讨厌的比例最大。为了与近期我们发布的几个分析口径一致,我们将只统计来自高收入国家的数据(比如美国、英国、德国和加拿大,诸如此类)。
总体上来说,一个语言的增长状况和它被讨厌的比例呈负相关。几乎所有“讨厌率”超过3%的语言,在StackOverflow上的流行程度都是处于负增长之中(除了两极分化比较严重的VBA,居然还保持稳定甚至略微有所增长)。而那些被讨厌的最少的语言——R、Rust、Typescript和Kotlin——都处于快速增长是状态(Typescript和Kotlin的增长速度太快,以至于图上无法显示)。
唯一一个与众不同的语言是函数式语言Clojure,几乎没有人表示不喜欢它,但它依旧处于快速缩减的状态(基于StackOverflow的问题阅读量,它的缩减差不多是从去年才开始的)。另外一个比较特殊的是MATLAB,虽然没什么人表示讨厌它,但它的相关流量还是在不断减少。这可能表明了用数据测量人类情感时存在的一个缺陷:任何一个web开发者可能多多少少都会对PHP、C#或Ruby有点意见,但不搞数据分析的人往往没有什么理由要对MATLAB有什么不爽(没什么人对R表示“讨厌”估计也是类似原因)。
我们不是在断定这一定有因果关系,也不是说被每个程序员标记成讨厌就一定会让这种语言被抛弃。另一种可能性是,当某个语言已经越来越不流行的时候,他们更能无所顾忌地公开表达对这种语言的厌恶。还有一种可想见的状况是,许多程序员会用这个功能来标记处那些他们曾经用过,但已不再使用的技术。这就导致这样一种自然的发展规律:被“取代了”的技术终将会越来越多地被人标记为不喜欢。
最受讨厌的和最受喜爱的技术
上面我们只分析了各种编程语言,没有涵盖各种操作系统、平台和库。如果把这些都加进去呢?到底谁是从古自今最不受待见的技术?为了关注于我们有足够代表性数据的较大的技术,我们只统计那些起码被提到1000次的技术。
在这里,我们看到了许多来自微软的亲切身影,特别是Internet Explorer和Visual Basic,甚至包括“Microsoft”本身(“Apple”也在这个列表中,不过还没有被人恨的那么惨)。对于讨厌Flash的广大人民群众,我们有一个好消息是,它死的透透的了。同时,许多古老的编程语言,例如COBOL、Fortran和Pascal也在这露了脸。
值得再次强调的是,这不是在嘲讽这些技术,也跟他们的质量或者流行程度没有什么关系。这只是单纯衡量哪些技术确实激起了人们的负面情绪,起码有这么一群程序员很乐意公开表达这种不满。
我们还可以将关注点集中在那些始终非常流行的技术上,这些技术几乎没有什么人讨厌。(因为被标记为喜欢的标签实在太多了,我们只统计那些出现10000次以上的技术)。
对许多开发者来说,Git往往会是一个让人非常挫败的东西(对我当然也是这样!),然而并不常有人肯在自己的简历里承认自己讨厌它,在我们的开发者履历数据库中,可以说是非常一边倒的疯狂好评了。R成功闯入了我们这张表中,不过它可不是唯一不会引起争论的数据科学相关技术。机器学习技术总共收获了两万三千多人的喜爱,并且几乎没什么人表示不爽。其他一些标签,比如Python-3.X、CSS3和html5则大概说明了开发者很少具体到对某个技术的某个特定版本表示不满。最后,也是理所当然的,jQuery在Stackoverflow还是一直都非常受欢迎。
两极分化的标签网络
通过将这些标签都组织到一张网络图谱中,我们可以在同一个层次上来比较它们。Julia Silge曾经展示过我们如何建造一张各种技术的网络图,来表现整个软件生态圈的状态。如果我们将图上的节点按照对应标签被讨厌的程度进行着色,我们就能比较容易地了解到这个生态圈的哪个部分更有争议性。
在把开发者履历中的标签放入这个次级生态系统中时,网络图谱就显示出哪些类型的技术受到的两极分化比较严重。在以Microsoft为核心的次级生态圈中(中心在C#和 .NET附近),散布着一群争议比较大的技术。同样的还有PHP(从WordPress到Drupal)以及移动开发相关技术(特别是Objective-C)。在操作系统类群中(右下角),我们可以看到类似OSX这样的系统以及特别夸张的Windows,都存在有一定的争议,但其他标签比如 Linux、Ubuntu以及Unix就没有这么明显。
相互竞争
如果某人喜欢某一个特定的标签,会不会有一些标签是他们非常讨厌的?
通过计算某个特定的喜欢标签和其他标签的Phi相关系数,我们可以对这种竞争关系进行分析。(计算这些统计数据时,我们只考虑那些起码标了一个“讨厌”标签的用户)
于是这揭示出了软件生态系统中潜藏的“竞争”关系:Linux和OSX对Windows,Git对SVN,vim对emacs,以及(出乎我意料的)R对SAS。大部分这些标签对并不代表这“相反”的技术,而是反映了解决相似问题的两种不同途径。这其中的许多更是体现出从一个曾经流行的技术向更新技术的转变过程(SVN被Git取代,XML被JSON取代,VB被C#取代)。按这样说,人们会在简历中列出这些的原因就很容易理解了:对开发者来说,标出那些他们认为已经过时的技术,并表示不愿意在工作中继续使用,是非常常见的做法。
总结
我并不是要挑起什么“语言之战”,我也并不评判那些分享了自己对技术的好恶看法的程序员们。想一想微软的技术常常是被多少人喷又被多少人爱,这也鼓励我更积极地去分享我的个人经验。我是一个终身的Mac和UNIX用户,我在大学和研究生期间几乎所有的程序都是围绕着Python和R进行的。但不管怎样,我还是很高兴地加入了一个采用 .Net 技术栈的公司,而且我很庆幸自己做出了这个选择——我爱这团队、这产品、这数据。我是不能代表其他人的意见,但我很庆幸自己一直是用“我想做什么”来定义自己,而不是“我讨厌什么”。
如果你也对分享自己喜欢或讨厌的技术感到有趣,而且或许也在寻找职业生涯的下一个阶段,那么,你也可以试着创建你自己的开发者履历哟~
译者:欧剃
编辑:之肴
出处:https://stackoverflow.blog/2017/10/31/disliked-programming-languages/
快点扫我~
长按上面二维码,关注优达学城(Udacity)订阅号,回复关键字【学习资料】,获取来自硅谷的,包括【前端开发技能清单】、【大数据求职指南】、【机器学习求职指南】、【Tableau学习PDF】等一系列独家豪华学习资料,让你不落人后!
旁友们,硅谷潮课最高直降1111元,此时不剁更待何时!先领333元红包+付100元定金抵200元,名额有限,赶紧点击“阅读原文”,抢先预定吧!
以上是关于最被开发者diss的编程语言:PHP,Ruby榜上有名的主要内容,如果未能解决你的问题,请参考以下文章
PHP 薪水高Ruby 高可用Python 最易学……web 开发语言大比拼
开发者最讨厌的编程语言:Perl 名列第一,PHPObjective-C 和 Ruby 都在其中
javascript——从「最被误解的语言」到「最流行的语言」