几个星期前,我在博客中描述我如何使用Git的元数据和RapLeaf的API来构建GitHub组织的人口统计概况(查看博客文章点此, 查看每个组织的数据点此)。
我也曾尝试用不同方法截取数据,得出针对每个编程语言而不是组织的人口统计概况。有关使用不同编程语言的开发人员的刻板印象比比皆是,我很好奇它们如何与现实挂钩。从每个编程语言使用人群的基本信息如年龄、收入、性别开始分析,根据我手上既有的数据,要做到这一点并不困难:
- 我采用GitHub对每个数据资源库编程语言组成情况的估算。例如,GitHub估计某个项目使用了75%的Java语言;
- 我从中得知每个项目中使用比例超过50%的是什么编程语言,某个项目中使用这一主要语言的开发人员是谁,并把他们的收入累加;
- 我进而筛选出得到大于100收入数据点的编程语言。
以下便是收入情况的统计,根据家庭平均收入由低到高排列:
同样的数据以图表的形式体现如下:
多数的排行结果大致符合我的预期:
- Haskell是种非常学术的语言,因此在收入方面并不可观;
- PHP是种较为容易掌握的语言,方便非专业的或初级编程人员使用,也因此收入相对不高
- Java和ActionScript则被认为是高级的语言,多用于企业软件的开发,因此收入颇丰。
另一方面,我对处在低端和高端的某些语言并不十分了解,比如XSLT, Puppet, and CoffeeScript , 也不清楚它们排名前后的原因。
我们也要看到使用这些数据得出结论的局限性:
- 这些项目是开源的,无法适用于封闭程式开发人员的报酬;
- Rapleaf数据不涉及总收入信息,样本可能因此有所偏差;
- 我忽略了年龄、性别等因素对造成数据分布偏态的可能性;
- 我没有分析所有的GitHub数据资源库,作为样本的用户资料可能不具代表性。
综上,即使在绝对值上有所偏差,这仍然是比较不同编程语言间相对收入差别的一个开始。