Maison développement back-end Tutoriel Python 为什么 Python 现在越来越火了?

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

Jun 06, 2016 pm 04:04 PM
php python web

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

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

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

sum = 0
for i in range(len(num_list)):
  sum += num_list[i]
Copier après la connexion

我就有种看到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快速开发快速搭建产品原型,然后找出性能瓶颈有针对性的性能优化。所谓好钢用在刀刃上,节约时间,节省成本,减少风险,提高程序员的生活品质又有什么不对呢?

泛泛而谈,匿之.


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Les annotations des paramètres Python peuvent-elles utiliser des chaînes? Les annotations des paramètres Python peuvent-elles utiliser des chaînes? Apr 01, 2025 pm 08:39 PM

Utilisation alternative des annotations des paramètres Python Dans la programmation Python, les annotations des paramètres sont une fonction très utile qui peut aider les développeurs à mieux comprendre et utiliser les fonctions ...

Python multiplateform de bureau de bureau de bureau: quelle bibliothèque GUI est la meilleure pour vous? Python multiplateform de bureau de bureau de bureau: quelle bibliothèque GUI est la meilleure pour vous? Apr 01, 2025 pm 05:24 PM

Choix de la bibliothèque de développement d'applications de bureau multiplateforme Python De nombreux développeurs Python souhaitent développer des applications de bureau pouvant s'exécuter sur Windows et Linux Systems ...

Comment les scripts Python effacent-ils la sortie en position de curseur à un emplacement spécifique? Comment les scripts Python effacent-ils la sortie en position de curseur à un emplacement spécifique? Apr 01, 2025 pm 11:30 PM

Comment les scripts Python effacent-ils la sortie en position de curseur à un emplacement spécifique? Lors de l'écriture de scripts Python, il est courant d'effacer la sortie précédente à la position du curseur ...

Pourquoi mon code ne peut-il pas faire renvoyer les données par l'API? Comment résoudre ce problème? Pourquoi mon code ne peut-il pas faire renvoyer les données par l'API? Comment résoudre ce problème? Apr 01, 2025 pm 08:09 PM

Pourquoi mon code ne peut-il pas faire renvoyer les données par l'API? En programmation, nous rencontrons souvent le problème du retour des valeurs nulles lorsque l'API appelle, ce qui n'est pas seulement déroutant ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

See all articles