Python 作为最流行的语言之一,常年占据各语言排行榜前三名的位置,它的用途自然是非常广泛的。
我们耳熟能详的知名公司中,有很多公司的主力语言就是 Python。国内知名的 Python 公司是豆瓣和知乎,头条早期也是用 Python 。而国外的知名公司有 Youtube, Quora, Dropbox 和 Google 等。当我们刷知乎刷豆瓣时,当我们使用这些公司的服务时,背后就有 Python 代码默默地为我们工作。值得一提的是,Python 之父 Guido 在 2019 年宣布退休之前,就在 Dropbox 工作,更早之前他还在 Google 工作过。
去年(2019)我们人类首次见到了黑洞的照片,掌声背后 Python 也功不可没。天文学家使用 Python 处理望远镜收集的数据,除了用到 Astropy 这个天文学相关的库之外,还使用了 Numpy, Scipy, Pandas 进行数据处理,用 Matplotlib 画图等等,而且也用到了 Jupyter Notbook 这款非常赞的工具。
前两年知乎上时不时就刷到用 Python 写爬虫的内容,而最近用 Python 进行办公室自动化的广告多了起来,侧面说明了 Python 的火热。 />人类首张黑洞照片,Python 在背后功不可没。
历史上,Python 首先是作为「脚本语言」而存在的。脚本语言,一般指解释型的(而非编译型),易学易用的,适合写一次性用途的脚本或者命令行工具的语言。作为脚本语言的 Python,特点是学习成本低,而开发效率高。在运维和黑客领域的很多知名作品,都是 Python 写的(我怀疑在这两个领域,Python 是官方语言)。运维方面,配置管理工具有 ansible, saltstack,进程管理工具有 supervisor,SSH 工具/库有 Paramiko 和 Fabric。黑客领域,Python 基本上是黑客们的首选。SQL 注入工具 sqlmap,数据包处理工具 scapy,都是用 Python 写的。
时间进入 2000 年,Web 开始流行,Python 也进入 Web 开发领域。Python 知名的 Web 框架有 Django, Tornado, Flask,知乎就使用了 Tornado。同时,搜索引擎和爬虫的火热,其间也少不了 Python 的身影,scrapy, selenium, pyspider 等爬虫工具就是 Python 开发的(selenium 比较特殊一点,略)。对爬到的 html 页面进行处理,在 Python 中有 lxml, beautiful soup, pyquery 等库帮我们处理。
后来,云计算的概念兴起。在 docker 和 k8s 席卷一切之前,用 Python 写的 OpenStack 可能是云平台管控工具中最有统治力的。
时间到了 2016 年,以 AlphaGo 战胜李世乭事件为标志,我们似乎一下子来到了人工智能时代。Python 依然发挥着重要的作用,其应用甚至变得更加广泛。随着 Python 成为算法工程师的首选语言,我们在网络上看到的每一条个性化内容的背后,都有 Python 对我们兴趣的深入理解。现在流行的机器学习/深度学习框架,要么是用 Python 写的,要么提供了 Python 的接口,比如 Tensorflow,PyTouch,Keras,Scikits-learn,Caffe 等等。最近几年 Python 的火热度增加了不少,主要就是人工智能带来的。
另外,再说两个上面没有提到,但我个人比较喜欢的库/工具。第一个是 Pillow,是用来进行图片处理的库,曾经在项目中使用 Pillow 处理过微信头像。微信官方文档称,头像是正方形的,但上线后发现,少数用户的头像竟然不是正方形,导致了一些处理错误出现,因此印象深刻。第二个是 youtube-dl,顾名思义可以用来下载 youtube 视频。其实, youtube-dl 非常强大,除 youtube 之外,还可以下载国内外很多知名网站的视频。