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

【CSDN 编者按】数百种编程语言层出不穷 , 关于谁优谁劣的争议也未曾断过 , 但为何总有这种争论的出现 , 本文作者直击要害地解析道:「答案很简单 , 因为我们懒 。当大家学习了一种编程语言或技术之后 , 就希望围绕这种编程语言或技术建立一个舒适区 , 然后待在舒适区内固步自封」 。
不过 , 在竞争日趋激烈的环境下 , 这样的做法显然不可取 , 那么 , 未来极具潜力的编程语言到底有哪些呢?不妨通过本文的数据对比一探究竟 。
原文链接:https://medium.com/codex/the-programming-language-s-of-the-future-24af5cfa8479
声明:本文为 CSDN 翻译 , 未经允许 , 禁止转载 。
作者 | Ugur Yagmur
译者 | 弯月 责编 | 屠敏
出品 | CSDN(ID:CSDNnews)
我喜欢阅读有关编程的提问和解答 。最近 , 我经常看到以下这类问题:
 

  • 哪种技术会取代 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)发表以来 , 这类问题的讨论越来越频繁 。我认为 , 所有这些问题最终都可以归结为一个常见的问题:将来我们会使用哪些编程语言?
在本文中 , 我将引用上述论文的一些结果 , 并分析一些其他的统计信息 , 看看能不能找到这个问题的答案 。首先申明 , 我会尽可能抛开个人偏见 , 保持客观 。下面 , 我们首先来看一看这篇论文 。
《编程语言的能耗》论文
如果看过上述论文 , 你可能对下面这张表格不陌生:
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
编程语言的比较 , 来源《编程语言的能耗》论文
我见过很多次 , 各大社交媒体平台上都有人分享这张表格 , 相信几乎无人不知 。但是 , 在深入研究结果之前 , 我想先分享一些背景信息 。
关于论文得出的这些结果 , 首要问题是这些结果是如何测量的 。普遍接受的测量 CPU 性能的方法是基准测试 。论文的作者也针对多种编程语言实施了基准测试 , 他们采用了 10 个不同的编程问题 , 然后通过这些语言解决这些问题 , 统一采用了“计算机语言基准测试游戏”中定义的算法 。下表给出了这些算法及其数据大小:
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
CLBG 的程序库
此外 , 他们还根据下表中给出的范例对编程语言进行了分类:
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

文章插图
然而 , 性能测试并没有考虑到编程范式 , 重要的是编程语言的类型:编译型、解释型 , 还是使用了虚拟机?编译语言、虚拟机语言和解释语言之间存在明显的性能以及能耗差异 。因此 , 他们针对各个类别 , 采用这些算法进行测试 , 这种做法是正确的 。
下一步是执行计算机语言基准测试 。他们分享了几个问题的结果 , 我们来看一看 。
编程语言迎来“取代潮”,Python、Java、C/C+谁最危险?

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


推荐阅读