原来Perl、PHP已经到了这个地步……
--DavidRobinson
在StackOverflowJobs上,你可以创建你自己的开发者故事DeveloperStory来展示你的成就,表现你的职业生涯进步。在创建开发者故事时,你可以对你使用的技术/编程语言添加喜欢或不喜欢的标签,如下图:
这就给了我们一个机会可以观察到这数十万开发者的喜好和厌恶。有许多方法可以评估一个语言的流行程度,举个栗子说,我们经常使用StackOverflow访问数或问题查看数来评估这样的趋势。但是,当技术人员在他们的简历中表达他们不喜欢某种技术时,这个数据集就是一个找出技术人群不喜欢某种技术的独有方式。
(我两年前曾经在我的个人博客上发表过一些这类分析,不过这篇文章使用了更新的数据集,以及有更多可视化结果和说明。)
编程语言
作为测量每个编程语言有多流行的指标,我们将看看它出现在某人「不喜欢」标签的时间与其出现在其他人的「喜欢」或「不喜欢」标签的频率相比。那么50%就意味着该语言喜欢与不喜欢各占一半,而1%则意味着99个人喜欢它而剩下1个人不喜欢它。(我们使用了这篇文章中描述的经验贝叶斯empiricalBayes方法来计算平均值,并使用这个方法来计算得到95%置信区间)
让我们开始看看选出的语言列表(而不是像Android这样的平台或像jQuery这样的库),所有这些都曾在开发者故事中至少提及了次以上。
最不喜欢的语言是Perl、Delphi和VBA,它们远远把其它语言抛下。接着的第二梯队是PHP、Objective-C、Coffeescript和Ruby。我们的团队很高兴地看到,R语言相对于喜欢它的人数来说,对它不喜欢的人数是最少的。
如果你读过我们另外一些关于编程语言增长或萎缩的文章,你也许会注意到那些较少被不喜欢的语言往往是增长较快的。在StackOverflow上,R、Python、Typescript、Go和Rust全是快速增长的编程语言(我们之前专门对Python和R做过分析),而且它们全都属于看法比较分化polarizing的语言。类似的,大量萎缩的语言,比如Perl、Objective-C和Ruby,如我们之前观察到的那样,在我们网站上它处于快速萎缩状况。
我们可以通过将每种语言的规模和增长与不喜欢它的人的百分比进行比较来进行调查,橙色点代表最不喜欢的语言。为了使我们的分析与前几个帖子保持一致,我们将统计数据限制在高收入国家(如美国,英国,德国和加拿大)。
一般来说,编程语言的增长率和它有多不招人喜欢方面存在相关性。几乎每个在开发者故事中提及不喜欢的比率超过3%的语言都在StackOverflow流量上处于萎缩状态(除了十分两极化的VBA,它仍有轻度增长)。而不喜欢数量较少的语言,如R、Rust、Typescript和Kotlin,它们全处于快速增长领域(Typescript和Kotlin增长的太快,以至于都跑出了上图范围)。
一个突出的编程语言是函数式编程语言Clojure;几乎没有人表示过不喜欢它,但是它仍然处于快速萎缩中(根据问题查看情况,它在去年才开始萎缩)。另外一个例外是MATLAB,它处于快速萎缩,但是没有很多人表示过不喜欢它。这可能是由于调查样本的数据所限:任何一个Web开发人员都可能对PHP、C#或Ruby有意见,但是不从事数据分析的人没理由对MATLAB不满意。(这也可能是R较少被提及「不喜欢」的部分原因)
我们不一定说这里存在因果关系——部分程序员不喜欢就会导致该语言会被抛弃。另一种可能是,如果人们觉得这种语言已经越来越不流行,那么人们就会觉得很自然地表达他们也不喜欢了。同样可以想象的是,开发人员经常使用这个字段来记录他们曾经使用的技术,但是不会再使用该技术了。这将导致那些自然而然地「被替代的」技术就一直停留在「不喜欢」标签里面。
最不喜欢的和最喜欢的
上面的分析仅考虑了编程语言,不涉及操作系统、平台或库(框架)。那么就整体而言,最不喜欢的技术是什么?为了专注于我们有足够数据的更主要的技术,我们其限制为至少提及了次的技术。
最不喜欢的其中有几个是微软的技术,特别是IE和VB,以及「微软」标签(「评估」也出现在这个列表中,但是没那么糟糕)。有个好消息是,大多数人都不喜欢Flash。此外,较老的语言,比如COBOL、Fortran和Pascal也出现在此处。
值得再次强调的是,这不是对技术及其品质或受欢迎程度的批评。这只是衡量哪些技术激起了强烈的消极情绪,至少在一部分愿意公开分享其感受的开发人员中如此。
我们也集中观察了那些最流行的技术、那些最不可能被不喜欢的技术(这次,由于喜欢标签出现的比较多,我们仅