Python为什么现在这么火

Python 国内的发展概况

几年前 Python 在国内还只是一门小众语言,但从 2011 开始到现在,Python 的百度搜索指数翻了 10 倍,从下图看得出 Python 在国内的流行度已经直逼 Java,大有赶超之势。

2017年的百度指数趋势图

上图是 2017 年的百度指数趋势图,最近我又比较了Python, Java, PHP 和 JavaScript 发现 Python 几乎是其他的 2 到 3 倍甚至 4 倍还多。难道现在很多公司都在用 python 吗?还是说这个指数只是说明关注和学习的人多了。

2017年到2019年的百度指数趋势图

一个行业火不火,就看有多少(自)媒体、培训机构涌入进来为之疯狂,用百度搜关键字 python 就有 5 条是培训广告,而 Ruby、PHP、Go 等语言一条都没有,显然还是 Python 的生意更好做。现在很多的培训机构都瞄准了python语言,很多培训人工智能的基本上是python开头的,宣传的力度大了许多,导致很多人觉得不学习这门语言不像是入门编程一样,现在培训机构比较喜欢培训的几种编程方向,前端,php,python这三个,选择这三个的原因是短平快,入门比较简单,让初学者在很短的时间内就能获得很大的成就感,学习的周期短能很快的换下一波,当然最主要的一个点,就是当前市场需求量比较大。大概在 2010 年的时候国内除了豆瓣、搜狐在用 Python 之外,很难看到有体量的公司用 Python,而在美国,Python 其实一直都很流行,像 Google、Instagram、Dropbox、Youtube、Reddit、Quora 这些明星网站都在用 Python 做核心业务。从 Google Trands 看得出它一直处于平稳的趋势,这两年上升趋势比较明显,显然主要贡献来自于中国。

Python 热度随时间变化的趋势

那么国内这几年 Python 怎么突然就火起来了?

Python火热的原因分析

Python 在各个国家的火热程度比较

究其原因,大概可以从分 3 个阶段来分析。

  • 12~14年 是云计算最火的几年,大批创业公司和巨头挤破头地进军云计算领域,大家都在做 IAAS,最著名的云计算开源平台 OpenStack 就是基于 Python 开发的,为此催生出不少 Python 岗位
  • 14~15年 是「大众创新,万众创业」口号喊得最响两年,北京大街小巷似乎人人都是创业者,O2O、P2P 产品如雨后春笋般冒出,什么语言最适合快速搭建原型?当然是 Python,Python 的开发速度一个顶三。
  • 16~17年 人工智能火遍大江南北,AlphaGO 的出现让业界为之兴奋,人工智能不再是概念,而人工智能、机器学习的首选语言就是 Python。
  • 17~19年 社区和各个培训机构的大力推动,将 Python 语言作为培训的首选语言,因为这些推动更多的开发人员认识到这门语言的简单便捷性,开始作为第二语言实现自己的小工具。

这两年特别是网络爬虫火得一塌糊涂,10 个写爬虫的 9 个在用 Python,曾经有一段时间知乎的 Python 话题全部被爬虫相关的帖子刷屏,为什么爬虫这么火,这个还是跟大数据有关,因为数据挖掘、分析、机器学习、人工智能都需要大数据的支撑,而真正有大数据的厂商没几个,所以小厂不得不通过爬虫去获取数据。

为什么偏偏就 Python 火了,其它语言没有?

Ruby on Rails 最火的那几年,有人问 Python 之父吉多·范罗苏姆怎么看,他说:Python 不需要杀手级应用,因为如果是这样的话,Python 在其它方面的作用就被忽略了。 Python 在网络爬虫、数据分析、AI、机器学习、Web开发、金融、运维、测试等多个领域都有不俗的表现,从来没有哪一种语言可以同时在这么多领域扎根

Google Search 中的 Python 所占的比例示意图

Python 是一门兼具简单与功能强大的编程语言,它专注于如何解决问题、自由开放的社区环境以及丰富的第三方库,无需浪费时间去造轮子,各种 Web 框架、爬虫框架、数据分析框架、机器学习框架应有尽有,拿来即用,如果你不知道去哪找第三库,可以看看 awesome-python

尽管后起之秀 Go 语言为并发编程而生,效率高,但物理硬件性能已经显著提升的情况下,编程语言带来的性能影响已经不那么重要的,开发速度才是人们首要关注的问题,即使真遇到的性能问题,那么也可以用 C 语言无缝对接。

当然缺乏文档与支持的程序语言绝对不好用。Python 则恰恰没有这些问题,因为它恰到好处的年纪,所以累积了充足的文档、指南、教程等。另外, Python 开发者社区也是相当活跃的,这意味着任何人在任何需要帮助的时候,他们可以得到及时的支持。

无论你是菜鸟码农,还是老司机,你都能通过一个活跃的社区,获得自己想要的支持和帮助,没有人可以掌握一切,无论是初学者或者专家。成熟的开发人员更加懂得在紧急情况遇到问题的时候获得的支持通常决定着你的成败。

关于 Python 我在搭建本博客网站的时候做了一些有用的小工具,你可以去这这些页面查看 《Python脚本实现的百度熊掌号链接提交》《Python实现的图片压缩处理工具》《Python图形界面Tkinter的使用详解》

结论

虽说 Java 是老大哥,江湖地位无人能撼动,但体型过于臃肿、冗长的语法被越来越多的开发者所诟病,这也是为什么 Google 决定把 Kotlin 作为 Android 官方支持语言的主要原因 Python 的发展完全是由社区自我驱动的,喜欢 Python 的原因很简单,因为它确确实实给开发者带来了愉悦的编程体验。