公司动态
分享创造价值 合作实现共赢

公司动态

当前位置: 首页 > 新闻动态 > 公司动态

编程语言迎来“替代组”python、Java和C/C谁最危险?

发布时间:2022-11-19 09:26:07作者:顺晟科技点击:

我喜欢阅读有关编程的问题和答案。最近我经常看到以下问题。

JavaScript的替代技术是什么?

Kotlin有机会取代Java吗?

鲁斯特会取代c吗?

哪种语言最有可能取代c?是d、Go还是Rust?

我特别喜欢最后一个问题。因为提出问题的人确信C语言会被取代,并提出了替代方案。我认为学术论文《Energy Efficiency across Programming Languages》(《编程语言的能耗》:https://Green LAB . DI . UMINHO . PT/WP-CONTENT/UPLOADS/2017我认为,所有这些问题最终都可以归结为一般问题。

在这篇文章中,我将引用上述论文的部分结果,分析一些其他统计数据,看能否找到这个问题的答案。首先,我断言,我会尽可能抛弃个人偏见,保持客观。现在让我们先看一下这篇论文。

图片

:如果你看过

《编程语言的能耗》论文

名以上的论文,你对下表不陌生。

图片

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

我见过很多次,各大社交媒体平台上都有人分享这个表格,相信很少有人知道。然而,在深入研究结果之前,我想先分享一些背景信息。

对于论文中得到的这些结果,最重要的问题是这些结果是如何衡量的。一般来说,衡量CPU性能的方法是基准测试。论文的作者也对各种编程语言进行了基准测试,他们采用了10种不同的编程问题,然后通过这些语言解决了这些问题,统一了“计算机语言基准游戏”中定义的算法。下表显示了这些算法及其数据大小。

图片

用于CLBG的库

另外,根据下表中的示例对编程语言进行了分类。

图片

但是,性能测试不考虑编程范式。重要的是编程语言的类型(编译、解释或使用虚拟机)。编译语言、虚拟机语言和解释语言之间存在显着的性能和能耗差异。因此,对每个类别使用这些算法进行测试是正确的。

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

图片

两个CLBG的结果

能耗测量以焦耳为单位,时间以秒为单位。比率是能量消耗与时间的比率,计算语言能量消耗的近似值。此外,每个语言名称旁边都有向上和向下箭头。箭头表示编程语言在根据执行时间对该表排序时提升或降低了多个位。双线箭头的意思相同,但顺序取决于内存使用量的最高点。

当我在社交媒体上看到上面分享的第一张表格时,我认为执行时间的顺序也很重要,但他们没有分享。但事实上,他们专门分析执行时间。例如,在二叉树问题中,C、C和Rust产生最佳结果,但在内存方面,Rust性能略有下降。同时,fannkuch-redux基准游戏的C也有同样的表现。两者没有明显的差别。

图片

FastaCLBG的结果

另一方面,fasta基准游戏向我们展示了完全不同的形式。各种语言的性能越来越模糊。但是这些都是针对特定情况的,所以我们可以分析不同的结果。

这篇论文还比较了每个类别的语言,因此可以比较编译类型和解释类型下每种语言的表达。以下是这三类语言的测试结果。

图片

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

关于这篇文章的讨论到此结束。如果你感兴趣,可以多读论文。毕竟,我们得到的是以下形式。

图片

从最终结果来看,C语言在能源消耗和性能方面似乎工作得最好,但不包括内存。但是实际上,内存性能也很好。

下面是Rust和c。因此,可以说C和Rust是最佳选择。但是,这些语言不支持面向对象的编程。(您可以认为Rust支持面向对象的编程,但仅支持界面(或Rust语言的特征),不支持面向对象的编程结构。)

对于使用面向对象编程的每个公司来说,易用性也很重要。老实说,C、C和Rust并不难使用。必须考虑生命周期、动态分配等问题。因此,除了编译语言、虚拟机语言和解释语言外,还必须考虑面向对象的类别。但是事实上,前三类也有很多差异和模糊性。如果考虑易用性和实施结构,结果将更加模糊。

到目前为止,我们比较了这些语言的能耗、内存要求和测试所需的时间。然而,我们不能通过这些指标来决定哪种语言最好。但是,如果添加太多指标,结果将变得太复杂,无法从最佳语言或每种类型中选择最佳语言。

在这里,我建议改变策略,让人们假设这是非常符合逻辑的。一般来说,经济论文是人类不是特别符合逻辑,但做这样的假设。(约翰肯尼迪,经济学,经济学,经济学,经济学,经济学,科学)但是,假设人类非常逻辑和挑剔。那么,我们如何选择最佳语言呢?首先,要分析编程语言的使用趋势。怎么测量?网络上存储着大量的代码,其中大部分都存储在个人代码库中。当软件出现问题时,所有开发人员都知道使用搜索引擎,因此可以查看搜索引擎统计数据。

谷歌的统计结果

谷歌的趋势分析工具对所有人开放。使用此工具获取编程语言的谷歌搜索统计数据,但有一个限制。搜索关键字只能得到5个。首先,让我们看一下前三种语言(C、C和Rust)和Java的结果。

图片

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

Java的使用似乎比其他编译语言更多,但Java本身的使用量每年都在减少。c和c的结果非常接近。但是Rust的使用量很低。这可能是因为这是一种新语言。

公平地说,Rust相对C和C来说确实是新的,但它于2010年7月发布,已经过去了12年,在此期间没有大的起伏。这个结果与上述论文中提出的结果大不相同。现在,除了Java外,我还将选择其他四种语言:Kotlin、Javascript、Python和Go。

图片

Google平台上自2004年以来Java、JavaScript、Python、GO、KOTLIN的趋势。

这次呈现的流行又变了。Python的早期流行度很低,但现在成为了流行的编程语言。Java和JavaScript名列第二。今天的第一名是派森。现在再比较一下。

图片

自2004年以来,python、JavaScript、Luby、Swift、打字员的趋势在Google平台上

最终胜者似乎是python!尽管如此,我们还是要尽可能客观。如上所述,我们只分析了一个搜索引擎的统计数据。让我们看一下TIOBE指数。

TIOBE指数

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

图片

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

该指数的最新结果如下:

图片

这与谷歌趋势提出的结果非常相似。然而,根据这个指数,C是第二大编程语言,这有点出乎意料。TIOBE还提供了以下编程语言性能的历史表:

图片

长期以来,编程语言是Java和C的天下。后来流行python,获得了第一名。我们要注意,流行的趋势在不断变化。以前Java是第一名,现在变成了佩顿。

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

未来的可能性

过去十年,机器学习和人工智能一直是话题。python有很好的C API,因此最适合这些数值运算。如果你非常注重性能,可以将Python和C,C结合起来。在这种趋势下,根据谷歌搜索引擎和TIOBE指数的结果,python是当今使用最广泛的编程语言。

然而,这并不意味着Python的地位不变。最近,一些编程语言显示出更好的性能,很可能取代Python,如Rust。亚马逊和Facebook宣布改用Rust开发内部命令行界面工具。此外,Linux 6.1版及以后的内核也包含Rust。最近Rust的声音很高。你看,那个排名在一年内从第26位上升到第20位。

那么我们如何预测未来呢?

答案

对不起。我们花了这么多篇幅讨论,但实际上这个问题没有意义。我们不是政治家,没有人给我们预算或钱来支持这种技术趋势。

那么,为什么我们要继续比较呢?为什么我们要狂热地支持语言或技术?答案很简单。因为我们懒。我们学习了编程语言或技术,希望围绕这种编程语言或技术,创造一个舒适的地区,呆在舒适的地区内,以自己自居。

为什么有人那么狂热地支持c和c?因为他们不想学习像Rust这样的新语言。相反,有人狂热地支持Rust,因为他们不想学C和C。

毕竟编程语言就像螺丝刀一样只是工具。需要使用圆头螺丝刀时,你不能擅自使用一字螺丝刀。你要根据实际情况作出决定。没有任何一种编程语言能够取代一切,成为终极编程语言。你需要根据当前岗位的要求,选择使用正确的工具。

(申报)

TOP

QQ客服

18910140161