几周前我提到过如何通过使用git的提交元数据(metadata)和Rapleaf API 来收集Github上热门组织的一些统计资料(日志, 每个组织的数据)。
现在我又对这些数据按编程语言而不是组织进行划分产生了兴趣。网上关于各编程语言对应的屌丝程序员的描述比比皆是,但我还是很好奇它们是如何与现实中的人们对应起来的。一开始,我想先简单地统计一下每种编程语言使用者的年龄、收入和性别。基于我已经收集的数据,这一工作还是比较轻松的:
- 对于统计每个repo使用的编程语言,我使用Github自带的语言统计结果。例如,Github估计这个项目中75%是java代码。
- 统计了每个项目中某种语言代码占用大于50%的那些贡献者的收入
- 过滤出那些收入点>100的编程语言
下面是收入的统计结果,升序排列:
Language | Average Household Income ($) | Data Points |
Puppet | 87,589.29 | 112 |
Haskell | 89,973.82 | 191 |
PHP | 94,031.19 | 978 |
CoffeeScript | 94,890.80 | 435 |
VimL | 94,967.11 | 532 |
Shell | 96,930.54 | 979 |
Lua | 96,930.69 | 101 |
Erlang | 97,306.55 | 168 |
Clojure | 97,500.00 | 269 |
Python | 97,578.87 | 2314 |
JavaScript | 97,598.75 | 3443 |
Emacs Lisp | 97,774.65 | 355 |
C# | 97,823.31 | 665 |
Ruby | 98,238.74 | 3242 |
C++ | 99,147.93 | 845 |
CSS | 99,881.40 | 527 |
Perl | 100,295.45 | 990 |
C | 100,766.51 | 2120 |
Go | 101,158.01 | 231 |
Scala | 101,460.91 | 243 |
ColdFusion | 101,536.70 | 109 |
Objective-C | 101,801.60 | 562 |
Groovy | 102,650.86 | 116 |
Java | 103,179.39 | 1402 |
XSLT | 106,199.19 | 123 |
ActionScript | 108,119.47 | 113 |
这是上表对应的柱状图:
对于大多数语言的排名还是比较符合预期的,得出了一下结论:
- Haskell是一种非常学术化的(academic)语言,因此学术界不会以薪资而闻名。
- PHP是一种非常通用的语言,普通的、年轻的、低收入的程序员都可以上手。
- 从图谱右侧最高的部分可看出,Java和ActionScript多用于企业级软件的开发,因此其薪资待遇是相当的可观。
另一方面,由于对某些语言,像XSLT, Puppet, CoffeeScript不太熟悉,大家知道为什么这些语言排名较高或收入较低吗?感谢告知。
需要说明的是:
- 所有这些数据都来自开源项目,因而可能无法精确地体现那些闭源开发者们的收入水平。
- Rapleaf并没有完全统计所有人的收入,因此数据可能存在偏差。
- 数据(年龄、性别……)有误差
- 没有对Github上所有项目进行统计,因此结论可能不具有代表性。
最后,对统计结果或方法有任何想法或建议请告知我,我还会再出一份按年龄、性别排名的编程语言报告。