最新编程语言排行榜,C++ 和 Go 成为新王?!

2024-06-18 01:52

本文主要是介绍最新编程语言排行榜,C++ 和 Go 成为新王?!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好, 我是不爱敲代码吖,2024 年 6 月最新的 TIOBE 编程语言排行榜已经发布,如图:

请添加图片描述
注意,TIOBE 编程语言排行榜是基于 全球 工程师的数量、课程、热门网站、第三方供应商综合计算出来的,只是一个编程语言流行度和趋势的反映,并不代表语言之间的优劣,也不能反映国内的就业情况。

下面给大家本次排行几个重点的变化。

24 年 6 月编程语言排行变化

1、Python 依然稳居第一
很早之前,Python 就已经稳坐排行榜第一的王位,这次更是上升了 2.93% 的比例。什么概念?本月上升的评分都比 Go 语言的总评分高!

这是可预见的,Python 凭借其简单易学的语法和广泛的应用领域,如数据科学、机器学习、网络开发、爬虫等,吸引了大量开发者。近年来 AI 的爆发也再次让 Python 起飞~

对于把编程语言当做兴趣学习的朋友,Python 是一个不错的选择。但考虑到国内就业的话,Python 做 web 开发的岗位比 Java 少了很多,更适合大数据 / 算法 / 产品方向的朋友学习。
请添加图片描述
2、C++ 历史上首次超越 C 语言
这次排行最大的变化,就是 C++ 首次超越了 C 语言,跃居第二。

C++ 可以理解为 C 语言的 “高级版”,不仅性能高,还支持面向对象编程,并且增加了很多新的特性。

鱼皮觉得 C++ 流行度超过 C 语言是必然的,就像 Java 和 C++ 的关系一样,在现在的这个环境下,越易于使用的语言越容易受到大多数开发者的青睐。

C++ 的崛起主要在于其高性能和现代化特性上的优势,尽管学习难度比 Java 要高,但其在系统编程、游戏开发、图像处理、音视频处理等高性能应用场景中的关键地位无可撼动。此外,C++ 也是嵌入式开发和桌面客户端开发的主流语言。

至于国内就业是选择 C++ 还是 Java,就仁者见仁、智者见智了,我很早之前就 写过一篇文章 来分享自己的看法。

C++ 的 TIOBE 指数变化图:
请添加图片描述
3、Go 语言打入前 7
近一年 Go 语言的排名迅速跃升,从第 14 升至了第 7,也是值得我们关注的。
请添加图片描述
Go 语言的优点是语法简洁和高性能,内置并发机制使得并发编程简单高效,所以被广泛应用于网络编程、云计算、微服务和分布式系统的开发。

对咱们大多数开发同学来说,Go 语言一个肉眼可见的优势是,启动项目的速度飞快。传统的 Spring Boot Java 项目启动可能要十多秒,Go 语言可能 1 秒不到就启动了,很适用于云原生场景下的快速扩容。我们熟知的 Docker、K8S、Etcd 都是 Go 语言开发的。

Java 也早就感受到 Go 语言的威胁了,所以推出了像 Quarkus 这种云原生开发框架,鱼皮耍过一段时间,启动项目的速度也很快,但生态还不够好。

现在 Go 语言的社区和生态越来越繁荣,很多类库、框架、工具都已经到位了,所以国内外用 Go 语言的公司也越来越多,这个排名也是意料之中。

于是乎,国内的社区论坛上就出现了这样一种声音:要不要从 Java 转到 Go 语言?

我的建议是别盲目转,自学能力强的同学如果你还没接触 Java,可以从 Go 开始学起;但自学能力一般的同学,还是老老实实学 Java,因为国内学 Java 的资源太丰富了,各种教程、项目、经验帖,Go 语言就相形见绌了。而且 Java 和 Go 目前主流的应用场景都是后端开发。对于后端开发来说,语言只是一个工具和基础,除了语言本身和对应的开发框架外,其他要学的后端开发技术都是通用的,比如数据库、缓存、队列、搜索引擎、Linux、分布式、高并发、设计模式、架构设计等等。所以优先学资源丰富一些的 Java 会更有助于快速接触到其他技术。

4、一些语言新秀
通过和去年对比,我们能够发现一些发展迅猛的编程语言,比如 Rust 语言达到了历史最高的第 17 位。Rust 以其内存安全性和高性能著称,正在系统编程领域瓜分 C / C++ 的蛋糕。

此外,Swift、Kotlin 和 Fortran 等语言的排名也显著提升,24 和 23 年的对比表如图:
请添加图片描述

其他榜单

最后再分享 TIOBE 编程语言排行榜的其他榜单,便于大家了解发展趋势。

排名第 21 - 50 的编程语言
请添加图片描述
排名第 51 - 100 的编程语言
ABC, ActionScript, Apex, APL, AutoLISP, bc, CFML, Chapel, CHILL, CLIPS, Clojure, COMAL, Crystal, cT, Elixir, Erlang, Forth, Groovy, Hack, Icon, Inform, Io, J, JScript, Ladder Logic, Lingo, LPC, M4, MEL, Modula-2, Mojo, NATURAL, NetLogo, OpenCL, OpenEdge ABL, PowerScript, Programming Without Coding Technology, Q, RPG, Smalltalk, Smarty, SNOBOL, SPARK, SQR, VHDL, WebDNA, Wolfram, X++, X10, yacc

Erlang 还是有点可惜的,起码有个知名产品 RabbitMQ,也没能带火。

编程语言历史排名
1989 年 - 2024 年热门编程语言的排名变化:
请添加图片描述
OK,就分享到这里,大家对本月的编程语言排行有什么看法,欢迎评论区畅所欲言~

这篇关于最新编程语言排行榜,C++ 和 Go 成为新王?!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070979

相关文章

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带