GitHub年度报告发布!Python首次超越JavaScript
全球开发者数量激增,GenAI 项目呈爆炸式增长趋势,推动编程语言的应用格局也发生了巨大变化,最新的 GitHub Octoverse 报告来了!
1、Python 首次超越 JavaScript,成为 GitHub 平台最顶级编程语言
不同于流传“AI 即将取代程序员”的种种言论,GitHub 在最新发布的 2024 年度 Octoverse 开源状态报告中指出,随着 AI 的迅速发展,越来越多的开发者将 AI 模型构建到应用程序中,并大量参与到 GitHub 上的 AI 项目中。
截至目前,GitHub 上有 5.18 亿个项目,同比增长 25%,2024 年期间的项目贡献量达 52 亿次。

此外,GitHub 上托管的公共 AI 项目几乎比去年增加了一倍,达到了 137000 个,超过一百万的开源维护者、学生和教师正在使用免费的 GitHub Copilot 工具。
在这一趋势下,一个出乎众人意料的调查结果出现了——Python 取代 JavaScript 成为 GitHub 上最受欢迎的语言,终结了 JavaScript 长达十年的霸主之位。这也是自 2019 年 Python 首次超越 Java 稳居第二以来,又一次发生大规模的变化。

Python 软件基金会执行董事 Deb Nicholson 表示:“我们的目标是让 Python 成为一个出色的工具,帮助不断壮大的开发者社区构建他们所设想的世界。我们非常高兴地了解到 Python 在 GitHub 上的受欢迎程度持续上升,尤其是随着 Jupyter Notebooks、数据分析、AI 和开源技术的使用增加。”
GitHub 特别指出 Python 在该平台上流行的两个关键因素——不止生成式 AI 的兴起这一层原因,还有数据科学的加持。

GitHub 补充道:“Python 在机器学习、数据科学、科学计算、业余爱好者和家庭自动化等领域有着广泛的应用。Python 使用率的上升与来自 STEM 领域的大量人群加入开源社区(而非传统的软件开发者社区)有关。”
值得注意的是,JavaScript 依然在 GitHub 代码推送活动中占据第一位。更多开发者仍然更频繁地使用 JavaScript 推送代码,但在 GitHub 上所有贡献类型的总体活跃度上,Python 排在了第一位。
虽然 Python 的贡献者数量在代码推送和其他活跃度方面的增长速度都超过了 JavaScript,但并未超过 JavaScript 和 TypeScript 的总和。与其说是 JavaScript 被 Python 超越是因为其社区发展放缓,不如说是越来越多的新提交转向了 TypeScript 语言。TypeScript 是 JavaScript 的超集,且与 JavaScript 共享 npm 生态系统,使得 JavaScript 开发者可以轻松逐步采用。
时下,TypeScript 正在蚕食 JavaScript 的地位。从 2014 年到 2019 年呈指数级增长后,TypeScript 去年超越 Java,成为 GitHub 上排名前三的编程语言。它的持续增长也显示了其作为编程语言、类型检查器和编译器一体化工具的实用性。

当然,受益于机器学习兴起的不仅仅是 Python。Jupyter Notebooks 的使用率在过去一年中飙升了 92%,自 2022 年以来飙升了 170%。
GitHub 在发布报告中称,“开发人员的概念以及开发人员的工作范围正在发生变化。Python、HCL 和 Jupyter Notebooks 等的兴起表明,开发人员的概念已不仅限于软件开发人员,还包括运营或 IT 开发人员、机器学习研究人员和数据科学家等角色。”
2、GenAI 的现状
过去一年里,人工智能正在帮助鼓励全球范围内的编码,使来自更多国家的人们能够更轻松地进行编码。
报告称:“一些非英语人口大国的崛起值得关注,因为与此同时,生成式人工智能工具也在不断涌现,这些工具越来越多地使开发人员能够用自然语言编写代码。”
开发者们从此前关注 AI 前沿技术探索转而更关注 AI 的落地,这对行业来说是个好消息。GitHub 指出,通过吸引更加多元化的开发者社区,这最终将推动长期创新。
就目前而言,AI 模型正在成为开发者技术栈的一部分。GitHub 表示,生成式 AI 的创新在 GitHub 上逐渐进入公共代码库,显示出开发者越来越多地在开源环境中进行构建。随着开发者发现越来越多的 AI 用例,生成式 AI 模型在软件开发中的角色已从帮助开发者编写代码,转变为构建应用程序的新基石。
然而,开发者对性能良好、计算成本低的小型模型的需求日益增长,主要源于在智能手机中嵌入 AI 模型的需求。值得注意的是,2024 年开发者数量增长最快的开源 AI 项目是 ollama/ollama,这表明本地运行的大型语言模型(LLM)的实验在增加。随着模型变得更小、计算要求更低,GitHub 预计会有更多开发者在应用中使用这些模型。
GitHub 上的开发者正在努力降低 AI 实验的门槛。排名前 10 的公共生成式 AI 项目致力于改善对 AI 模型的访问,从而使实验变得更容易。

据 GitHub 统计,开发者在 AI 开发工作也出现了一些新趋势同样值得关注:
-
小型模型的兴起。在过去的一年里,GitHub 上的开发者开始使用 Meta 的 LLaMA 模型,这表明人们对小型开源模型的兴趣日益增加。
-
针对专业用途的 AI 工具开发。比如,通过项目 binary-husky/gpt_academic,可以看到开发者越来越关注开发专门用于学术研究等特定场景的 AI 工具。
-
对 AI 代理自动化的持续关注。AutoGPT 相关项目的持续活跃表明,自动化仍然是探索的重点领域,开发者正在致力于增强 AI 代理的能力。
相关文章:
GitHub年度报告发布!Python首次超越JavaScript
全球开发者数量激增,GenAI 项目呈爆炸式增长趋势,推动编程语言的应用格局也发生了巨大变化,最新的 GitHub Octoverse 报告来了! 1、Python 首次超越 JavaScript,成为 GitHub 平台最顶级编程语言 不同于流传“AI 即将取…...
EdgeX Message Bus 消息总线
EdgeX Message Bus 消息总线 一、概述 EdgeX MessageBus 内部消息总线,用于 EdgeX 服务之间的内部通信。 EdgeX 服务是指来自 EdgeX 的任何核心/支持/应用程序/设备服务或使用 EdgeX SDK 构建的任何自定义应用程序或设备服务。 EdgeX MessageBus 用于内部 EdgeX 服务与服务之间…...
【JavaEE进阶】关于Maven
目录 🌴什么是Maven 🌲为什么要学Maven 🎍创建一个Maven项目 🎄Maven核心功能 🚩项目构建 🚩依赖管理 🎋Maven Help插件 🍀Maven 仓库 🚩本地仓库 Ὢ…...
YOLOv9-0.1部分代码阅读笔记-autoanchor.py
autoanchor.py utils\autoanchor.py 目录 autoanchor.py 1.所需的库和模块 2.def check_anchor_order(m): 3.def check_anchors(dataset, model, thr4.0, imgsz640): 4.def kmean_anchors(dataset./data/coco128.yaml, n9, img_size640, thr4.0, gen1000, verboseTrue…...
Electronjs+Vue如何开发PC桌面客户端(Windows,Mac,Linux)
electronjs官网 https://www.electronjs.org/zh/ Electron开发PC桌面客户端的技术选型非常适合已经有web前端开发人员的团队。能够很丝滑的过渡。 Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.…...
谷歌浏览器 安装谷歌浏览器特定版本后禁止自动更新
问题描述 我们通过离线安装谷歌浏览器后,第一次打开浏览器时会默认下载最新版本,等到我们重启浏览器后它会自动更新。在项目中为了能固定浏览器版本,所以要禁止谷歌浏览器的更新,网上找了好多方法都没用,自己摸索出来…...
Linux计算时间差
Linux计算时间差 1、Linux计算时间差2、时间差的应用 1、Linux计算时间差 在Linux中,计算时间差通常是为了统计、监控或调试。时间差可以用来衡量任务执行的时间,或者两个事件之间的间隔。例如,响应时间、执行时间、定时任务与延时处理等 以…...
Python的3D可视化库【vedo】2-5 (plotter模块) 坐标转换、场景导出、添加控件
文章目录 4 Plotter类的方法4.7 屏幕和场景中的坐标点转换4.7.1 屏幕坐标转为世界坐标4.7.2 世界坐标转为屏幕坐标4.7.3 屏幕坐标取颜色 4.8 导出4.8.1 导出2D图片4.8.2 导出3D文件 4.9 添加控件4.9.1 添加内嵌子窗口4.9.2 添加选择区4.9.3 添加比例尺4.9.4 为对象添加弹出提示…...
【VUE】13、安装nrm管理多个npm源
nrm(npm registry manager)是一个 npm 源管理器,它允许用户快速地在不同的 npm 源之间进行切换,以提高包管理的速度和效率。以下是对 nrm 使用的详细介绍: 1、安装nrm 在使用 nrm 之前,需要先确保已经安装…...
【SQL/MySQL 如何使用三种触发器】SQL语句实例演示
触发器介绍 – 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只…...
Docker容器五种网络驱动模式详解
Docker 网络用于在容器之间以及容器与外部网络之间提供通信功能。它允许容器在隔离的网络环境中运行,同时也能根据需要与其他容器或外部网络进行交互。通过使用网络驱动,Docker 可以创建不同类型的网络,以满足各种应用场景的需求。 传统上&am…...
netfilter简介及流程图
Netfilter 是 Linux 内核中用于网络包过滤和操作的框架,由 Rusty Russell 于1998年创立,旨在改进旧的 ipchains 和 ipfwadm 实现。它采用模块化设计,具有良好可扩展性,并在2000年3月合并进Linux 2.3.x内核版本。 Netfilter的主要…...
Vue 前端代码规范
在 Vue 前端开发中,遵循代码规范可以提高代码的可读性、可维护性和团队协作效率。以下是一些详细的 Vue 前端代码规范,涵盖了多个方面: ### 1. **项目结构** - **目录结构**:- src/ 目录下应包含 components/、views/、store/、router/、ass…...
JAVA:组合模式(Composite Pattern)的技术指南
1、简述 组合模式(Composite Pattern)是一种结构型设计模式,旨在将对象组合成树形结构以表示“部分-整体”的层次结构。它使客户端对单个对象和组合对象的使用具有一致性。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什么是组合模式 组合模式…...
js常用方法之: 预览大图(uniapp原生方法封装)
方法: //预览图片 pic可传单个图片地址字符串 或 图片数组(带index) previewPic: function(pic, index) {if (!pic) return;if (index undefined) {let array [];array.push(pic);uni.previewImage({urls: array,current: array[0]});} else {uni.previewImage({urls: pic,…...
python 高级用法
1、推导列表 ans [ x for x in range(6)] print(ans)ans [ x for x in range(6) if x > 2] print(ans)ans [ x*y for x in range(6) if x > 2 for y in range(6) if y < 3] print(ans) 2、map 函数 a list(map(list,"abc")) print(a) b list(map(ch…...
TISAX认证最新消息
一、TISAX认证概述 TISAX(Trusted Information Security Assessment Exchange)认证是由德国汽车工业协会(VDA)主导开发的一种信息安全评估标准。该认证旨在确保汽车供应链中的信息安全,帮助汽车产业链中的企业保护其敏…...
Python中所有子图标签Legend显示详解
在数据可视化中,图例(legend)是一个非常重要的元素,它能够帮助读者理解图表中不同元素的含义。特别是在使用Python进行可视化时,matplotlib库是一个非常强大的工具,能够轻松创建包含多个子图的图表…...
python脚本中使用git命令
python脚本中使用git命令 一、背景 在做项目输入文件的版本管理的时候,我发现我需要用到库上面的文件来作为版本管理比较的输入,通常情况下,我是先根据tag将两个版本的文件拉取到本地,然后放进我的工程里在运行脚本来完成版本的比较,但是我发现这样其实很麻烦,所以就想着…...
本地maven项目打包部署到maven远程私库
目的:在自己的maven项目中,要把当前maven项目部署到maven私库,供其他人引入依赖使用。 首先要确保你当前能访问到你的私库,能拉私库的maven依赖即可。 maven部署命令: mvn deploy:deploy-file -Dmaven.test.skiptrue -…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
