编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?( 二 )


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

编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
fasta CLBG 的结果
另一方面 , fasta 基准游戏向我们展示了一个完全不同的表格 。各个语言的性能表现得越来越模糊 。但这些都是针对特定的情况 , 因此我们可以分析一下其他结果 。
这篇论文还比较了各个类别下的语言 , 因此你可以比较一下编译类型以及解释类型下各个语言的表现 。下面给出了这三个类别的语言的测试结果 。
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
不同语言之间的度量衡比较
有关这篇文章的讨论到此为止 , 如果你感兴趣 , 可进一步阅读论文 。最终 , 我们得到的就是下面这张表格(前面分享过):
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
从最终结果来看 , 似乎 C 语言在能耗和性能方面的表现最优 , 内存除外 。但其实它的内存表现也不错 。
其次是 Rust 和 C++ 。因此 , 我们可以说 C 和 Rust 是最优选择 。然而 , 这几种语言不支持面向对象编程 。(你可以认为Rust支持面向对象编程 , 但它只支持接口(或 Rust 语言中的特征) , 而不支持面向对象编程结构) 。
【编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?】对于使用面向对象编程的各个公司来说 , 易用性也很重要 。老实说 , C、C++ 和 Rust的使用难度都不低 , 你必须考虑生命周期、动态分配等问题 。因此 , 除了编译语言、虚拟机语言和解释语言之外 , 我们应该把面向对象这个类别也考虑进来 。但是 , 其实前三个类别中也存在很多差异和模糊性 。如果将易用性和实现结构也考虑进来 , 那么结果将变得更加模糊 。
到此为止 , 我们比较了这些语言的能耗、内存需求和测试所需的时间 。然而 , 我们不能仅通过这些指标来决定哪种语言最优 。但是 , 如果添加的指标过多 , 结果就会变得过于复杂 , 无法选择出一种最优的语言 , 或每种类型中的最优语言 。
这里 , 我建议改变一下策略 , 让我们假设人是非常有逻辑的 。通常经济论文会做这样的假设 , 尽管人类并不是特别有逻辑 。但是 , 让我们假设人类非常有逻辑 , 而且很挑剔 。那么 , 我们如何才能选出最优语言呢?首先 , 我们需要分析编程语言的使用趋势 。如何测量?网上保存了大量代码 , 其中大部分都保存在私人代码库中 。我们知道所有开发人员在遇到软件问题时都会使用搜索引擎 , 因此我们可以看看搜索引擎的统计数据 。
google 的统计结果
Google 的趋势分析工具是向所有人开放的 。我曾使用这个工具来获取有关编程语言的 Google 搜索统计信息 , 但其中存在一个限制:只能获取 5 个搜索关键字的数据 。因此 , 首先我们来看看排名前三的语言(C、C++ 和 Rust)以及 Java 的结果 。
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
Google 平台上自 2004 年以来 ,  C、C++、Rust 和 Java 的趋势
Java 的使用量似乎超过了其他编译语言 , 但 Java 本身的使用量在逐年下降 。C 和 C++ 的结果非常接近 。但是 , Rust 的使用量非常低 。这可能是因为它是一种新语言 。


推荐阅读