据TIOBE公布的2019 年6月编程语言排行榜,Python以8.53%的涨幅排名超过去年同期C++排名,位列第3名,仅次于Java和C。python一路逆袭,甚至有人断言未来Python将成为人工智能的核心算法。那作为机器学习底层框架和支持库的C/C++就没有市场了吗?其实也不尽然!
互联网产品日渐饱和,移动互联网也已进入下半场,市场已经从巅峰时代逐渐进入一个相对平稳的发展阶段,互联网人口渗透率已经超过了50%。人工智能掀起了新的一波世界科技浪潮,互联网巨头公司BAT、近年来崛起的人工智能企业旷世科技Face++、商汤科技、极链科技Video++都在不断增大人工智能领域的投入。
自从2017年国务院印发《新一代人工智能发展规划》中明确指出在中小学阶段设置人工智能课程之后,python一路逆袭成为人工智能时代最合适的语言,并借此为未来国家和社会发展奠定了人工智能的人才培养基础,甚至被众多程序员誉为“宇宙最好的编程语言”。
但人工智能的核心算法主要还是依赖于C/C++的。
因为人工智能是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到,所以某种意义上来说,其实C/C++才是人工智能领域最重要的语言。
Python是API binding,使用Python是因为CPython的胶水语言特性,能够把用其他语言制作的各种模块很轻松的连接在一起,比如3D游戏中的图形渲染,性能要求特别高就可以用C/C++重写,而后封装为Python可以调用的扩展类库。所以说要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的ffi门槛要低很多,尤其是使用Cython的时候,其他语言的ffi许多都只能导入C的函数入口点,复杂的数据结构大多只能手工用byte数组接起来,如果还需要回调函数输入那就无计可施了。
Cpython的CAPI是双向融合的,可以直接对外暴露封装过的Python对象,还可以允许用户通过继承这些自定义对象来引入新特性,在一定条件限制下甚至可以从C代码当中再调用Python的函数。不过这也是PyPy这样的JIT解释器的一个障碍。而且Python历史上也一直都是科学计算和数据分析的重要工具,有numpy这样的底子,因为行业近似所以选择API binding语言的时候会首选Python,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。
如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题。
而C/C++与人工智能理论之间那千丝万缕的联系。是无论如何也斩不断的。如果你C++实在学得一头雾水,不如抽点时间去看看人工智能有关逻辑表达的书。尽管C/C++在大数据时代显得不温不火,但在性能和效率方面仍然保持优势,不少桌面级应用仍然大量采用C/C++。包括腾讯在内的互联网企业在招聘大数据工程师时,仍然把C/C++作为可选的编程工具之一,人工智能时代反而会带来C/C++的再次繁荣昌盛,主流的人工智能框架应该都是基于C/C++。某种程度上,python只是wrapper,C++才是core。毕竟C++语言是在人工智能大发展基础之上才出现的。追本溯源才是解决问题的王道。
机器学习作为人工智能的一个分支,它是让机器能具备摆脱对人工指令的依赖,能按照一定的算法开展自主学习的能力,它的出现才真正让“人工智能”不枉智能二字。在当下兴起的人工智能以及大数据运用上,Python的优势可以被广泛运用到许多领域和重要的日常软件功能当中,人脸识别、会话接口、商业智能等领域,Python都证明了它的实用性。自动化的司法调查、安全检查、网页分析等都有可能使用Python来实现。但未来5到10年,整个人工智能会往什么方向发展?Python和C/C++谁能成为核心算法,值得我们的期待。
网友评论