原文:What Programming Languages Are Used Most on Weekends
作者:Julia Silge
翻译:Vincent
译者注:本文介绍了作者使用公开可访问的数据,并且对这些数据进行分析,从而了解现在的开发者们在平时上班以及周末在家的时候分别喜欢提问哪一门语言的问题,可以了解目前软件行业哪一门语言比较热门,哪一门语言已经深入到工作中去了这些信息。以下为译文。
对我来说,周末主要是与家人共度时光,休闲的阅读书籍,以及为我参与的开源项目工作一会。这些周末的项目与我日常在Stack Overflow的工作有重叠,但并不是完全相同的。许多开发人员都在为学习或职业生涯(或者只是为了好玩!)而进行自我提升,在Stack Overflow上,我们为专业人员到业余爱好者提供各种类型的技术。当人们工作的时候,我们可以回答他们的问题。但是,在周末的时候,作为非工作日,人们一般会趋向于问哪些编程语言问题呢?
Kaggle上公共的StackLite数据集来研究一下在工作日和周末提出的问题有哪些差异。这个数据集可以供任何人分析;你也可以使用Kaggle Kernel开始研究你对Stack Overflow上的问题和标签的疑问。
标签对比
做这个分析的话,我们需要用到那些还未删除的问题,以及使用范围超过10,000个问题的标签。我们使用UTC日期来定义周末,这可能不会完全覆盖所有用户的周末。总的来说,这包括工作日的10,451,274个问题和周末的2,132,073个问题。这个数字的差异主要是由于人们在工作日的时候大量使用了Stack Overflow,在我们的网站上发布的问题和流量中,我们都看到了这个模式。
由于工作日/周末的模式,我们并不关心周末的标签是否比工作日的标签使用的更频繁;基本上所有的标签都是在工作日的时候用的比较频繁。相反,让我们来探究一下,与工作日相比,在周末的问题中,哪些标签占据了更大的使用量,反之亦然。
哪个问题标签在相对频率上有最大的不同?
![](http://i.imgur.com/xvmMoHo.png)
为了更好地解释这个问题,让我们来看一些数字。在这个数据集里,Haskell编程语言在周末的问题上占了0.365%,但在工作日的问题上只有0.21%,这表明在周末的时候人们更喜欢提问关于Haskell相关的问题。Sharepoint在周末的问题上占0.0683%,而工作日问题的比例是0.188%,这表明它在工作日更常用。
让我非常高兴的是,函数式编程语言Haskell在周末使用的技术中占领先地位,因为我基本上就是在周末的时候使用Haskell:
![](http://i.imgur.com/NCjWTDX.png)
我还没有学会Haskell。但是,对所有利用周末来做这些事的人来说,这是值得称赞的!现在,享受一则关于Haskell的笑话,Haskel这门语言在学术界和数学家中非常受欢迎,但在企业环境中却不常用。
让我们做一些其他的观察吧!
我们看到一些低级的技术在周末很流行,比如C、C++、指针和汇编,以及与数学相关的标签,比如算法、递归和(当然)数学。
Heroku和Meteor是应用程序平台,通常用于快速原型设计,这可能表明它们正在被用于周末的业余爱好者项目。
许多周末的技术都与微软相关,包括Excel、SQL Server、VBA和T-SQL相关的标签。其他的包括Oracle等企业技术。
我们也可以通过将问题的总数与相对频率进行比较结果用可视化的方式展示出来。
![](http://i.imgur.com/1tcO2sH.png)
在这个图中,越靠近右边的标签(JavaScript, Java, C#, PHP等等)会被问到更多的问题,而越靠近左边的标签的问题是很少的。越接近虚线,表明该问题标签在周末和工作日的频率差不多,而离虚线最远,则表明该问题标签在周末/工作日的频率差异很大。
我们可以再次看到,大多数受欢迎的标签都是与微软(C#, ASP.NET, SQL Server, Excel, VBA)相关,许多周末的标签都是与C和C++等技术相关,还包括像Swift和node.js等新语言。
周末的相关工作
我们还可以使用这个数据集来检查开发人员如何随着时间的推移改变他们使用这些技术的方式。我们可以使用建模来找到那些周末比例(周末提出的问题百分比)的标签,随着时间的推移而变化最大。对于有超过20,000个问题的标签来说,与过去相比,哪些标签在周末发布的时间更少?
![](http://i.imgur.com/6j4vBUr.png)
在这里我们看到了像Ruby on Rails和Scala这样的标记,开发人员在几年前的周末使用的频率更高,但是在现在的周末中使用的频率却越来越低了,工作日的时候却用的越来越多了。这些技术在过去是更加面向周末的,但现在是更多开发者日常工作的一部分。这些年来,版本控制系统SVN也在周末的使用中有所减少;最可能的是由于GitHub(2008年启动)的出现,使得使用SVN管理个人周末项目代码的人减少了。
![](http://i.imgur.com/F7Np8GC.png)
我们可以看到游戏引擎Unity3D在周末的问题标签中被提及的最多,当然构建移动应用的问题标签的数量也差不多。现在看来,与前几年相比,周末的时候越来越多的开发者都投入到了游戏和应用程序的设计当中来。如何过周末又有了一个更好的选择!
我们使用的是公开可访问的数据来进行本次分析的,希望我们社区的其他开发人员能够通过研究提供的数据产品发现一些其他信息。我们就是使用类似于这样的数据集来回答数据团队中关于理解、雇佣和与开发人员打交道的各种问题。要了解我们是如何使用数据分析解决你的问题,以及更多关于开发人员观点的,都可以在Stack Overflow上面得到答案。