又是平常的一天,程序开发人员在Stack Overflow上又发了八千多个工作中遇到的问题。他们到底对哪些技术抱有疑问呢?随着时间的变化,话题变化的趋势如何呢?
今天我们要介绍给大家一个工具Stack Overflow趋势工具。它可以根据Stack Overflow上每个月提问的数量来记录大家对编程语言和软件技术的关注变化。比如,我们可以来比较一下三种编程语言的相对使用率。
图中我们看到关于Python语言的问题在过去几年里快速增长,越来越常见。从Stack Overflow达人中得到的统计数据同样表明,需要Python开发员的公司也越来越多。过去有几年关于PHP的问题多了起来,但之后又趋于平稳。Perl在Stack Overflow上一直没什么存在感,关于Perl的问题在过去九年里一直比较少,数量也比较稳定。
用Stack Overflow提问的数量来衡量开发人员的关注点并不是没有缺点的:有些技术可能本身就更容易给使用的人带来问题。可是我们觉得这种衡量的方法简单实用,能让我们更深入了解开发人员的生态体系。关于某种技术的问题数量快速上升,可能就意味着开发人员确实在使用并学习那种技术,所以用我们这种方法测量某一段时间内关注点的变化是特别有用的。
这里我们给大家看一些例子,分析一下我们从Stack Overflow趋势工具中得到的结论。
下面看看基于JavaScript的一些开源框架,它们的提问数量增减规律很有意思。
JQuery曾经是Stack Overflow中最热门的话题标签之一,看看这里的回帖,很幽默。
但随着新的网站制作框架出现,JQuery占的比例变小了。 angularjs的话题从2013年开始惊人增长(angularjs第一版),然后这种趋势迅速转移到了angular标签(angularjs后续版本)。 同时React库的数量也增长得很快。这些话题标签都是Stack Overflow站上涉及的JavaScript软件项目里最主流的几个。
小型网站制作框架生命周期就有点惨了。有些框架的帖子数量快速增长,然后减少,也就用了几年时间。
Vue.js框架很快成为主流,按年增长率来算,这个标签的帖子是Stack Overflow站上增长最快的之一。像Backbone.js,Ember.js,还有更新一点的Meteor这几个框架生命周期似乎已经快结束了。
总体上看,很大一部分前端网站开发已经不再使用闭源插件了,像Adobe Flash还有已经废弃的Microsoft SilverLight这些插件在2016年仅占总Stack Overflow问题的百分之零点一。
数据科学技术问题数量在过去几年增长得特别快。
R统计编程语言增长稳定,目前流行的pandas是一种用Python编写的数据科学软件库,其趋势和R类似。MATLAB语言是闭源编程语言,从Stack Overflow建站开始数量一直在上升,但是最近已经趋向平稳,有可能要开始下降。
TensorFlow是Google的开源机器学习框架,2015年下半年才发布,现在数量增长速度惊人。另外数量最大的前500个标签中,只有swift3的增长比去年要快。
对大数据框架的关注度也有类似的增长趋势。我们可以比较一下Apache制作的几大负责大数据集储存处理的开源项目。
Hadoop的数量从2009年起增长,新一点的查询系统Hive是基于Hadoop构建的,数量同样在增长。Cassandra的关注度稳定了好几年,但是Spark的使用率激增,问世之后仅仅几年已经成为提问数量最多的技术。
大家最喜欢的编程语言,软件技术或软件框架是什么?本帖中没提到吗?用Stack Overflow趋势工具吧。自己画图表,看看从这些开发员生态系统的变迁中能学到什么,将来又可能会有什么样的发展。
作者David Robinson,数据科学家