写点什么

GitHub 上的编程语言:JavaScript 领衔 Java 次之

  • 2015-08-26
  • 本文字数:864 字

    阅读完需:约 3 分钟

最近, Linguist 项目统计了代码托管网站 GitHub 上各类编程语言的热度。下图展示了自 2008 年以来各编程语言的排名状况及它们的相对热度。

从上图中可以看出,Perl 已经不再流行,C#开源之后流行度迅速上升,JavaScript 高居榜首,Java 则一路攀升至第二名,“最好的语言”PHP 没有变化。 GitHub 的 Ben Balter 说,十年前 Java 是一个闭源开发的语言,银行和企业用来开发应用;如今 Java 是构建开源软件的最流行语言之一。Balter 认为,Java 的崛起是 Google 选择用它构建 Android 的结果。作为当今智能手机最广泛使用的操作系统 Android 的兴起使得 Java 开发者增多,同时企业里对版本控制平台的需求大大增加,这些因素都可能促成了现在这样的结果。

这个排名是基于 GitHub 上公共和私有库使用的语言及其创建时的年份统计的,该排名并没有统计分支中的情况。由于没有统计每一个仓库中的分支,统计得到的数据并不是各种语言的使用总量。另外,这种方法没有对统计对象进行加权,比如说,GitHub 上有相当多不同语言的 Hello World 项目仓库,它们之所以被创建,仅仅是因为使用者作为新手学习时进行的尝试。如果不把这一类意义不大的仓库剔除,编程语言使用情况的统计结果就会出现偏差。

如果采用加权法对统计进行改进的话,大型项目的权重需要设置得比小型项目的权重更大。这是因为,小型项目(如 batch files、css、html、examples、tests 等)往往约定俗成地使用某一种特定的语言,然而对于大型项目,却有多种语言可以选择。至于实现项目时到底选择哪一种语言,那么就要看程序员的考虑和喜好了,这也才是编程语言使用率统计的重点所在。新创建的(大型)项目相比于过往创建的(大型)项目,其权重也可以更大。将项目的代码行数和创建日期作为加权因子同时在统计中考虑,能够更好地体现各语言的使用率趋势。


感谢魏星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注 我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-08-26 19:024712
用户头像

发布了 268 篇内容, 共 128.2 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

你肯定听说过requests,但你知道2022年有一个比 requests 还牛的爬虫库吗?

梦想橡皮擦

5月月更

专访朱雷:昔日的游戏少年,如今的Python工匠

图灵教育

Python 程序员 图灵访谈

从服务端生成Excel电子表格(GcExcel + SpreadJS)

葡萄城技术团队

服务器端开发 前端表格控件 测试比较

【直播回顾】OpenHarmony知识赋能五期第四课——子系统音频解读

OpenHarmony开发者

OpenHarmony 多媒体

C语言_结构体总结

DS小龙哥

5月月更

【刷题第七天】15 三数之和

白日梦

5月月更

前端生成PDF,让后端刮目相看

葡萄城技术团队

PDF pdf.js

从服务端生成Excel电子表格(Node.js+SpreadJS)

葡萄城技术团队

SpreadJS 前端表格

java培训Nginx 快速入门

@零度

JAVA开发

答题交互功能深入研究

CRMEB

Druid 连接池源码阅读 03

石小天

使用 OData 实施 SAP 系统与第三方系统集成的步骤概述

汪子熙

系统集成 SAP OData 5月月更 第三方系统

云原生小课堂 | 如何打造一款软硬兼施、多功能、零损耗的云原生网络方案

York

云原生 性能 智能网卡vpc 容器网络方案

数据库连接池 -Druid 源码学习(三)

wjchenge

Druid 数据库连接池

如何让你的 WordPress 网站更安全

海拥(haiyong.site)

WordPress 5月月更

druid源码学习三-继续探究DruidDataSource类init方法

Nick

Apache Druid

【大数据培训】面试中数据仓库重要概念

@零度

数据仓库 大数据开发

Autograd解析|OneFlow学习笔记

OneFlow

人工智能 深度学习 数学原理 Autograd模块

web前端培训单元测试入门知识分享

@零度

单元测试 web前端开发

封装格式介绍

Loken

音视频 5月月更

【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)

冰河

并发编程 多线程 高并发 协程 异步编程

网站开发进阶(六十一)详解js中Number()、parseInt()和parseFloat()的区别

No Silver Bullet

5月月更 Number() parseInt() parseFloat()

探讨企业知识管理的困惑

小炮

企业知识管理

租房开放源码

源字节1号

租房小程序

druid 源码阅读 3——DataSource的结构(变量)

张大彪

CMMI研究院刚刚推出两门新认证课程

高山

培训 CMMI 确保安全 确保安防

Docker下的OpenResty三部曲之二:细说开发

程序员欣宸

Docker 5月月更

增强现实(AR)技术在企业管理软件中的一个实际创新案例

汪子熙

AR SAP 虚拟现实 增强现实 5月月更

自开发 Web 应用如何使用 SAP Customer Data Cloud 实现自定义登入功能

汪子熙

用户权限 第三方登录 SAP 登录验证 5月月更

FlyFish2.0版本后端源码学习笔记

云智慧AIOps社区

前端 大前端 数据可视化 大屏可视化

浅析微服务全链路灰度解决方案

阿里巴巴云原生

阿里云 微服务 云原生 灰度

GitHub上的编程语言:JavaScript领衔Java次之_Java_张天雷_InfoQ精选文章