您的位置:首页 > 互联网

编程语言迎来「取代潮」,Python、Java、C/C++ 谁最危险?_c语言的出现比python语言出现的早

发布时间:2022-11-20 06:09:39  来源:互联网     背景:

声明:本文来自于微信公众号CSDN(ID:CSDNnews),作者 | Ugur Yagmur,译者 |弯月 责编 | 屠敏,授权转载发布。

我喜欢阅读有关编程的提问和解答。最近,我经常看到以下这类问题:

  • 哪种技术会取代 JavaScript?

  • Kotlin 有机会取代 Java 吗?

  • Rust 会取代 C++ 吗?

  • 哪种语言最有希望取代 C?是 D、Go 还是 Rust?

我特别喜欢最后一个提问,因为提问题的人非常确信 C 语言会被取代,还给出了备选答案。我认为,自从学术论文《Energy Efficiency across Programming Languages》(《编程语言的能耗》:https://greenlab.di.uminho.pt/wp-content/uploads/2017/09/paperSLE.pdf)发表以来,这类问题的讨论越来越频繁。我认为,所有这些问题最终都可以归结为一个常见的问题:将来我们会使用哪些编程语言?

在本文中,我将引用上述论文的一些结果,并分析一些其他的统计信息,看看能不能找到这个问题的答案。首先申明,我会尽可能抛开个人偏见,保持客观。下面,我们首先来看一看这篇论文。

c语言的出现比python语言出现的早

《编程语言的能耗》论文

如果看过上述论文,你可能对下面这张表格不陌生:

c语言比python语言出现早吗

编程语言的比较,来源《编程语言的能耗》论文

我见过很多次,各大社交媒体平台上都有人分享这张表格,相信几乎无人不知。但是,在深入研究结果之前,我想先分享一些背景信息。

关于论文得出的这些结果,首要问题是这些结果是如何测量的。普遍接受的测量 CPU 性能的方法是基准测试。论文的作者也针对多种编程语言实施了基准测试,他们采用了10个不同的编程问题,然后通过这些语言解决这些问题,统一采用了“计算机语言基准测试游戏”中定义的算法。下表给出了这些算法及其数据大小:

python语言为什么被称为高级程序设计语言

CLBG 的程序库

此外,他们还根据下表中给出的范例对编程语言进行了分类:

python会取代c语言吗

然而,性能测试并没有考虑到编程范式,重要的是编程语言的类型:编译型、解释型,还是使用了虚拟机?编译语言、虚拟机语言和解释语言之间存在明显的性能以及能耗差异。因此,他们针对各个类别,采用这些算法进行测试,这种做法是正确的。

下一步是执行计算机语言基准测试。他们分享了几个问题的结果,我们来看一看。

c语言的出现比python语言出现的早

两个 CLBG 的结果

能耗的测量以焦耳为单位,时间以秒为单位。而比率是能耗与时间的比值,得出的是计算语言的能耗近似值。另外,各个语言名称旁边还有上下箭头。箭头代表在根据执行时间对这个表进行排序的过程中,该编程语言上升或下降了多个位。双线箭头是同样的意思,但顺序是根据内存使用情况的峰值决定的。

当我在社交媒体上看到上面分享的第一个表格时,我认为执行时间的顺序也很重要,只不过他们没有分享。但实际上他们专门做了执行时间的分析。根据我们对指标的了解,例如在二叉树问题上,C、C++ 和 Rust 给出了最好的结果,但是从内存的角度来看,Rust 的性能稍差。另一方面,fannkuch-redux 基准游戏中的 C 也有着相同的表现。二者没有明显的区别。

编程java和c语言和python

fastaCLBG 的结果

另一方面,fasta 基准游戏向我们展示了一个完全不同的表格。各个语言的性能表现得越来越模糊。但这些都是针对特定的情况,因此我们可以分析一下其他结果。

这篇论文还比较了各个类别下的语言,因此你可以比较一下编译类型以及解释类型下各个语言的表现。下面给出了这三个类别的语言的测试结果。

编程java和c语言和python

不同语言之间的度量衡比较

有关这篇文章的讨论到此为止,如果你感兴趣,可进一步阅读论文。最终,我们得到的就是下面这张表格(前面分享过):

python语言被称为高级程序设计语言的原因

从最终结果来看,似乎 C 语言在能耗和性能方面的表现最优,内存除外。但其实它的内存表现也不错。

其次是 Rust 和 C++。因此,我们可以说 C 和 Rust 是最优选择。然而,这几种语言不支持面向对象编程。(你可以认为Rust支持面向对象编程,但它只支持接口(或 Rust 语言中的特征),而不支持面向对象编程结构)。

对于使用面向对象编程的各个公司来说,易用性也很重要。老实说,C、C++ 和 Rust的使用难度都不低,你必须考虑生命周期、动态分配等问题。因此,除了编译语言、虚拟机语言和解释语言之外,我们应该把面向对象这个类别也考虑进来。但是,其实前三个类别中也存在很多差异和模糊性。如果将易用性和实现结构也考虑进来,那么结果将变得更加模糊。

到此为止,我们比较了这些语言的能耗、内存需求和测试所需的时间。然而,我们不能仅通过这些指标来决定哪种语言最优。但是,如果添加的指标过多,结果就会变得过于复杂,无法选择出一种最优的语言,或每种类型中的最优语言。

这里,我建议改变一下策略,让我们假设人是非常有逻辑的。通常经济论文会做这样的假设,尽管人类并不是特别有逻辑。但是,让我们假设人类非常有逻辑,而且很挑剔。那么,我们如何才能选出最优语言呢?首先,我们需要分析编程语言的使用趋势。如何测量?网上保存了大量代码,其中大部分都保存在私人代码库中。我们知道所有开发人员在遇到软件问题时都会使用搜索引擎,因此我们可以看看搜索引擎的统计数据。

Google 的统计结果

Google 的趋势分析工具是向所有人开放的。我曾使用这个工具来获取有关编程语言的 Google 搜索统计信息,但其中存在一个限制:只能获取5个搜索关键字的数据。因此,首先我们来看看排名前三的语言(C、C++ 和 Rust)以及 Java 的结果。

编程java和c语言和python

Google 平台上自2004年以来,C、C++、Rust 和 Java 的趋势

Java 的使用量似乎超过了其他编译语言,但 Java 本身的使用量在逐年下降。C 和 C++ 的结果非常接近。但是,Rust 的使用量非常低。这可能是因为它是一种新语言。

公平地说,虽然相对于 C 和 C++ 来说,Rust确实很新,但它是2010年7月发布的,已经过去12年了,这期间并没有太大的起伏。这个结果与上述论文给出的结果有很大的不同。下面,除了Java之外,我们再挑选4种不同的语言:Kotlin、Javascript、Python 和 Go。

编程java和c语言和python

Google 平台上,自2004年以来,Java、JavaScript、Python、Go、Kotlin 的趋势

这次呈现出的流行趋势又变了。Python 最初的流行度很低,但如今已成为炙手可热的编程语言。Java 和 JavaScript 排在第二位。如今的榜首是 Python,下面我们再比较一轮。

c语言的出现比python语言出现的早

Google 平台上,自2004年以来,Python、JavaScript、Ruby、Swift 和TypeScript 的趋势

看来最终的赢家是 Python!尽管如此,我们还是应该尽可能客观。上述,我们只分析了一个搜索引擎的统计数据,下面,我们来看一看 TIOBE 指数。

TIOBE 指数

TIOBE 是一家专门评估和跟踪软件质量的公司。你可以通过他们的网站了解更多相关信息(https://www.tiobe.com/)。他们的主要服务是测评软件代码库的质量。他们创建了一个名为TQI(TIOBE Quality Indicator,TIOBE 质量指标)指标,下图是该指标的一些示例。

python语言被称为高级程序设计语言的原因

该公司创建了一个编程语言指数,名叫“TIOBE指数”。他们利用这个指数,根据搜索引擎的流行趋势来衡量编程语言的性能。

该指数最新的结果如下:

python语言被称为高级程序设计语言的原因

这与Google流行趋势给出的结果非常接近。然而,根据这个指数,C是排名第二的编程语言,这有点出乎意料。此外,TIOBE还有一个编程语言性能的历史表,如下所示:

编程语言python和c

很明显,在很长的一段时间里,编程语言一直是 Java 和 C 的天下。后来,Python 流行起来,跃居榜首。我们需要注意,关键在于,流行趋势是不断变化的。以前 Java 是第一,如今变成了 Python。

那么,我们应该如何衡量编程语言未来的潜力呢?

苹果12四月份会降价吗

未来的可能性

在过去的10年里,机器学习和人工智能一直是热门话题。Python 是此类数值运算的最佳选择,因为它有一个很好的 C API。如果你非常注重性能,那么可以将 Python 与 C、C++ 结合起来。在这种趋势下,根据 Google 搜索引擎和 TIOBE 指数的结果来看,Python 是如今使用最广泛的编程语言。

然而,这并不意味着 Python 的地位保持不变。最近,有一些编程语言展现出了更好的性能,很有可能会取代 Python,比如 Rust。亚马逊和 Facebook 已经宣布他们改用 Rust 来开发内部的命令行界面工具。另外,Linux6.1版本之后,内核也包含了 Rust。近来 Rust 的呼声很高,如你所见,它的排名在一年之内从第26位上升到了第20位。

那么,我们究竟该如何预测未来呢?

答案

很抱歉,虽然我们花费了大量篇幅讨论了这么多,但实际上这个问题毫无意义。我们不是政客,没有人给我们预算或金钱支持这些技术趋势。

那么,我们为什么要不停地比较呢?为什么我们要狂热地支持一种语言或一种技术呢?答案很简单,因为我们懒。我们学习了一种编程语言或技术,就希望围绕这种编程语言或技术建立一个舒适区,然后呆在舒适区内固步自封。

为什么有人如此狂热地支持 C 和 C++?因为他们不想学习 Rust 这样的新语言。而反过来,有人狂热地支持 Rust,是因为他们不想学 C 和 C++。

说到底,编程语言只是工具,就像螺丝刀一样。在需要使用圆头螺丝刀的时候,你就不能一意孤行使用一字螺丝刀。你需要根据实际的情况做决定。没有任何一种编程语言能够取代一切,成为终极编程语言。你需要根据当前岗位的要求,选择使用正确的工具。


返回网站首页

本文评论
领云麦科技2021牛年微信红包封面,开启新年好运势
  临近新年,家人群、公司群里红包祝福不断,让年味越来越浓。不同于从前面对面发红包的方式,互联网时代的网络红包成为了新的流行趋势,其中微信用户共计发出的红包数量明显高...
日期:07-16
客厅“反跨年”!聚好看跨年晚会专题上线 与家人一起温馨过NEW年
  2020年只剩下最后一天,这特殊又难忘的一年匆匆走过,我们该用怎样的仪式与它告别?   户外跨年太冷、室内聚集风险太大。经历过2020的“毒打”,不如收收心,与家人一起团聚...
日期:07-16
今天零点16分陨石坠落「杭州疑似有陨石掉落:一团火球 照亮夜空」
12月15日晚,多位杭州市民、网友纷纷反映,看到杭州上空有一团火球”快速掉落,照亮了夜空。据网友称:当时,天已经暗了,很亮很亮的一团东西。”速度很快,很亮。”智慧城市的建设主要围...
日期:12-16
复爱合缘总裁庄海:不以结婚为目的的恋爱正在增加 婚恋网站也要求变
文 | 张俊     古老的婚恋行业正在迎来新的变化。   8月5日,独家报道了复爱合缘新一轮高管任命,原飞猪副总裁、民宿业务总经理庄海,被任命为复爱合缘总裁兼婚恋事业群总...
日期:08-17
华为什么时候发布mate50「华为Mate 50系列或月底开启预热:至少三款 发布时间与iPhone 14撞期」
据多方消息,华为Mate 50系列将会在下个月正式登场,发布会日期可能与iPhone 14系列相近,会在9月中上旬。根据博主厂长是关同学最新消息,华为Mate 50系列将会在本月底开启筹备预热...
日期:09-13
豆豆兼职|暑期打工足不出户,在家搬砖挣钱_什么豆豆兼职
  又是一年暑假,伴着盛夏如期而至,耀眼的日光,炙烈地拥抱着每个人,真的是——太热了……   酷暑的天儿,把多少年轻人暑期打工的计划都晒干了,赚钱这事儿好像也没迫切到一定要...
日期:02-06
iphone服务与支持_未来iPhone或支持融合通信服务
  1月7日讯,社交新闻网站Reddit刊登了一张来自去年10月份一次GSMA(全球移动运营商联盟)会议的幻灯片,幻灯片显示,苹果“与GSMA和移动运营商就在iOS中包含RCS(融合通信)进行...
日期:07-21
特斯拉回应ModelY自燃导致多辆豪车被烧:无迹象表明和特斯拉有关「特斯拉汽车燃烧」
11月25日 消息:11月24日,上海一位车主反映,他刚买的奔驰大G送到汽车装饰店保养,没开过几次,却被一场大火烧毁。车主称,包括劳斯莱斯、奔驰、迈凯伦、法拉利等品牌在内的十多辆汽...
日期:12-04
铁路“双十一”电商黄金周运输服务启动「铁路部门启动“双11”电商网购高峰期快运服务 提供当日达服务」
11月1日 消息:今天,中国铁路公众号宣布启动“双11”电商网购高峰期快运服务。铁路部门将为“双11”电商网购高峰提供安全高效、方便快捷的铁路快运服务。抖音是不是自动关注...
日期:11-02
加速智慧高速建设 云从科技与招商华软签署战略合作框架协议
  7月27日,云从科技集团股份有限公司与招商华软信息有限公司(以下简称“招商华软”)在北京签署战略合作框架协议。招商华软总经理范崇贵、云从科技副总裁孙庆凯分别代表...
日期:07-14
1099元起!荣耀Play6C 5G今日发布:10.13正式开售_荣耀play5新品
据消息显示,荣耀今天发布了一款入门机型荣耀Play6C 5G,目前新机已开启预售,将于10月13日正式开售。该机采用6.5英寸+720*1600分辨率+90Hz刷新率的LCD显示屏,并通过了德国莱茵低...
日期:10-10
京东快递宣布上线新功能:21点至24点一样可送货上门「京东快递5点到站是否进行配送」
今天,京东快递官方宣布,将在双十一期间,上线预约派送、验证揽派两项新的服务。火箭发射圆满成功通过新的预约派送功能,用户可以在未来七天内自由选择派送的时间短,且可以精准到2...
日期:11-16
当AI开始画画:画师会失业吗?「ai画画难吗」
  AI在攻破围棋之后 似乎正在气势汹汹地掀翻艺术  把脑海中的画面用一句话表达出来,尽可能细节化,然后点击鼠标,只需要几秒钟,你就能获得一张高度渲染的精美图片。当然,你也...
日期:09-30
小鹏2019年营收_小鹏二季度营收74.4亿元同比增97.7%,G9在9月正式推出
(原标题:小鹏汽车二季度营收74.4亿元,同比增长超98%,净亏损扩大至27亿元) 受汇率波动、供应链紧张等因素影响,小鹏汽车二季度经营...
日期:08-24
解构隐私信息泄漏难题,数安行提出数据运营安全新理念_数据安全 行为安全
  近年来,随着全球信息化和数字化程度的不断加深,人类的生产生活方式正在发生深刻的变革,全球各行业都在加速数字化转型的进程。而作为时代高速发展的核心动力,“数据”...
日期:11-21
街拍的法律问题_媒体:街拍有法律底线 不能“想拍就拍”
付彪   一位身材高挑、身着紧身裤的女生从北京三里屯西北口走进太古里,6名街拍客拿起相机齐刷刷对准她。注意到有人拍摄,女生脚步明显加快,但镜头并未放过她。不仅是北京三里...
日期:07-31
港股新能源汽车股跌幅较大 小鹏汽车收跌超9%_小鹏汽车港股上市破发
  讯 9月28日下午消息,香港恒生指数收跌3.41%,创5月10日以来最大单日跌幅;恒生科技指数跌3.85%。新能源汽车股跌幅较大,小鹏汽车收跌超9%,理想汽车、蔚来跌超7%。京东、哔哩哔...
日期:10-03
微信朋友圈如何修改可见范围「微信内测朋友圈可见范围二次修改」
  财联社8月24日电,近日,有网友发现苹果用户的微信朋友圈可以修改可见范围。具体操作步骤为:iPhone用户更新微信至最新版,点击一条自己的朋友圈,点击右上方三个灰色的点,会出现...
日期:09-07
HTC新机发布 主打元宇宙配骁龙695售价2700元
中关村在线消息:今天,HTC终于拿出了一款像样的手机产品。不过遗憾的是其暂未在大陆上市。HTC Desire 22 Pro是一款中端手机,配备 6.6 英寸 120Hz LCD、高通骁龙695 5G芯片和 45...
日期:08-01
极光:84.6%的求职者使用至少2个招聘app投递简历_极光互动招聘
  招聘行业总体环境   我国互联网招聘市场规模持续扩张   2020年初,“春招旺季”受到了疫情的影响。陆续复工后,企业面临着新增的招聘需求和疫情防控的要求,面对这双重...
日期:07-14