最新编程语言排行榜,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++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

最新Spring Security的基于内存用户认证方式

《最新SpringSecurity的基于内存用户认证方式》本文讲解SpringSecurity内存认证配置,适用于开发、测试等场景,通过代码创建用户及权限管理,支持密码加密,虽简单但不持久化,生产环... 目录1. 前言2. 因何选择内存认证?3. 基础配置实战❶ 创建Spring Security配置文件

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)