Go 首次冲进前八!曾两次夺得年度编程语言,也曾跌至百名开外 | TIOBE 2 月榜单发布
近日,2 月 TIOBE 编程语言榜单已最新出炉,一起来看看有什么值得开发者关注的新变化吧!
01Go 语言进入 Top 10,刷新自身最高排名
近三个月来,TIOBE 榜单的前五名几乎没有变动,即 Python、C、C++、Java 和 C#,此后的第 6~10 名虽然会有些许变化,总体而言浮动并不大——但本月有些不同:Go 语言进入 Top 10,上升至第八名,刷新了其自身在 TIOBE 榜单的最高排名。
或许会有人疑惑:曾两次获得 TIOBE 年度编程语言的 Go,第八名竟已是历史最高排名?
从 TIOBE 官方提供的 Go 语言占比变化来看,自 2009 年 11 月正式推出并开源后,Go 得益于当时谷歌的影响力,可谓“出道即爆火”。早在 Go 出现的几年前,谷歌就发布了 GMail、谷歌地图和谷歌文档,在全球范围内具有不可忽视的影响力。因此 Go 作为谷歌的第一个自有语言推出时,吸引了全球无数软件从业者的关注,并一举夺下了 2009 年 TIOBE 年度编程语言的桂冠。
没料到此后,这场关于 Go 的炒作似乎很快就结束了:不仅市场份额不断下降,到了 2015 年它在 TIOBE 的排名也一度跌至百名开外(第 122 名)。但一年之后,Go 又重新流行起来了,且基本维持着比较高的热度。
为什么会出现这种情况?因为当时 Go 在谷歌的支持下,开始严格遵循每半年一次的发布周期,且在 2015 年发布的版本中,重新设计并优化了 GC 实现,之后的每一个新版本 Go 都会有所改进。不仅如此,由 Go 编写的 Docker 和 Kubernetes 也从 2016 年开始变得非常流行,让人重新对 Go 产生关注,Go 也再次成为了 2016 年的 TIOBE 年度编程语言。
如今,Go 已被用于许多软件领域,如后端编程、网络服务和 API 等。对于此次 Go 杀进 Top 10,TIOBE 首席执行官 Paul Jansen 推测:“由于 Go 在行业中的应用越来越广泛,它应该能长期保持在 TIOBE 榜单前十名。”另外值得一提的是,不仅是 Go,谷歌最近推出的新语言 Carbon 也在本月首次进入了榜单前 100 名。
除了 Go 语言,本月榜单中还有一些值得关注的变化:
C 和 Java 虽然排名未变,但市场份额大幅下跌,分别下降了 4.41% 和 4.33%;
在榜单 Top 5 的编程语言中,刚刚夺得年度编程语言的 C# 是唯一一个有涨幅的语言,增长了 1.15%;
上古编程语言 Fortran 对比去年同期上升了 13 名,市场份额也增长了 0.82%。
02 其他编程语言
以下为 Top 21-50 的编程语言榜单:
第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):
ABC, ActionScript, Apex, APL, AutoLISP, Awk, bc, Carbon, CFML, Chapel, CHILL, CL (OS/400), CLIPS, Clojure, Curl, Eiffel, Elixir, Erlang, Forth, Groovy, Hack, Icon, Io, J, J#, JScript, LabVIEW, Ladder Logic, Modula-2, MQL5, Nim, OCaml, Occam, OpenCL, OpenEdge ABL, PL/I, Pure Data, Q, Racket, Raku, REXX, Ring, Smalltalk, Snap!, SPARK, Tcl, TOM, VHDL, Wolfram, Zig
03Top 10 编程语言 TIOBE 指数走势(2002-2024)
04 历史排名(1988-2024)
注:以下排名位次取决于 12 个月的平均值。
05 编程语言“名人榜”(2003-2023)
【说明】:
TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、CSDN、必应、Hao 123 等等。具体的计算方式详见:https://www.tiobe.com/tiobe-index/programming-languages-definition/。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
这个排行榜可以用来考察你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。
详细榜单信息可参考 TIOBE 官网:https://www.tiobe.com/tiobe-index
▊100 个 Go 语言典型错误》
[法] Teiva,Harsanyi(泰瓦・哈尔萨尼) 著,Go 语言翻小组 译
100 个 Go 语言常见错误和低效用法,清晰有效的示例,助你规避代价昂贵的错误
没有阅读这本书,将是开发者的第 101 个错误畅销且长销、豆瓣近 5 星、近万读者一致好评的口碑经典好书
▊《深入理解 Go 并发编程:从原理到实践,看这本就够了》
晁岳攀(@鸟窝) 著
以漫画与通俗易懂的语言阐释复杂的并发概念,让读者在轻松愉悦中掌握 Go 语言强大的并发能力
一线互联网大厂名家之作
本书分为四大部分。第 1 部分包括第 1~13 章,主要介绍 Go 标准库的同步原语,包括互斥锁 Mutex、读写锁 RWMutex、WaitGroup、条件变量 Cond、Once、Map、Pool、Context、channel 等,以及最新的原子操作知识,其中重点介绍了 channel,最后还介绍了 Go 的内存模 型。第 2 部分包括第 14~18 章,主要介绍 Go 官方的扩展库和第三方的同步原语,包括信号量、SingleFlight、CyclicBarrier、分组操作库、限流库等。第 3 部分包括第 19 章,主要介绍基于 etcd 的分布式同步(并发)原语。第 4 部分包括第 20 章和第 21 章,主要归纳总结 Go 的并发模式,并尝试使用本书介绍的同步原语解决经典的并发问题。
本书主要面向的是已经具有 Go 软件编程开发经验的工程师、基础架构软件开发工程师和架构师,需要初步和深入了解 Go 并发编程的相关知识,设计和实现高并发的基础软件与分布式系统的专业人员,以及对 Go 并发感兴趣的读者。
▊《聚沙成塔:Go 语言构建高性能、分布式爬虫项目》
郑建勋 著
高效的编码规范与研发工具
深入 Go 语法背后的底层机制
高性能与可扩展的程序设计方法
复杂线上案例的全方位分析
大规模分布式系统的架构之道
本书是颇具创新性的 Go 语言实战指南,巧妙地将理论知识与实践案例串联起来,为读者搭建了一套完整的知识体系和方法论。本书以爬虫项目为基础,全面阐述了 Go 语言在网络服务开发中的卓越性能,并深入探讨了如何利用 Go 语言打造高并发的爬虫系统、高性能的分布式系统,以及可扩展的领域驱动的微服务系统。本书有助于 Go 语言开发者根据编码规范,编写出简洁、高效、健壮且易于扩展的代码。同时,本书可以作为高等院校计算机和软件工程等相关专业师生的参考资料。
▊《Go 语言之路》
李文周 著
全面、深入介绍 Go 语言新特性
七米带你快速掌握 Go 语言精髓
Go 具有简捷明了的语法、标准库,生态系统丰富、支持并发编程和跨平台编译,适合开发大型应用。本书基于 Go 1.20 版本编写,对 Go 语言的语法和使用方法进行了详尽的介绍,包括基础语法、数组、切片、映射、函数、类型、包与依赖管理、接口、反射、并发编程、泛型、测试、常用标准库和第三方库的基本原理和使用方法,并通过最佳实践案例详细讲解使用过程中遇到的常见问题和解决方法,以期帮助读者读者更好地理解 Go 语言的语法特性和应用技巧。
本书适合有一定编程基础的 Go 语言初学者阅读。
▊《Go 专家编程(第 2 版)》
任洪彩 著
华为资深技术专家力作
第 1 版评分 9.4
适合 Go 程序员面试
本书深入地讲解了 Go 语言常见特性的内部机制和实现方式,大部分内容源自对 Go 源码的分析,并从中提炼出实现原理。通过阅读本书,读者可以快速、轻松地了解 Go 语言的内部运作机制。
本书首先介绍常见数据结构及控制结构的实现原理,包括管道、切片、Hash 表、select 和 for-range 等,这部分内容大都以几个精心准备的测验题目开头,每个测验题目均对应一个知识点,读者借此可以测验自身对该知识点的掌握程度。接着介绍了 Go 语言最核心的概念,包括协程的概念、协程调度模型、协程调度策略,以及内存分配和垃圾回收相关的内容。本书还介绍了测试、泛型、依赖管理等比较实用的特性。最后结合笔者的见闻,整理了一些发生在真实项目中的编程陷阱。
▊《Go 语言设计模式(双色版)》
廖显东 著
本书聚焦于 Go 语言设计模式的知识与应用
全书共 6 章,分别为设计模式入门、创建型设计模式、结构型设计模式、行为型设计模式、设计模式扩展、设计模式与软件架构。本书简洁而不失技术深度,内容覆盖 Go 语言的主流设计模式和软件架构,以极简的文字介绍了复杂的案例,是学习 Go 语言设计模式和软件架构的实用教程。
评论