2017编程语言最不受欢迎指数排行榜

2017编程语言最不受欢迎指数排行榜


源 | StackOverflow  译 | 王洪岩

Stack Overflow 是一个与程序相关的IT技术问答网站。在 Stack Overflow Jobs 板块,用户可以选择在创建简历(研究经历)的过程中为你喜欢或者不喜欢的项目添加标签:

2017编程语言最不受欢迎指数排行榜

这种方式为我们提供了衡量编程语言的流行程度;例如,我们经常利用 StackOverflow 的访问或者问题观点来衡量这一趋势。但是该数据集很少反映用户不喜欢的技术。

编程语言

为了衡量每一个标签有多么极端化,我们会查看该标签出现在一个人的 “不喜欢” 标签相对于该标签在别人的 “喜欢” 和 “不喜欢” 中各自的比例。因此,50% 意味着该标签被用户同样地喜欢和不喜欢着,1% 意味着每当有一个人不喜欢它的时候,就会有 99% 喜欢该标签。(我们采用本文中描述的经验的贝叶斯方法来衡量这些平均值,而且用该方法来计算 95% 的置信区间)

以某一个编程语言条目为例(与某些平台如 Android 或者库如 JQuery 相反),每一个都在开发历程中获得了至少 2000 次的提及。

2017编程语言最不受欢迎指数排行榜

最不受欢迎的语言,以一个较大的区间来说,包括有 Perl,Delphi 和 VBA。接下来是 PHP,Objective-C,Coffeescript,和Ruby。

可能已经注意到更受欢迎的语言同时也是那些快速发展的语言。R,Python,Typescript,Go 和 Rust 都是在 Stack Overflow 中相对发展较快的语言,并且他们在最不受欢迎的语言列表中都处于不太极端化的位置。相似的,许多使用量缩减的标签,例如 Perl,Objective-c,和 Ruby,都是我们最初观察到使用标签使用量迅速减少的语言。

我们可以通过比较每种语言相对于不喜欢人数的百分比的大小和增长量来检验这一结论,橙色的点代表了最不受欢迎的语言。为了保持我们的分析与之前发布内容的一致性,我们将统计数据都统一限制在了一些高收入国家(例如美国,英国,德国和加拿大)。

2017编程语言最不受欢迎指数排行榜

通常来说在标签增长量和它不受欢迎的程度之间是有一定关系的。几乎所有不受欢迎的语言都被 Stack Overflow 中大于 3% 的开发故事提到该语言在缩减(除了那些特殊的例子如VBA,一直处于稳步的增长状态)。而且最不被讨厌的标签——R语言,Rust,Typescript 和 Koltin——都是那些较快增长的标签(Typescript 和 Kotlin 的 增长太快,以至于在图中不能显示)。

Clojure 作为函数语言这一标签比较突出,几乎没有人表达不喜欢它,但是它依然是缩减最快的语言之一(基于问题访问量,它只是大约去年才开始缩减)。另外一个例外是 Matlab,尽管几乎没有人表现出不喜欢这一语言,但是它仍然在缩减。这可能暗示了该数据在态度敏感性的衡量方面的局限性:当所有的网络开发者都可能对于 PHP,C# 或者 Ruby 有一定成见时,做数据分析工作的人就很少有理由表达对于 Matlab 的不满。(这也可能是 R 语言很少被提及为“不喜欢”的原因之一。)

我们并不是在提出一种被程序员讨厌的标签就一定导致该语言被冷落的因果关系。另一个可能是当人们感受到一种语言的使用量在缩减的时候,在公开场合发表他们的不喜欢的意见会让他们感觉更舒服一点。也有可能是开发者经常使用该功能来标记他们已经用过而且不会再用的技术。这可能会自然而然的导致“被替代”的语言成为不受欢迎的语言。

最受欢迎和最不受欢迎

以上的分析仅仅考虑了编程语言,并不包括操作系统,平台或者库。那么总体上最不受欢迎的技术是什么呢?为了关注大量的我们有足够数据的技术,将这些技术限制为那么至少被提及 1000 次的技术中。

一些是微软的技术,尤其是 IE 浏览器和 VB,以及“微软”这个标签(“苹果”也在该列表中,但是不是那么极端的被讨厌)。对于那些不喜欢闪存的人们,现在有了好消息。其他的语言例如 COBOL,Fortran 和 Pascal 也出现了。

值得再次强调的是本文没有对这些技术的质量或者用户量有任何的暗示,只是衡量那些愿意分享自己对于该技术的看法的人们对于一些技术的不适的感觉。

我们将会放大分布较为均为的这一区域来看,这写技术几乎从未被不喜欢过。(这次,既然更喜欢的标签相对更常见一些,我们将关注那些被提及大于10,000次的技术。)

2017编程语言最不受欢迎指数排行榜

Git 可能使得很多开发者失望(对于我而言当然是的),但是人们很少在自己的主页上提及这一点,因为它是开发历程中最不平衡的受欢迎的标签。R 也在该列表中,但是它不是唯一的无争议的数据科学相关的标签。一些其他的标签例如 Python-3.X,CSS3 和 HTML5 可能表明开发者很少表达他们对于某项技术的某个特点版本的不喜欢(即使他们表达了)。当然了,JQuery 在 Stack Overflow 中一如既往的受欢迎。

极端化标签

我们可以将所有的标签通过组织到一个网络中来编译带一个故事中。在最近的一篇文章中,Julia Silge 阐述了我们如何构建一个技术网络来代表我们总体的软件生态系统。如果我们将所有的节点根据它有多不受欢迎上色,我们就可以理解该生态系统中哪一个部分会比另外的部分更有争议。

2017编程语言最不受欢迎指数排行榜

通过将开发历程中的标签放到子生态系统中,该网络就表明了哪种标签更容易极端化。在微软(以 C# 和 .NET 为中心)、PHP(与之相伴的是 WordPress 和Drupal),和移动开发(尤其是 Objective-C)子生态系统中,有一些极端化标签簇。在操作系统簇(右下)中,我们可以看到一些系统例如 OSX 和尤其是 Windows 有其对应的贬低者,但是 Linux,Ubuntu 和 Unix 就没有。

“敌对” 状态

如果某人喜欢某个特定的标签,那么会有一些特定的标签他更不喜欢的吗?

我们可以用一个 phi 系数来衡量某一个特定的喜欢的标签。(当计算这些相关性时,我们仅仅考虑那些至少有一项 “不喜欢” 的人)

2017编程语言最不受欢迎指数排行榜

高亮的“敌对状态”强调了软件生态系统:Linux 和 OSX 与 Windows,Git 与SCN,vim 和 emacs 和(对我而言并不奇怪)R 与 SAS。大部分组合并没有代表“相反”的技术,但是却反应了同一问题的两种方式。许多表明了从一个之前流行的技术到更新技术的转换(SNS 被 Git 替代,XML 被 JSON 替代,VB 被 C# 替代)。考虑到哪些人会制作这一表的时候,这一现象是合理的:对于开发者而言,他们认为已经过时的技术就不再愿意再用了。

-END-

译者 | 王洪岩

2017编程语言最不受欢迎指数排行榜

上海交通大学学生,一个不严肃少女。

后台回复 “志愿者”

了解如何加入我们

2017编程语言最不受欢迎指数排行榜