eyoucms去版权插件

python是否正在走向衰落?

Python并没有走向衰落,它正在变得更加流行!

最近新起的业务后端项目都还是 python 的(python + tornado + gevent(wsgi server)),容器部署+弹性扩容。大部分项目的 qps 还没有高到非换不可的地步。有些 qps 很高的业务用 golang 写了。话说很多人被 python 惯坏了以后都懒得写其他语言了。公司在 go 和 java 后端方面的积累和实践比较少,相应基础设施不完善也是一个原因。新项目给的时间很紧,用 python 开发 mvp 产品迭代快。(现在 python,go,java 都有,python 主要在业务端,技术选型一般会考量很多因素,包括产品周期、招人成本等。核心后端业务确定会慢慢迁移到 go,节省资源)

看到有人说 python 这种动态语言不适合构架大型项目,是有一定的道理的。动态语言写起来坑比较多,太灵活,容易出错,代码写糙了后期很难维护(Rails 作者曾说过"灵活性被过分高估——约束才是解放"),我看 python 代码最头疼的就是看不出一个复杂变量的类型(最新的 tornado 代码已经给复杂数据结构加上了类型标注),重构的时候会心惊胆战。灵活性是把双刃剑,表达能力强但不好维护。动态语言在工程管理和项目维护上是有劣势的。

不过现在很多都是微服务架构,业务拆分成很多服务,不会出现一个代码仓库有很多代码的情况,保证项目是可控的。代码质量也可以通过编码规范(pep8, autopep8, editorconfig,统一开发环境),静态检测(flake8, pylint),code review(gitlab),单测(unitest, nose, py.test)等方式加强(当然最重要的还是依赖程序员的素质)。

python 能在 web 后端使用日渐广泛也是因为有 instagram, reddit, youbute, quora, pinterest, disqus, uber, Dropbox, 国内的 豆瓣、知乎、饿了么、搜狐等成功案例支撑(很多中小公司也有在用)。python 的一个好处就是很多事情都能干吧,爬虫、web、运维、科学计算啥的,学习性价比比较高,当个玩具玩玩也好。而且,如果真换技术栈也只是极少数 qps 非常高的业务,大部分 python 是能搞定的(除非冲 KPI,不然业务都做不完,更没时时间换技术栈)。业务量不大的公司也不用担心,业务量大的公司估计找投资、找牛人优化也不愁了,也不用担心。

python是否正在走向衰落?

每一个语言都有自己适用的适用场景,不能因为在某个方面使用的少就觉得它正在衰落。想要评估语言的状况,可以从语言活跃度、人才市场需求两方面看。

语言活跃度

TIOBE是一个语言流行度指标,指标数据来源于25个搜索引擎。在TIOBE最新的榜单上,Python排名第三。并且在刚刚过去的2018年里,Python以3.62%的增速获得了“年度编程语言”称号,并且在大数据分析、AI、脚本、系统测试等多领域都是最受欢迎的语言。

Python近几年的发展趋势,可以看到在2018年有非常明显的提升:

另外在世界最大的代码托管平台GitHub上,一个月内最热门的25个代码仓库中,Python占了3个,略低于Java(4个),高于GO语言(2个)。

人才市场需求

以招聘网站BOSS直聘上的数据来看,今日头条、滴滴、高德、搜狐、饿了么等大公司都对Python人才有需求,岗位覆盖后端开发、爬虫、大数据、机器学习等多个领域。

另外从国外招聘网站Indeed上的获得的一份薪资数据来看,Python岗位以$116K的平均值获得第一名。

所以综上所述,Python凭借在大数据分析、AI等新领域的优势,未来的发展前景还是很光明的。