配资企业排名前十 他只想更好地做科研写论文,却一不小心改变了全球程序员的命运......
01配资企业排名前十
上世纪90年代中期,正在麻省理工读硕士的吉姆来到了俄勒冈州的阿什兰,这里以莎士比亚戏剧节闻名于世。
当吉姆在一个剧院后面的公园里玩杂耍时,遇到了来自施乐PARC的一个科学家帕维尔·柯蒂斯,帕维尔也想加入,玩一个双人的杂耍。

吉姆欣然同意,两人愉快地玩了起来。
两人一边玩儿一边闲聊,帕维尔告诉吉姆他发现了一个新的编程语言:Python。

用Python写程序特别清晰,易懂,简直就是可以执行的伪代码!帕维尔他们这些搞科学研究的简直太喜欢这一点了!
吉姆默默地把Python记在了心里。
回到MIT,吉姆开始写自己的硕士论文,论文是关于超导体和半导体相关的领域,需要大量的实验,然后用Matlab对数据进行处理,和理论模型进行对比。

吉姆发现,Matlab在数值分析方面强大得吓人,但在其他任务上糟糕透顶。
他费了九牛二虎之力,拼凑出了混合着C、Python、Matlab的代码,终于完成了论文。
一般人也就到此为止了,但是吉姆不一样,他开始琢磨起来:Python这么好用,如果能具备像Matlab那样的数值分析能力就好了!
这样大家做科研写论文就会非常方便!
吉姆研究了一下,发现了Python的另外一个重要特点:可以和C/C++紧密集成。
Python对外提供了一个清晰的 C API,在C代码中可以轻松调用 Python 函数,访问Python的对象。
所以对于一些性能关键的函数(矩阵乘法、哈希、加密等),完全可以用C语言来实现,这对于科学计算来说非常友好。
于是,吉姆决定写一个Python扩展,在保留Python作为通用编程语言的同时,又具备像Matlab那样数值分析的能力。
很快,这个叫Numeric的扩展就新鲜出炉了,Numeric也是第一个用于科学计算的Python库。
围绕 Numeric ,一个非常活跃的科学家和工程师社区开始形成,他们开始用Python+Numeric进行科学计算,并且基于Numeric开发了SciPy,提供了更高级的科学计算功能,比如优化、积分、信号处理、线性代数、统计等。
马里兰州的一个空间望远镜科学研究所为了处理大规模的数据,开发了numarray 软件包,相比Numeric ,numarray在处理大型数组时速度更快(但是在处理小型数组时更慢)。
2005年,Travis Oliphant将numarray的功能移植到了Numeric上,推出了大名鼎鼎的NumPy。

02
注意,Numeric出生于1995年,这一年也发生了几件大事:
1.Sun 公司发明了Java
2.松本行弘推出了Ruby
3.网景的布兰登用10天设计了JavaScript。
而C#、Go等语言要等到21世纪才会出现。
换句话说,Python在科学计算领域抢得了重要的先发优势!
但是,Python却丢失了一个更大的机会:互联网。
1995~2005这十年,互联网狂飙突进,Java通过J2EE统治了企业级应用开发,然后不断向其他领域进军,成为第一大编程语言。
在浏览器端,在GMail,Google Maps的助推下,JavaScript成为无可争议的老大。
Ruby也依靠Ruby on Rails爆火,在Web2.0应用开发中捕获了大量程序员的芳心。
Python依然在自动化脚本、运维、科学计算等领域默默耕耘,虽然也有Django、Flask这样的框架,但是使用Python开发Web应用的人很少。
Python抬眼望去,Java、Ruby、JavaScript高高在上,如日中天,自己显得非常落寞。
好在Python并没有等多久,人工智能的浪潮就来了。
在科学计算和数值分析领域,没有一个编程语言能像Python那样拥有如此完备的生态,Python积累多年的优势终于释放了。
- NumPy、Pandas → 数据处理
- Scikit-learn → 传统机器学习
- Matplotlib、Seaborn → 可视化
- TensorFlow、PyTorch → 深度学习
这些库几乎成了AI研究的“标准工具箱”,被各个高校,研究机构,实验室广泛使用。
假设你是一个研究生,你进实验室的时候,你的师兄丢给你几万行没有注释的代码,是使用Python的NumPy/SciPy做数值分析, 虽然你很讨厌Python的语法,但是你会用你最喜欢的语言如Java/Ruby来重写它们吗?
大概率不会吧。
先发的优势让Python垄断了数据科学领域,其他语言想替代Python,真正的门槛不在于 Python 语法,而在于“复制这个庞大的、久经考验的底层科学计算生态系统”
而这个生态系统的起点就是公园的那次偶遇,帕维尔向吉姆介绍Python的那一刻。
如果在另外一个平行时空,帕维尔和吉姆在公园偶遇,帕维尔向吉姆介绍了Java、JavaScript、Ruby,吉姆会用它们去做数值分析吗?
大概率不会,因为这三门语言无法同时满足:1.清晰易懂 2.和C/C++紧密集成。
03
最后再来提一下吉姆,他完成了Python扩展Numeric , 把维护的工作交给了其他人,挥一挥衣袖,不带走一片云彩。
在对Numeric做性能测试的时候,Jim比较了Python和其他很多语言, 他震惊地发现Java在一些简单的数值运算上居然和C语言一样快!于是他开始了一项工作,把Python移植到JVM, 这就是Jython。
后来他也加入了施乐PARC,在那里他又参与设计了著名的AOP库AspectJ, 掀起了面向切面编程的热潮,尤其在Spring中大行其道。
2004加入微软后,他又把Python移植到了.NET平台,即IronPython。
这四项工作,完成任意一项,都足以在软件发展史上写下自己的名字,而Jim居然都完成了,真乃奇人也!
如今吉姆兴趣大变,他把注意力移到了一个叫做布料模拟器的研究上,玩得不亦乐乎:
百川资本提示:文章来自网络,不代表本站观点。
- 上一篇:配资企业排名前十 华绿生物:公司上市后产业规模及产品种类均显著增多
- 下一篇:没有了



