2023年最受欢迎的编程语言排行榜 —— Python位居榜首,但对你来说未必是最佳选择

news2024/9/21 14:30:38

本文的编程语言热度统计数据来自《IEEE Spectrum》,《IEEE Spectrum》杂志是IEEE(美国电气电子工程师学会)的旗舰出版物,探讨了新技术的发展、应用和影响。它预测工程、科学和技术的趋势,并为理解、讨论和领导这些领域提供了一个论坛。《IEEE Spectrum》已经连续十年发布年度编程语言排名,具有较高的权威性,2023年是第十届。虽然在过去十年中对TPL的排名方式发生了变化,但基本原则仍然不变:将多种流行度指标结合到一组排名中,以反映不同读者的不同需求。

今年,Python不仅在我们的总体“Spectrum”排名中保持第一,该排名是根据IEEE成员的兴趣进行加权的——而且扩大了它的领先优势。Python的增长优势似乎主要是以较小、更专业的语言为代价的。它已经成为一种万事通语言——以及一些领域的专家,如AI,在AI领域,强大而广泛的库使它无处不在。尽管摩尔定律在高端计算领域正在逐渐消失,但低端微控制器仍然受益于性能的提高,这意味着现在在0.70美元的CPU上就有足够的计算能力,使Python成为嵌入式开发的竞争者,尽管存在解释器的开销。Python还看起来在巩固其长期地位:许多儿童和青少年现在使用Python编写他们的第一个游戏或第一个LED。然后他们可以无缝地进入更先进的领域,甚至用同样的语言找到工作。

但是单单Python并不能成就好工作。在我们的“工作”排名中,SQL位居第一。讽刺的是,你不太可能得到一份纯粹的SQL程序员的工作。相反,雇主非常喜欢看到SQL技能与其他语言如Java或C的结合。随着今天的分布式架构,许多业务关键数据存在于SQL数据库中,无论是在线游戏中玩家知道的魔法咒语列表还是他们现实生活中的银行账户中的金额。如果你想用这些信息做任何事情,你需要知道如何获取它。我们曾经有个客户,单位有两个老程序员,沟通几天后竟然要求我们把数据库结构给他们,这样他们就可以使用SQL去检索数据,正如终结者3中的台词:老,但是有用。

但是不要被Python和SQL的排名所迷惑:编程还远远没有成为一种单一文化,Java和各种类C语言的流行程度加起来都超过了Python,特别是在高性能或资源敏感型任务中,Python的解释器开销仍然太高(尽管有很多尝试使Python在这方面更具竞争力),而且由于其他原因,有些软件生态系统拒绝被Python所吸收。

例如,R是一种用于统计分析和可视化的语言,几年前随着大数据的兴起而变得突出。尽管功能强大,但它不容易学习,语法和函数通常在整个向量、列表和其他高级数据结构上执行。但是,尽管有一些Python库提供类似的分析和图形功能,但R仍然很受欢迎,可能正是因为它的独特性。它们使R脚本难以移植,这是一个重要的问题,因为大量的统计分析和学术研究都是基于R的。 所有领域的研究人员和分析师都必须学习一种新语言,并重建他们的工作。(旁注:我们使用R来处理TPL的数据。)

这种情况与Fortran类似,在Fortran中,物理模拟和其他科学计算的现有验证代码的价值始终超过了使用这种最古老的编程语言的成本。 今天你仍然可以找到一份Fortran程序员的工作,尽管你可能需要获得安全许可,因为这些工作大多是在美国联邦国防部或橡树岭国家实验室(Oak Ridge National Laboratory)等能源实验室。

老牌语言也会在你意想不到的地方出现。为工业控制应用而创建的Ladder Logic通常与老式技术相关。尽管如此,我们发现了来自Blue Origin(一个迷人的新太空机构)的帖子,寻找具有Ladder Logic技能的人。这可能与燃料、能量和测试助推器和航天器所需的地面设备集群有关,与庞大的化学精炼厂相比,与翱翔的火箭有更多的共同之处。

最终,TPL代表了Spectrum试图衡量一些永远无法准确衡量的东西,并借鉴了我们对计算的持续报道。我们的指导原则是不要陷入关于编程语言如何正式分类的争论中,而是将其置于与敲击键盘的人们相关的实用性中,创造了使现代世界运行的魔力。(您可以在我们的附注中关于我们用来构建排名的指标和方法。)我们希望您发现它有用且信息丰富,让我们展望未来10年!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1535986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

扩容分区和文件系统(Linux)

在ECS控制台上扩容云盘容量后,对应分区和文件系统并未扩容,您还需要进入ECS实例内部继续扩容云盘的分区和文件系统,将扩容部分的容量划分至已有分区及文件系统内,使云盘扩容生效。本文为您介绍如何通过两个步骤完成Linux实例云盘的…

牛客NC403 编辑距离为一【中等 模拟法 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/0b4b22ae020247ba8ac086674f1bd2bc 思路 注意:必须要新增一个,或者删除一个,或者替换一个,所以不能相等1.如果s和t相等,返回false,如果s和t长度差大于1…

搜维尔科技:利用增强现实改进检验和质量控制流程

直接在工作环境中显示数字指令 DELMIA 质量检查增强体验通过工作环境中的数字指令指导操作员完成检查过程,从而有效地识别、鉴定和报告不合格项。使用增强现实可以显着提高质量控制和检查过程的准确性和速度。由于技术人员可以访问实时信息,因此他们会减…

NX二次开发——获取当前dll的全路径,上一级路径和名称

在nx二次开发中经常会用到dll的全路径&#xff0c;上一级路径和名称&#xff0c;这里我对其进行封装&#xff0c;方便以后调用。 关键代码&#xff1a; //头文件 #include <Windows.h> #include <atlbase.h>//获取当前dll所在的文件夹(mode:0-全路径名&#xff0…

K8s-网络原理-中篇

引言 本文是《深入剖析 K8s》的学习笔记&#xff0c;相关图片和案例可从https://github.com/WeiXiao-Hyy/k8s_example中获取&#xff0c;欢迎 ⭐️! 上篇主要介绍了 Flannel 插件为例&#xff0c;讲解了 K8s 里容器网络和 CNI 插件的主要工作原理。还有一种“纯三层”的网络方…

数值分析(三) Lagrange(拉格朗日)插值法及Matlab代码实现

目录 前言一、Lagrange&#xff08;拉格朗日&#xff09;插值1. 线性插值2. 抛物插值3. 拉格朗日插值多项式 二、Lagrange插值算法及matlab代码1. Lagrange 插值算法matlab实现2 实例3. 线性插值示意图代码4. 抛物插值示意图代码 三、总结四、插值法专栏 前言 本篇为插值法专栏…

C语言内存函数之 memcmp函数

memcmp函数的记忆&#xff1a;mem表示内存&#xff0c;单位是字节&#xff0c;表示以单位字节来进行操作&#xff1b;头文件是string.h&#xff0c;cmp是compare的缩写&#xff0c;表示比较。总的意思就是在规定的内存下以字节为单位一个字节一个字节的进行比较。 memcmp函数的…

C语言基础练习——Day15

目录 选择题 编程题 寻找奇数 寻找峰值 选择题 1、有如下代码&#xff0c;则*(p[0]1)所代表的数组元素是 int a[3][2] {1, 2, 3, 4, 5, 6}, *p[3]; p[0] a[1]; A a[0][1]B a[1][0]C a[1][1]D a[1][2] 答案&#xff1a;C &#x1f4a1; 解析&#xff1a; 本题定义了一个3行2列…

怎样在一台电脑安装多个版本的JDK并切换使用?一篇文章教会你所有细节

目录 1. 下载安装JDK版本 2. 配置环境变量 2. 1 配置环境变量的步骤 2.2 需要注意的细节点 2.3 JDK8&#xff0c;11&#xff0c;17版本切换测试 1. 下载安装JDK版本 a. JDK8 下载链接&#xff1a; Java Downloads | Oraclehttps://www.oracle.com/java/technologies/dow…

蓝桥杯刷题(十三)

1.煤球数目 代码 cnt ans 0 start 1 a [] while cnt<100:ansstartstart 1t ansstartcnt1a.append(ans) print(sum(a))2.奖券数目 代码 def f(x)->bool:while x:if x%104:return Falsex//10return True ans 0 for i in range(10000,100000):if f(i):ans1 print(a…

土地利用的时序建模

1、LULC 模型的现状 最近的土地利用和土地覆盖 (LULC) 建模进展来自两种方法。 在一种方法中&#xff0c;现有模型适用于 LULC&#xff0c;而在另一种方法中&#xff0c;模型架构是针对 LULC 明确设计的。 随着大型基础模型的兴起&#xff0c;人工智能和深度学习取得了重大进…

广告增量实时索引构建实践

本期作者 1.前言 在广告检索系统中&#xff0c;增量索引&#xff08;实时索引&#xff09;是一类常见的技术&#xff0c;用于使广告信息的变更及时生效。其中一种主要的思路即由检索系统消费广告更新数据流&#xff0c;实时更新内存索引&#xff0c;对此行业中已有很多优秀方案…

Linux: 线程安全

Linux 线程共享了进程的资源(地址空间, 页表等), 多个线程同时访问同一个资源就可能产生问题:数据竞争 临界资源: 多个线程共享的资源临界区: 访问临界资源的区域互斥: 任何时刻, 只有一个执行流能进入临界区同步: 以一定顺序访问临界资源原子性: 要么完成, 玩么未完成 锁 死…

【Leetcode每日一题】 递归 - Pow(x, n)(难度⭐⭐)(40)

1. 题目解析 题目链接&#xff1a;50. Pow(x, n) 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 在这个算法中&#xff0c;递归函数的任务是求出 x 的 n 次方。那么&#xff0c;这个函数是怎么工作的呢&#xff1f;它…

Linux_开发工具_yum_vim_gcc/g++_gdb_make/makefile_进度条_git_2

文章目录 一、Linux软件包管理器yum1. centos7 中安装软件方式2.安装&#xff0c;卸载&#xff0c;查看3.yum源4.安装lrzsz5.安装扩展源 二、Linux编辑器-vim1.安装vim2.vim的三种模式3.命令模式-文本批量化操作4.vim配置 三、Linux编译器-gcc/g使用1.安装2.gcc如何完成1、 预处…

安全工具介绍 SCNR/Arachni

关于SCNR 原来叫Arachni 是开源的&#xff0c;现在是SCNR&#xff0c;商用工具了 可试用一个月 Arachni Web Application Security Scanner Framework 看名字就知道了&#xff0c;针对web app 的安全工具&#xff0c;DASTIAST吧 安装 安装之前先 sudo apt-get update sudo…

qt5-入门-标签页部件QTabWidget-1

参考&#xff1a; C GUI Programming with Qt 4, Second Edition 本地环境&#xff1a; win10专业版&#xff0c;64位&#xff0c;Qt5.12 目录 效果实现Qt Designer操作代码addStretch()解释 效果 首页有三个按钮和最近文件列表。 拖动窗口&#xff0c;按钮和文件列表仍然处…

【算法与数据结构】总结

目录 引言 一、线性数据结构 1. 1 数组&#xff08;Array&#xff09; 1.2 链表&#xff08;Linked List&#xff09; 1.3 栈&#xff08;Stack&#xff09; 1.4 队列&#xff08;Queue&#xff09; 二、图形数据结构 2.1 深度优先搜索&#xff08;DFS&#xff09;&…

谈谈我对 AIGC 趋势下软件工程重塑的理解

作者&#xff1a;陈鑫 今天给大家带来的话题是 AIGC 趋势下的软件工程重塑。今天这个话题主要分为以下四大部分。 第一部分是 AI 是否已经成为软件研发的必选项&#xff1b;第二部分是 AI 对于软件研发的挑战及智能化机会&#xff0c;第三部分是企业落地软件研发智能化的策略…

VPCFormer:一个基于transformer的多视角指静脉识别模型和一个新基准

文章目录 VPCFormer:一个基于transformer的多视角指静脉识别模型和一个新基准总结摘要介绍相关工作单视角指静脉识别多视角指静脉识别Transformer 数据库基本信息 方法总体结构静脉掩膜生成VPC编码器视角内相关性的提取视角间相关关系提取输出融合IFFN近邻感知模块(NPM) patch嵌…