Life is short. You need Python. ——Bruce Eckel
上边这句话是 Python 社区的名言,翻译过来就是“人生苦短,我用 Python”,由此可见,Python 在很多人心中已成为最中意的编程语言。在人工智能、机器学习日趋火热的时代,Python 又赶上了一波 AI 的热潮,即使你没系统的学习过它,相信你也一定听说过吧,如果你也对 Python 产生了浓厚的兴趣,跟我一起来了解下它的前世今生吧!
Python 的诞生
Python 的作者,Guido von Rossum,荷兰人。1982 年,Guido 从阿姆斯特丹大学(University of Amsterdam)获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。1989 年圣诞节期间,在阿姆斯特丹,Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之所以选中 Python(中译为大蟒蛇)作为该编程语言的名字,其实与 Guido 的一个习惯有关,他是一个电视剧爱好者,他在相当长的一段时间内,一直在追一部非常有趣的喜剧组合表演的系列电视剧——Monty Python(有点类似于我们看的武林外传),由于对 Monty Python 这个喜剧团体的喜爱所以给他的新的编程语言取名叫做 Python,他希望这个新的语言,能符合他的理想:创造一种 C 和 shell 之间,功能全面,易学易用,可拓展的语言。
1991 年,第一个 Python 编译器(同时也是解释器)诞生。它是用 C 语言实现的,并能够调用 C 库(.so 文件)。从一出生,Python 已经具有了:类(class),函数(function),异常处理(exception),包括表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。
Python 语法很多来自 C,但又受到 ABC 语言的强烈影响。来自 ABC 语言的一些规定直到今天还富有争议,比如强制缩进。但这些语法规定让 Python 容易读。另一方面,Python 聪明的选择服从一些惯例(特别是 C 语言的惯例)。比如使用等号赋值,使用 def 来定义函数。Guido 认为,如果“常识”上确立的东西,没有必要过度纠结。
Python 从一开始就特别在意可拓展性(extensibility)。Python 可以在多个层次上拓展。从高层上,你可以引入.py 文件。在底层,你可以引用 C 语言的库。Python 程序员可以快速的使用 Python 写.py 文件作为拓展模块。但当性能是考虑的重要因素时,Python 程序员可以深入底层,写 C 程序,编译为.so 文件引入到 Python 中使用。Python 就好像是使用钢构建房一样,先规定好大的框架。而程序员可以在此框架下相当自由的拓展或更改。
Python 的流行
最初的 Python 完全由 Guido 本人开发。Python 得到 Guido 同事的欢迎。他们迅速的反馈使用意见,并参与到 Python 的改进。Guido 和一些同事构成 Python 的核心团队。他们将自己大部分的业余时间用于 hack Python (也包括工作时间,因为他们将 Python 用于工作)。随后,Python 拓展到 CWI 之外。Python 将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python 程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节 (Guido 有一件 T 恤,写着:人生苦短,我用 Python)。这一特征吸引了广大的程序员。Python 开始流行。
Python 擅长处理高级数学、金融、时间序列和统计学。绘制图形也很容易。在网络编程的某些方面也有一些优势。此外,Python 可以做很多事情,覆盖范围很广(虽然其他软件在深入挖掘时可能会做得更好)。 在将来,Python 可能被广泛应用于深度学习、机器学习和人工智能。待到 5G 全面到来,由于它的简单易学,也许会拥有更大的市场。
Python 擅长处理高级数学、金融、时间序列和统计学。绘制图形也很容易。在网络编程的某些方面也有一些优势。此外,Python 可以做很多事情,覆盖范围很广。下面列举了一些 Python 的主要应用领域:
- 云计算: 云计算最火的语言, 典型应用 OpenStack
- WEB 开发: 众多优秀的 WEB 框架,众多大型网站均为 Python 开发,Youtube, Dropbox, 豆瓣。。。, 典型 WEB 框架有 Django
- 科学运算、人工智能: 典型库 NumPy, SciPy, Matplotlib, Enthought librarys,pandas
- 系统运维: 运维人员必备语言
- 金融:量化交易,金融分析,在金融工程领域,Python 不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的 Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于 c,c++,java,尤其擅长策略回测
- 图形 GUI: PyQT, WxPython,TkInter
Python 在一些公司的应用:
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google 广告等项目都在大量使用 Python 开发
- CIA: 美国中情局网站就是用 Python 开发的
- NASA: 美国航天局(NASA)大量使用 Python 进行数据分析和运算
- YouTube:世界上最大的视频网站 YouTube 就是用 Python 开发的
- Dropbox:美国最大的在线云存储网站,全部用 Python 实现,每天网站处理 10 亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过 3 千万张照片被分享,全部用 python 开发
- Facebook:大量的基础库均通过 Python 实现的
- Redhat: 世界上最流行的 Linux 发行版本中的 yum 包管理工具就是用 python 开发的
- 豆瓣: 公司几乎所有的业务均是通过 Python 开发的
- 知乎: 国内最大的问答社区,通过 Python 开发(国外 Quora)
- 春雨医生:国内知名的在线医疗网站是用 Python 开发的
- 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用 Python 完成各种各样的任务。
Python 的未来
在将来,Python 可能被广泛应用于深度学习、机器学习和人工智能。待到 5G 全面到来,由于它的简单易学,也许会拥有更大的市场。而在薪资待遇上,Python 开发者也没有让人失望。通过分析来自全国的 12809 份样例资料可以发现,全国 Python 工程师的平均月资能够达到 19160 元,其中 20 - 30K 的工程师数量更是超过了四成。 虽然各大城市的薪资标准略有不同,但是这也确实传递出一个信息,如果想要年薪百万、一夜暴富、成功走上人生巅峰,对比 Java、C、C++ 等老牌语言,Python 是个绝佳的尝试。
参考资料:
http://www.cnblogs.com/vamei
https://www.cnblogs.com/xincai/p/7058551.html