Home > Backend Development > Python Tutorial > 为什么 Python 现在越来越火了?

为什么 Python 现在越来越火了?

PHP中文网
Release: 2016-06-06 16:04:06
Original
1268 people have browsed it

语言火不火主要表现的是市场的需求,和语言本身好不好是有相关性,没有因果性

比如Python,我们七八年前就开始用了,当时有如醍醐灌顶,发现编程语言竟也可以如此优雅(原来一直用C++)。而大众觉得开始火的这几年,Python本身确没有『突然』增加什么更迷人的东西。

对于我来说,Python在很多年前我第一次打开ipython时就火了,同好不多,但个顶个的能扯上一翻。而现在动辄看到『python程序员』写的代码:

sum = 0
for i in range(len(num_list)):
  sum += num_list[i]
Copy after login

我就有种看到douban变成约炮网站的悲哀

从理想上看,Python和C++是十分相似的,它们都想做万金油。

C++是学术性的,大牛们都指着靠它扬名立万,设计哲学是『什么都想要』,首先要兼容C要快,其次是别的语言有的咱都要有,别的语言没有的咱也要有。但是一方面C语言本身也不是很完善(比如头文件这样的粗暴的机制),另一方面为了运行时的爽快把新功能的脏活累活全往预处理、编译上扔,导致C++的晦涩、艰深。用C++写代码有点像是用文言文写公文,逼格满满,文采飞扬,需要耗费大量的精力在内容以外的地方。而看文言文公文(C++代码)更是痛苦,首先你得熟悉各种反人类的语法(传值/传址/move语义、预处理、函数指针……),通晓历代典故(effective C++, ……)

Python的想法不一样,Python的核心是简洁直接清晰,Python认为最好的方式只有一种,它也只呈现那最好的一面。Python的语法本身就是一种伪代码的最佳实践,而且这个『伪代码』还是可以运行的。这造就了Python较低的使用门槛和极高的编程效率。用Python开发只要『有事儿说事儿』就好。ruby on rails最火的那几年,有人问guido叔(Python作者)怎么看,guido说的大概是:Python不需要杀手级应用,因为如果是这样的话,Python在其它方面的作用就被忽略了。

回到话题本身,为什么Python会显得越来越火?

python最大的问题在于性能。性能问题其实是在设计时最容易被误解的部分。C++以『接近C语言的性能』横行多年。随着物理硬件性能的显著提升以及软件复杂性的显著提升,人们开始对性能有了更正确的看法。

首先,有些时候性能并不重要。IO密集型的业务大部分时间都在等待IO,节省不到1ms让开发量增加几倍似乎不是很划得来。

其次,有些时候程序员的效率比机器的效率更重要。对于很多复杂的逻辑性功能,使用更加清晰的语言比晦涩的语言给程序减少的负担,可以大大增强软件的质量。(尤其是公司给的待遇招不到知乎上的大牛程序员的时候)

于是,Python/Ruby/Java开始崛起了。用Python的『inside battery』就可以做到过去需要反复造轮子、天天加班还做得不是那么好的东西。我在看Python的源代码时,突然有一种感觉:Python底层的源代码其实可以理解为C语言的一些常用功能的库(如hashmap实现的dict),Python进程就是加载了这些库然后读取配置文件(Python代码)执行相应的逻辑。相同的功能,Python进行了一次转义,肯定会比直接用C实现要慢,但你不一定能这么快的写出这样运行比Python快的C代码。(当然,知乎上的大牛还是除外)

于是,类似Python这样的语言们解放了程序员的时间,程序员们寂寞难耐的夜晚可以有了更多的产出,一个一个的项目建立起来了,社区建立起来了,迟滞的市场也开始有感知了。

即便这样,Python还有会心一击:我也可以不那么慢。Python可以十分方便地和C代码融合到一起。Python和C的组合彻底解决了后顾之忧:先用Python快速开发快速搭建产品原型,然后找出性能瓶颈有针对性的性能优化。所谓好钢用在刀刃上,节约时间,节省成本,减少风险,提高程序员的生活品质又有什么不对呢?

泛泛而谈,匿之.


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template