最新编程语言排行榜,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

相关文章

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码