谁会成为ai 和大数据时代的第一开发语言?
这本已是一个不需要争论的问题。如果说三年前,matlab、scala、r、java 和 python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天 facebook 开源了 pytorch 之后,python 作为 ai 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。
python 的胜出令人意外,因为它缺点很明显。
它语法上自成一派,让很多老手感到不习惯;“裸” python 的速度很慢,在不同的任务上比c 语言大约慢数十倍到数千倍不等;由于全局解释器锁(gil) 的限制,单个python 程序无法在多核上并发执行;python 2 和 python 3 两个版本长期并行,很多模块需要同时维护两个不同的版本,给开发者选择带来了很多不必要的混乱和麻烦;由于不受任何一家公司的控制,一直以来也没有一个技 术巨头肯死挺 python 。
所以,相对于 python 的应用之广泛,其核心基础设施所得到的投入和支持其实是非常薄弱的。
直到今天,26岁的python 都还没有一个官方标配的 jit 编译器,相比之下, java 语言在其发布之后头三年内就获得了标配 jit 。
另一个事情更能够说明问题。python 的 gil 核心代码 1992 年由该语言创造者 guido van rossum 编写,此后十八年时间没有一个人对这段至关重要的代码改动过一个字节。
十八年!直到2010年,antoine pitrou才对 gil 进行了近二十年来的第一次改进,而且还仅在 python 3.x 版本中使用。这也就是说,今天使用 python 2.7 的大多数开发者,他们所写的每一段程序仍然被26年前的一段代码牢牢制约着。
python 就是这样一个带着各种毛病冲到第一方阵的赛车手,但即便到了几年前,也没有多少人相信它有机会摘取桂冠,很多人认为 java 的位置不可动摇,还有人说一切程序都将用 javascript重写。
但今天我们再看,python 已经是数据分析和 ai的第一语言,网络攻防的第一黑客语言,正在成为编程入门教学的第一语言,云计算系统管理第一语言。
python 也早就成为web 开发、游戏脚本、计算机视觉、物联网管理和机器人开发的主流语言之一,随着 python 用户可以预期的增长,它还有机会在多个领域里登顶。
而且不要忘了,未来绝大多数的 python 用户并不是专业的程序员,而是今天还在使用 excel、powepoint、sas、matlab和视频编辑器的那些人。
为什么 python 能够后来居上呢?
如果泛泛而论,我很可以列举 python 的一些优点,比如语言设计简洁优雅,对程序员友好,开发效率高。但我认为这不是根本原因,因为其他一些语言在这方面表现得并不差。
还有人认为 python 的优势在于资源丰富,拥有坚实的数值算法、图标和数据处理基础设施,建立了非常良好的生态环境,吸引了大批科学家以及各领域的专家使用,从而把雪球越滚越大。
但我觉得这是倒因为果。为什么偏偏是 python 能够吸引人们使用,建立起这么好的基础设施呢?为什么世界上最好的语言 php 里头就没有 numpy 、nltk、sk-learn、pandas 和 pytorch 这样级别的库呢?为什么 javascript 极度繁荣之后就搞得各种程序库层次不齐,一地鸡毛,而 python 的各种程序库既繁荣又有序,能够保持较高水准呢?
我认为最根本的原因只有一点:python 是众多主流语言中唯一一个战略定位明确,而且始终坚持原有战略定位不动摇的语言。相比之下,太多的语言不断的用战术上无原则的勤奋去侵蚀和模糊自己的战略定位,最终只能等而下之。
很多时候,一个程序库本身是用 c/c++ 写的,但你会发现,直接使用 c 或者 c++ 去调用那个程序库,从环境配置到接口调用,都非常麻烦,反而隔着一层,用其python 包装库更加清爽整洁,又快又漂亮。这些特点到了 ai 领域中,就成了 python 的强大优势。
python 也借助 ai 和数据科学,攀爬到了编程语言生态链的顶级位置。python 与 ai绑在一起,对它们来说,无论是电子商务、搜索引擎、社交网络还是智能硬件,未来都只是生态链下游的数据奶牛、电子神经和执行工具,都将听命于自己。
python语言,如何在人工智能(ai)中,占绝对的优势
python 之所以在战略定位上如此清晰,战略坚持上如此坚定,归根结底是因为其社区构建了一个堪称典范的决策和治理机制。
这个机制以 guido van rossum (bdfl,pythoners 都知道这是什么意思), davidbeazley, raymond hettinger 等人为核心,以 pep 为组织平台,民主而有序,集中而开明。只要这个机制本身得以维系,python 在可见的未来里仍将一路平稳上行。
最有可能向 python 发起挑战的,当然是java。java 的用户存量大,它本身也是一种战略定位清晰而且非常坚定的语言。
但我并不认为 java 有很大的机会,因为它本质上是为构造大型复杂系统而设计的。什么是大型复杂系统?就是由人清清楚楚描述和构造出来的系统,其规模和复杂性是外生的,或者说外界赋予的。
而 ai 的本质是一个自学习、自组织的系统,其规模和复杂性是一个数学模型在数据的喂养下自己长出来的,是内生的。
因此,java大多数的语言结构对于大数据的处理和 ai 系统的开发显得使不上劲,你强的东西这里用不上,这里需要的东西你做起来又别扭。
而 python 在数据处理方面的简洁强悍早就尽人皆知。对比两个功能相同的 java 和 python 机器学习程序,正常人只要看两眼就能做出判断,一定是 python 程序更加清爽痛快。
python 现已逐步在网络爬虫、数据剖析、ai、机器学习、web 开发、金融、运维、检验等多个领域扎根强大。随着它的被认可程度逐步提高,学习并把握这门言语的人群份额越来越大,许多公司也将为抢占该领域高精尖人才做着殊死搏斗!能够说,未来谁具有人工智能领域的技术权威,谁将会具有新年代互联网最高话语权。那么,在此之中,学好python,必将让你在编程生计中大刀阔斧,勇闯天边!python无疑将会成为ai年代下的新宠儿。
来源: 网络大数据