Reddit基本可称为世界最大的开源社群论坛,聚集了大量的开发者,最近Stuck_In_the_Matrix维护的reddit数据集偶然被发现,他归档了大部分 编程语言 之间的比较关系,涉及的数据量达到100GB,以下是这些数据可视化的结果。
数据可视化的结果显示了相对于全局平均值(圈越大,颜色越深代表权重越大),每张图列出了100个该编程语言最常被搜索到的单词。例如,在 Python 中“learnpython”一词被搜索的频率最多,而Python的平均搜索频率比其他所有编程语言都要高0.01%。
在进行频率计数时,我删除了常用的一些语气词之类的,以便影响 可视化 结果。根据图片不难看出:
-
Python:搜索频率最高的往往是与学习教育有关的,比如 “learnpython”,“subreddit”,“questions”,“post”等词语更为频繁,这说明可能有很多开发者还处于学习Python的阶段。
-
Javascript:该编程语言非常强调框架和工具。 “react“占据主导并不奇怪。
-
Java&C#:这些语言被众多企业所使用,其背后也有企业支持,所以有很多与企业开发相关的单词频率很高。
-
Go:不能逃避Go的最大争议:“generics”
-
Php:评论中包含比其他语言更多的“shit”。(这是什么情况?PHP不是世界上最好的编程语言吗?)
根据开发者的注册信息可以得出该开发者使用的编程语言,通过开发者之间的关系可以显示出编程语言之间的微妙关系,比如:
-
Python:订阅Python的开发者数量最大,从其评论中可以看出,Python也是最吸引其他开发者的一门编程语言( Objective-C 除外)。该编程语言因为其门槛较低,并受到机器学习兴起的影响被炒得
-
Swift :这种编程语言的开发者一般是以自我为中心,基本不涉猎其他语言。R也是,但其中一些用户也在Python中发表了评论。
-
Rust:订阅者数量中等大小,但令人惊讶的是,它吸引了大量的评论者。
评论长度
通过显示的平均评论长度来看, 函数式编程 语言基本上位于前列,比如 Scala 和Ocaml。评论的长度与用户数量有一定关系,但并不成比例,因为较大的社区倾向于有更多的“浅”评论。
开发者提交数量
最后一个结果是显示开发者提交的文档或项目数量。仅使用最近3个月的数据,虽然数据集选取较小,但足以看出差别了。
Rust和 Haskell 凭借着30和26份提交占据提交数量最多的前两位,Python、C++紧随其后。
结论
这份可视化结果比较简单,但也有很多值得探究的地方,整个过程中我使用到的工具是用D3.js可视化,使用SQLite存储数据,用Python进行分析。