TIOBE公布2019 6月编程语言排行榜Python8.53%的涨幅排名超过去年同期C++排名,位列第3名,仅次于JavaCpython一路逆袭甚至有人断言未来Python成为人工智能的核心算法那作为机器学习底层框架和支持库的C/C++就没有市场了吗?其实也不尽然! 

互联网产品日渐饱和,移动互联网也已进入下半场,市场已经从巅峰时代逐渐进入一个相对平稳的发展阶段,互联网人口渗透率已经超过了50%。人工智能掀起了新的一波世界科技浪潮,互联网巨头公司BAT、近年来崛起的人工智能企业旷世科技Face++、商汤科技、极链科技Video++都在不断增大人工智能领域的投入。

自从2017年国务院印发《新一代人工智能发展规划》中明确指出在中小学阶段设置人工智能课程之后,python一路逆袭成为人工智能时代最合适的语言,并借此为未来国家和社会发展奠定了人工智能的人才培养基础,甚至被众多程序员誉为宇宙最好的编程语言

但人工智能的核心算法主要还是依赖于C/C++的。

因为人工智能是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到,所以某种意义上来说,其实C/C++才是人工智能领域最重要的语言。

PythonAPI binding,使用Python是因为CPython的胶水语言特性,能够把用其他语言制作的各种模块很轻松的连接在一起,比如3D游戏中的图形渲染,性能要求特别高就可以用C/C++重写,而后封装为Python可以调用的扩展类库。所以说要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的ffi门槛要低很多,尤其是使用Cython的时候,其他语言的ffi许多都只能导入C的函数入口点,复杂的数据结构大多只能手工用byte数组接起来,如果还需要回调函数输入那就无计可施了。 

CpythonCAPI是双向融合的,可以直接对外暴露封装过的Python对象,还可以允许用户通过继承这些自定义对象来引入新特性,在一定条件限制下甚至可以从C代码当中再调用Python的函数。不过这也是PyPy这样的JIT解释器的一个障碍。而且Python历史上也一直都是科学计算和数据分析的重要工具,有numpy这样的底子,因为行业近似所以选择API binding语言的时候会首选Python,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。

C/C++与人工智能理论之间那千丝万缕的联系。是无论如何也斩不断的。如果你C++实在学得一头雾水,不如抽点时间去看看人工智能有关逻辑表达的书。尽管C/C++在大数据时代显得不温不火,但在性能和效率方面仍然保持优势不少桌面级应用仍然大量采用C/C++。包括腾讯在内的互联网企业在招聘大数据工程师时,仍然把C/C++作为可选的编程工具之一,人工智能时代反而会带来C/C++的再次繁荣昌盛,主流的人工智能框架应该都是基于C/C++。某种程度上,python只是wrapperC++才是core。毕竟C++语言是在人工智能大发展基础之上才出现的。追本溯源才是解决问题的王道。

机器学习作为人工智能的一个分支,它是让机器能具备摆脱对人工指令的依赖,能按照一定的算法开展自主学习的能力,它的出现才真正让人工智能不枉智能二字。在当下兴起的人工智能以及大数据运用上,Python的优势可以被广泛运用到许多领域和重要的日常软件功能当中,人脸识别、会话接口、商业智能等领域,Python都证明了它的实用性。自动化的司法调查、安全检查、网页分析等都有可能使用Python来实现。但未来510年,整个人工智能会往什么方向发展?PythonC/C++谁能成为核心算法,值得我们的期待。

来源:维识教育科技

作者简介:武汉维识教育科技有限公司专注于智能工程技术领域的多维教育,依托具有自主知识产权的机器人核心算法和技术,将前沿技术及时转化为系统的培养方案和课程体系,旨在推动人工智能机器人的科普和专业教育。