关于编程语言,大家一直在争论"谁才是最好的编程语言",可一直也没有一个定论。今天我们不再老生常谈谁才是最好的编程语言,而是反其道行之,看看程序员最想diss哪种语言?
Stack Overflow中有标签功能,程序员可以添加标签来标注自己喜欢或者不喜欢的工作,同时这也为我们研究成千上万程序员的喜好提供了素材,本文将着重笔墨于编程语言。衡量一种编程语言流行程度的方法有千万种,例如 ,而本文的数据来自用户标签。
编程语言
如何将标签作为衡量标准呢?每个标签都有两极,我们并不是单纯的看喜欢或者不喜欢,而是看不喜欢标签的占比,如果是50%那么就说明它的喜好不是很明确,如果是1%,那么就说明绝大多数的人是喜欢的。
首先,我们先来看一下编程语言列表,在Stack Overflow中程序员提到的编程语言多达2000多种。
通过上图的调查结果,我们发现Perl ,Delphi和VBA处在程序员最不喜欢编程语言的行列中,紧跟在后面的是PHP,Objective-C,Coffeescript和Ruby。而R语言则是最受程序员欢迎的编程语言。
如果,我们在把目光聚焦一下,我们就会发现最喜欢的语言往往也是快速增长和发展的语言。例如,R,Python,Typescript,Go和Rust都是在Stack Overflow中快速增长的。而Perl,Objective-C和Ruby等语言市场正在不断萎缩。
我们通过比较每种语言的市场规模和增长速度与不喜欢的百分比来检验上文中提到的结论。下图中橙色点代表最不喜欢的语言。该数据统计我们限制在了高收入国家,例如美国,英国,德国和加拿大。
一般来说,成长的标签与不喜欢的频率存在着一种关系。如果不喜欢的比例超过3%,那么这门编程语言在Stack Overflow中基本都处于市场萎缩的状态。而R,Rust,Typescript和Kotlin在Stack Overflow中都属于快速增长的标签。
但是也有例外,其中之一就是Clojure。在调查中几乎没有人表示不喜欢它,但是它在去年开始快速萎缩。另一个例外是MATLAB,没有很多人表示不喜欢它,但它也正在缩小。这可能和调查数据有关系,任何Web开发人员都可能吐槽PHP,C#或Ruby,但是没有从事过数据分析工作的人却无法吐槽MATLAB表达意见。
除此之外,出现这种情况的原因还有一种。那就是如果大家已经感觉到这种语言正在越来越流行,大家就会更乐于表达自己的不喜欢。长此以往,我们可以预见到也许不喜欢的领域中往往蕴含着技术的自然进步。
上文我们讨论了程序员最不喜欢的编程语言,接下来我们探讨一下大家最不喜欢的技术,本文将技术范围限制在了Stack Overflow中讨论超过1000以上。
从上图中我们看到微软的好几个技术都上榜了,例如Internet Explorer和Visual Basic以及"Microsoft"的自身标签。一些较旧的语言,如COBOL,Fortran和Pascal也出现在了榜单中。
需要强调的是,这并不是对技术、质量或者人气的指责。这只是表达哪些技术在人群中,至少是一部分人群中带来了负面的情绪和不好的体验。
除了不喜欢的技术,我们还统计了广受欢迎的技术。
标签网络
我们可以将所有的标签组合成一个故事,形成一个网络。之前,来代表整个软件生态系统。我们根据每个标签的不喜欢程度对节点进行着色,了解生态系统的哪些部分比其他标签更具争议性。
上图中我们看到Microsoft(以C#和.NET为中心),PHP(以及WordPress和Drupal)以及移动开发(特别是Objective-C)的子生态系统中都存在极化标签集群。在操作系统集群中,我们可以看到诸如OSX,特别是Windows的系统有很多diss者,但是像Linux,Ubuntu和Unix却没有吐槽者。
竞争
就像有人会有特别喜欢的事物,他们有没有特别不喜欢的语言或技术呢?我们可以使用一个特殊的φ系数来测量这个值。
这就突出了软件生态系统的一些"竞争对手":Linux vs Windows,Git vs SVN,vim vs emacs以及R vs SAS。它们之间的关系大多数都不是相反的,而是反映了解决问题的两种相似方法。很多人建议要从过去的流行技术过度到更现代的技术,SVN由Git取代,XML替换为JSON,VB替换为C#。这对程序员来说是非常有意义的,因为没有人愿意使用他们认为已经过时的东西。
本文转自d1net(转载)