当前位置: 首页 > news >正文

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 仓库 🚩本地仓库 &#x1f6a…...

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&#xff08;Trusted Information Security Assessment Exchange&#xff09;认证是由德国汽车工业协会&#xff08;VDA&#xff09;主导开发的一种信息安全评估标准。该认证旨在确保汽车供应链中的信息安全&#xff0c;帮助汽车产业链中的企业保护其敏…...

Python中所有子图标签Legend显示详解

在数据可视化中&#xff0c;图例&#xff08;legend&#xff09;是一个非常重要的元素&#xff0c;它能够帮助读者理解图表中不同元素的含义。特别是在使用Python进行可视化时&#xff0c;matplotlib库是一个非常强大的工具&#xff0c;能够轻松创建包含多个子图的图表&#xf…...

python脚本中使用git命令

python脚本中使用git命令 一、背景 在做项目输入文件的版本管理的时候,我发现我需要用到库上面的文件来作为版本管理比较的输入,通常情况下,我是先根据tag将两个版本的文件拉取到本地,然后放进我的工程里在运行脚本来完成版本的比较,但是我发现这样其实很麻烦,所以就想着…...

本地maven项目打包部署到maven远程私库

目的&#xff1a;在自己的maven项目中&#xff0c;要把当前maven项目部署到maven私库&#xff0c;供其他人引入依赖使用。 首先要确保你当前能访问到你的私库&#xff0c;能拉私库的maven依赖即可。 maven部署命令&#xff1a; mvn deploy:deploy-file -Dmaven.test.skiptrue -…...

自己搭建专属AI:Llama大模型私有化部署

前言 AI新时代&#xff0c;提高了生产力且能帮助用户快速解答问题&#xff0c;现在用的比较多的是Openai、Claude&#xff0c;为了保证个人隐私数据&#xff0c;所以尝试本地&#xff08;Mac M3&#xff09;搭建Llama模型进行沟通。 Gpt4all 安装比较简单&#xff0c;根据 G…...

[免费]SpringBoot公司财务管理系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBoot公司财务管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBoot公司财务管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信息化技术&…...

5G 模组 RG500Q常用AT命令

5G 模组 RG500Q常用AT命令 5G 模组 RG500Q常用AT命令 at ATQNWPREFCFG\"mode_pref\",nr5g && sleep 1 at ATQNWPREFCFG\"nr5g_band\",79 && sleep 1 at atqnwlock\"commo…...

【YOLO 项目实战】(11)YOLO8 数据集与模型训练

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO 项目实战】&#xff08;1&#xff09;YOLO5 环境配置与检测 【YOLO 项目实战】&#xff08;10&#xff09;YOLO8 环境配置与推理检测 【YOLO 项目实战】&#xff08;11&#xff09;YOLO8 数据…...

基于matlab的单目相机标定

链接&#xff1a; 单目相机标定&#xff08;使用Matlab&#xff09; 用Matlab对单目相机参数的标定步骤&#xff08;保姆级教程&#xff09; 1.准备代码 调用摄像头代码&#xff08;用于测试摄像头是否可用&#xff09;&#xff1a; #https://blog.csdn.net/qq_37759113/art…...

DB-GPT 智谱在线模型配置

LLM_MODELzhipu_proxyllm PROXY_SERVER_URLhttps://open.bigmodel.cn/api/paas/v4/chat/completions ZHIPU_MODEL_VERSIONglm-4 ZHIPU_PROXY_API_KEY70e8ec7113882ff5478fcecaa47522479.ExY2LyjcvWmqrTAf...

Navicat 17 功能简介 | SQL 美化

SQL美化 本期&#xff0c;我们将深入挖掘 Navicat 的实用的SQL代码美化功能。你只需简单地点击“SQL 美化”按钮&#xff0c;即可轻松完成 SQL 的格式化。 随着 17 版本的发布&#xff0c;Navicat 也带来了众多的新特性&#xff0c;包括兼容更多数据库、全新的模型设计、可视化…...

RTA_OS内核源码解析 3.9-任务激活

RTA_OS内核源码解析 3.9-任务激活 文章目录 RTA_OS内核源码解析 3.9-任务激活一、激活简介二、同步激活2.1 中断管理2.2 异常条件判断2.3 激活Task2.4 任务调度2.4.1 Os_RaiseCrossCoreISR2.4.2 Os_CrossCoreISR三、异步激活3.1 异常条件判断3.2 激活Task一、激活简介 一般将T…...

新能源汽车充电需求攀升,智慧移动充电服务有哪些实际应用场景?

在新能源汽车行业迅猛发展的今天&#xff0c;智慧充电桩作为支持这一变革的关键基础设施&#xff0c;正在多个实际应用场景中发挥着重要作用。从公共停车场到高速公路服务区&#xff0c;从企业园区到住宅小区&#xff0c;智慧充电桩不仅提供了便捷的充电服务&#xff0c;还通过…...

计算机的错误计算(一百八十六)

摘要 就上节&#xff08;即&#xff08;一百八十五&#xff09;&#xff09;内容&#xff0c;有读者来信&#xff0c;建议用另外一个大模型计算。本节详细讲解该大模型的对错&#xff0c;特别是涉及 Python Decimal的内容以及泰勒展式内容。 例1. 已知 用大模型计算 下面是…...