为什么编译语言在 AI 中不像 Python 那样流行?

人工智能 编程语言
2021-11-09 07:52:14

Python 是当今数据科学和人工智能最流行的编程语言之一,而 R 是经常被引用的亚军。但是,它们都是解释型语言,执行速度不如编译型语言。为什么会这样?人工智能相对于人类的主要优势在于计算速度,而如今现实世界的人工智能应用程序处理大数据,执行时间已经会大大增加。出于这个原因,为什么不首选编译语言?

当然,Python 的关键论点和优势在于其大量可用于 AI 的第三方库,如 scikit 等,但这样的社区可以在适当的情况下在任何地方扎根和发展。为什么这个社区最终围绕 Python 发展,而不是像 C++、C# 或 Java 这样更快、同样常见的编译语言?

1个回答

解释语言有一些优点(与编译语言相比)

  • 平台独立性(您只需要平台的解释器,即使如果您的解释语言只是用另一种编程语言编写的库的包装库,则情况并非如此)
  • 动态类型(无需指定变量的类型)
  • 动态范围(例如,您可以访问其他范围内的变量)
  • 自动内存管理(但有些编译语言,如 Java,也有垃圾收集器)
  • 快速原型设计(出于各种原因,包括动态类型),因此可以更快地编写软件

因此,与编译语言相比,解释语言的主要优点是灵活性动态性。鉴于人工智能仍然是一个不断发展的领域,这些特征得到了广泛的认可。

解释语言也至少有一个缺点(与编译语言相比)

  • 与编译语言相比运行时间更慢,编译语言一旦编译就非常快,因为它们通常被编译成可以由机器或虚拟机快速执行的代码

Python 和 R 在数据科学和人工智能领域得到了广泛的应用,正是因为这些优势,这可能促成了它们周围社区的快速增长和软件库的发展。

但是,请注意,当今最常见的机器学习库(包括 TensorFlow 和 PyTorch)的核心是用 C 和 C++ 等编译语言编写的。在 TensorFlow 的特定情况下,Python 只是一个包装库。因此,在底层,代码不是由 Python 解释器执行,而是首先编译,这意味着,当你使用 TensorFlow 时,你的代码运行速度(或多或少)与使用编译后的代码一样快。像 C 这样的语言。类似的论点可以用于像 NumPy 这样的库,其中 Python 只是一个包装库。