为什么人工智能是由Python而不是C++驱动的?
简而言之,是为了提高生产力。
如果你想了解更多,就必须通读全文。Python并非人工智能、数据科学、深度学习、神经网络等领域的唯一解决方案。C++、.NET、Java、JavaScript、Prolog、Julia等才是这些领域常用的生态
系统。但我们听到的太多关于Python 的消息,以至于现在我们误以为人工智能、数据科学、深度学习——这些都只能在Python上运行。事实远非如此。
语言基本上分为两种类型。
- 高性能语言,例如 C、C++、汇编、B。
- 高效编程语言,例如 Python、JS、Java、Kotlin、Swift。
Python是一种胶水语言,它整合了不同库的高级 API,使代码更易于使用。这些库的底层大多是用C/C++编写的。使用胶水语言进行科学研究的历史比我们想象的要悠久。过去,程序员们常常使用Perl和TCL来编写代码。如今, Python更为流行。
现在你可能会问
“为什么要使用粘合语言?”
假设你正在做一个神经网络项目,需要解决几百个问题,或者你可能需要用多种方法多次解决同一个问题,以找出最有效的方法。对于这类任务,你需要选择一种能够将你的想法转化为代码、查看结果并根据需要尽快进行修改的语言。测试速度越快,你的工作效率就越高。这就是为什么程序员通常不想在这里接触底层代码的原因。
思考一下在这类项目中使用C/C++会产生哪些影响(包括优点和缺点) 。
优势:-
- 如果代码优化得当,性能将非常出色。
- 您可以根据需要管理内存。
- 您将拥有对底层代码库每一行的控制权。
- 数据处理速度将大大加快。
缺点:-
- 内存管理、数据类型、指针等底层技术需要投入大量精力和时间,这对快速开发来说是一个很大的劣势。
- 在这种情况下,异常处理之类的事件会很麻烦,因为C/C++是非托管语言。
- 你可能需要重写一些有用的C/C++库或框架的部分或全部代码。
- 你需要处理诸如内存泄漏/溢出、垃圾管理之类的问题。
- 您需要更多时间,开发成本也可能增加。
- 维护你的代码库将会是一场噩梦。
性能或其他方面的优化可以在部署阶段进行。但程序员通常不会在开发阶段考虑这些。他们选择编程语言时主要考虑两个关键因素:
- 这种语言的生产力如何?
- 该语言是否有大量可用的实用库/框架?
Python完全满足这些条件。考虑到这些因素,其他语言生态系统与Python相比简直是天壤之别。
但不管你承认与否,事实是……
文章来源:https://dev.to/nahiandev/why-is-artificial-intelligence-driven-by-python-and-not-c-4e5f程序员在编写人工智能代码时,90% 的时间都花在了 Python 上。另一方面,99% 的 CPU 时间都消耗在了 C/C++ 上。这是因为 Python、它的解释器以及大多数常用的库,本质上都是对 C/C++ 的抽象。