php循环 编程语言的叛逃路线,猜猜 PHP 转投最多的是?
我看了一篇博客,标题是《为什么我们要从 X 语言转到 Y 语言》,具体是哪种编程语言,我忘了。于是我开始想,是不是可以把这些文章归纳起来,生成一
伯乐在线/刘唱 编译,Erik Bernhardsson 我看了一篇博客,标题是《为什么我们要从 X 语言转到 Y 语言》,具体是哪种编程语言,我忘了。于是我开始想,是不是可以把这些文章归纳起来,生成一个关于从 X 语言转到 Y 语言的 N*N 的联列表(contingency table)? 所以我写了个小脚本,可以用脚本在 Google 上查询,再加上一小段代码就能得到搜索结果的数目。我尝试了用几个不同的关键词来搜索,像“move from to ”,“switch to from ”等等。最终得到了一个所有语言的 N*N 的联列表。 本文图表尺寸很大,「程序员的那些事」先来解释如何读图: (点击上图,然后双指缩放,可以看到详细数字。以下类同) 有意思的部分来了。实际上我们可以把搜索结果数看作是编程语言之间转换的概率,从而得出一些关于未来编程语言的流行趋势的结论。一个关键点是,这个(编程语言转换过程)的平稳分布并不取决于它们的初始分布。事实证明,这只是矩阵的第一特征向量(first eigenvector)而已。所以没必要去假设现在哪种编程语言很流行,我们推测出的未来的平稳分布状态和初始状态是独立的。 我们需要把上述的联列表转化成转移矩阵(stochasticmatrix)的形式,用来描述从状态 ii 到状态 jj 的概率。非常简单——想要把联列矩阵解释为转移概率的话,可以将联列矩阵的每一行正则化。这样就能得到从 X 语言到 Y 语言的粗略近似概率。 找出第一特征向量并不重要,我们只要把一个向量多次乘上这个转移矩阵,最终会向第一特征向量收敛。顺便说下,可以看看下面的注意事项,有关于我如何操作的更多讨论。 Go 是编程语言的未来(么?) 闲话少说,下表是平稳分布下排名前几的语言: 16.41% Go 14.26% C 13.21% Java 11.51% C++ 9.45% Python 根据未来流行度,我把转移矩阵按照编程语言做了排序(根据第一特征向量所做的预测) (点击查看大图) 令人惊讶的是(至少对我来说),Go 成为最大赢家。有超多的搜索结果显示大家由其他语言转向 Go。我都不能确定我对此是什么感受了(我对 Go 的感情很复杂)。但是我的绝对分析指出了一个必然结论,那就是 Go 值得关注。 C 语言到今年就有 45 岁了,仍然表现良好。我手动做了一些搜索,有很多都是人们真的在写他们通过从另一种编程语言迁移到 C,对特定的紧密循环(tight loops)做了优化。这个结果是错的吗?我不这么认为。C 语言是计算机工作的通用语言(lingua franca),如果人们还会积极地将其他语言的片段转换为 C 语言,那么这个结论也就可想而知了。说真的,我认为 C 语言会在它 100 岁生日php循环,也就是 2072 年以前,变得更强大。有我在 LinkedIn 上对 C 的支持,我希望招聘人员能在 21 世纪 50 年代的时候给我一些关于 C 语言的工作机会(我收回上面那句话——希望 C 会比 LinkedIn 活得久)。 除了上面提到的以外,这些分析也很符合我的预期。Java 还在,Perl 灭亡了,Rust 做的相当不错。 顺便一提,这个分析让我想起了下面这条推 这图非常有意思,展示了在数据分析中 R 和 Python 之间的转化率。 JavaScript 框架 我对前端框架也做了同样的分析: 我预期 React 会脱颖而出成为第一,但有趣的是,Vue 也表现得非常好。我很惊讶于 Angular 的表现——传闻大批的人似乎在逃离 Angular。 数据库 我开始留意共享单车 App,深度学习框架还有其他一些东西,但是数据太稀疏了,也不太可靠。有结果的话,会及时向大家公布的! 注意事项 defget_n_results_dumb(q): r=requests.get('http://www.google.com/search', params={'q':q, "tbs":"li:1"}) r.raise_for_status() soup=bs4.BeautifulSoup(r.text) s=soup.find('div',{'id':'resultStats'}).text ifnots: return0 m=re.search(r'([0-9,]+)',s) returnint(m.groups()[0].replace(',','')) 看完本文有收获?请转发分享给更多人 关注「程序员的那些事」,提升编程技能 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |