草庐IT

Python 霸榜、C# 升温 ,揭晓 IEEE Spectrum 2021年度编程语言排行榜!

苏小宓 2023-07-06 原文

从机器语言到汇编语言到高级编程语言,随着计算机的普及,开发者与计算机之间的沟通也从“繁文”趋于“白话文”,编程语言自身也逐渐向更高的性能、安全等方向不断发展。同时,作为开发者的最有效工具,编程语言的使用率一定程度上反应了不同领域的发展现状。

日前,IEEE Spectrum 在分析 CareerBuilder、GitHub、Google、Hacker News、IEEE、Reddit、Stack Overflow 和 Twitter 八大主流网站中开发者对编程语言的使用情况后,最新发布了 2021 年度编程语言排行榜,通过剖析 55 种编程语言的流行度,以此希望呈现开发者工具的最真实应用现状。

Python 夺冠,但它并不适合所有人

在众多编程语言中,近几年来,Python 的发展势如破竹,就连早已宣布退休的 Python 之父 Guido van Rossum 也于去年 11 月加入微软开发者部门,旨在依托开源,保障大家可以更好地使用 Python。因此,Python 在 IEEE Spectrum 所发布的 2021 年度编程语言排行榜中再次摘得桂冠也属意料之中。

“学习 Python。这是我们可以从其在 IEEE Spectrum 年度顶级编程语言交互式榜单中持续占据主导地位的最大收获。”IEEE 官方如此评价道。

凭借简单的编码、可扩展、GUI 编程支持、面向对象、可移植等优势,Python 主要被开发者用于 Web 应用程序、桌面应用程序、媒体工具、网络服务器以及机器学习等场景中。

同时,Python 拥有丰富的库支持,如果你掌握了 Python 的基础知识,就可以迅速了解很多项目如嵌入式、AI 系统的来龙去脉。

IEEE Spectrum 编程语言排行榜 TOP55

当然,Python 的流行并不意味着每位开发者都必须上手去学习。根据编程语言自身特性的不同,每种语言的适用范围也有所不同。据调查显示,作为同样适用于 AI、数据分析等领域的 R、SQL、 MATLAB 等语言而言,因其更适合解决一些特定的问题,它们的使用率也正在逐步上涨。

与此同时,相较去年,C、C++、Java 和 JavaScript 等老牌编程语言的得分在今年均有所上涨,而每年行业中不时出现的唱衰论对这些语言自身的发展影响并不大,因为在一些企业级应用、或是游戏开发、前端领域中,这几种语言所编写的应用仍占据主导地位。事实上,出于性能原因,Python 本身及它的一些库的重要部分都是用 C 语言来编写的。

因此对于开发者究竟该如何选择编程语言这一问题,不久前,Java 之父 James Gosling 在采访时也做出了回答,其表示:

我学的第一种编程语言是 PDP-8 汇编代码,随后是 Fortran。


大家可以去学习任何语言,有些人的接受能力更强,但这很大程度上取决于一个人最终的职业道路。如果你想成为一个软件开发人员,你要构建大型的、高性能的系统,运行在JVM上的语言最值得去学习,例如 Scala 和 Kotlin,Clojure 也很有趣。如果你是物理专业的学生,Python 是个不错的选择。


其实选哪一种语言都无关紧要,很多人都只是坚持他们学到的第一种语言,如果你能让人们反复学习各种语言,那肯定是最好的。我认为每个大学都应该为学生开设一门“比较编程语言”的课程。用五种不同的程序语言完成作业,这能加快学习进度,并且他们会发现这些语言的区别真的不大,同时也能让他们自己去思考,哪一种语言更好。很久以前我上过一门课,每次作业我都用最不合适的语言,例如,用 Cobol 语言进行数值计算,以及 Fortran 中的符号操作。令人惊讶的是,我的成绩依然是 A。

编程语言变化

编程语言的选择只要是适合自己的就好,正因此,今年 IEEE Spectrum 的年度编程语言榜单也是交互式的,即开发者可根据自己的喜好或者场景,查看不同的榜单。

不过,在一些特殊时期,有些语言的波动会比较大。譬如通过 Twitter 的指标我们发现,上古编程语言 COBOL 从上次的第七位下降到了如今的第 34 位,这是因为过去一年间,在面对 Covid 大流行时,国外政府的不少管理软件采用的是 COBOL 语言编写,亟需大量的 COBOL 程序员进行维护,因此,在 2020 年期间,COBOL 一度成为 Twitter 上热门话题。

另外,IEEE Spectrum 默认排名中,微软的 C# 从去年的第 25 位上升到了今年的 7 位,在剖析其背后原因时,IEEE 官方表示或与 C# 9.0 于去年年底发布有关,同时,即将发布的 Windows 11 也对 C# 有深度的应用。

就业需求编程语言排行榜

从就业与招聘需求的角度来看,该榜单与整体编程语言趋势榜单相差不大,其中 Python 依然位居榜单第一,其次分别为 C、Java、C++、Go。

开源项目中编程语言排行榜

在开源领域,Python、Java、JavaScript 位居前三甲。从应用场景来看,Python 主要应用在框架与库的创建中,Java 则更多聚焦于工具层面,JavaScript 应用于前端项目中。

更多报告内容可参考:https://spectrum.ieee.org/top-programming-languages-2021

有关Python 霸榜、C# 升温 ,揭晓 IEEE Spectrum 2021年度编程语言排行榜!的更多相关文章

  1. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  2. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  3. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  4. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  5. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  6. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  7. python - 如何读取 MIDI 文件、更改其乐器并将其写回? - 2

    我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的

  8. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  9. 「Python|Selenium|场景案例」如何定位iframe中的元素? - 2

    本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决

  10. python ffmpeg 使用 pyav 转换 一组图像 到 视频 - 2

    2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p

随机推荐