社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

为什么Python赢了,别的语言都干嘛去了?

脚本之家 • 5 年前 • 711 次点击  


  脚本之家

你与百万开发者在一起


本文经授权转自公众号 码农翻身(ID:coderising)
如若转载请联系原公众号

人工智能时代,为什么Python大放异彩,别的语言都干嘛去了? 


为什么不是使用者众多的Java?也许是Java啰里啰唆,不如Python那么简洁?  


为什么不是Ruby? 和Python一样简洁,但是更加优雅。 


为什么不是微软大力支持的C#? 


为什么不是C++? 嗯, 其实很多AI核心库如TensorFlow就是C++写的, Python更像个“壳”,但是别的语言怎么没有成为“壳”呢? 


先把这个疑问放下,看一个故事。 



1



上个世纪90年代,一个叫Jim Hugunin的小伙子在俄勒冈州阿什兰市的一个公园里玩杂耍,这时候他遇到了施乐PARC的科学家Pavel Curtis, Pavel告诉Jim,有一门叫做Python的语言,非常的酷,用Python编程就像用自然语言一样,Python就像是可执行的伪代码,当程序员想快速地分享想法时,使用Python最合适不过了。 


这些话应该在Jim的脑海中扎下了根。 


1995年,当Jim Hugunin 正在麻省理工学院和他的硕士论文“搏斗”时,他广泛地使用了Matlab,因为在那篇论文中,他需要对实验结果进行数据分析,和理论值比较。


Matlab在数据分析领域表现非常棒,但是一旦超出这个领域,就糟糕透顶。为了克服Matlab的缺点,Jim将C语言,Python和Matlab拼凑在一起,终于完成了论文。 


Jim 受够了Matlab,完成论文后,他就开始写一个Python的扩展,以便像Matlab那样自然地支持数据分析,同时又不牺牲Python作为一个通用编程语言的强大的功能。 


这个Python扩展就是Numeric ,也就是大名鼎鼎的NumPy的前身。 


NumPy,以及后来发展起来的SciPy、Matplotlab等, 共同构成了AI时代做应用编程的基础。 


Jim在当时为什么选择了Python,而不是其他语言来开发数据分析的扩展呢? 这是一种巧合吗? 


首要的原因就是喜欢,“Python编程就像用自然语言一样”。 


其次当时可以选择的语言也不多,C,C++这种“复杂”的语言肯定不合适, Java, JavaScript才刚刚诞生,Perl擅长的是字符串处理,Ruby是日本人发明的,估计影响力还在日本国内,Matz本人又忽视了社区和类库的发展。 



2



可是,NumPy是Python的扩展,难道别的语言如Ruby,Java就不能也写个类似的类库,和Python竞争吗? 


NumPy, SciPy被开发出来的时候,普通的做应用开发的程序员很少使用,它的主要用户是大学的研究人员、学者和数据科学家,这些人并不是专业的开发人员,他们也不想成为专业的开发人员,他们只要能利用工具解决问题就行了。 


由于Python简洁易懂,并且有NumPy这样的类库,在数据分析和科学计算领域,积累起了大量的Python代码。 


假设你是一个研究生,你进实验室的时候,你的师兄丢给你几万行没有注释的代码,是使用Python的NumPy/SciPy做数值分析, 虽然你很讨厌Python的语法,但是你会用你最喜欢的语言如Java/Ruby来重写它们吗?大概率不会吧。 


先发优势让Python锁定了数据科学领域的开发,当AI爆发的时候,Python扶摇直上,就吃尽了红利,垄断了市场,别的语言难以和它竞争。 



3



总结一下,Python的简洁易懂再加上早期在数据科学领域的先发优势,让它在AI时代获胜,有偶然也有必然。 


最后再来提一下Jim Hugunin,他完成了Python扩展Numeric , 把维护的工作交给了其他人,挥一挥衣袖,不带走一片云彩。  


在对Numeric做性能测试的时候,Jim比较了Python和其他很多语言, 他震惊地发现Java在一些简单的数值运算上居然和C语言一样快!于是他开始了一项工作,把Python移植到JVM, 这就是Jython。 


后来他也加入了施乐PARC,在那里他又参与设计了著名的AOP库AspectJ, 掀起了面向切面编程的热潮。 


2004加入微软后,他又把Python移植到了.NET平台,即IronPython。 


这四项工作,完成任意一项,都足以在软件发展史上写下自己的名字,而Jim居然都完成了,真乃奇人也! 


参考资料: 

http://hugunin.net/story_of_jython.htmlhttp://hugunin.net/papers/hugunin95numpy.html https://en.wikipedia.org/wiki/Jim_Huguninhttps://www.revolvy.com/page/Jim-Hugunin https://en.wikipedia.org/wiki/NumPy   

https://www.quora.com/Why-didnt-Ruby-become-popular-for-data-science-like-Python-did

- END -



更多精彩


在公众号后台对话框输入以下关键词

查看更多优质内容!


女朋友 | 大数据 | 运维 | 书单 | 算法

大数据 | JavaScript |  Python | 黑客

AI | 人工智能 | 5G |  区块链

机器学习 | 数学 | 送书

●  鲁大师原来真的姓鲁

●   脚本之家粉丝福利,请查看!

●  人人都欠微软一个正版?

● 致敬经典:Linux/UNIX必读书单推荐给你

 鲁大师原来真的姓鲁

● 终于有人把 Nginx 说清楚了,图文详解!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53543
 
711 次点击