社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python之路点燃编程圈:源于不爽C语言,单枪匹马搞副业,如今吞噬世界

量子位 • 4 年前 • 371 次点击  
乾明 鱼羊 边策 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

Python is eating the world.

这篇关于Python长文火了。

从Python的创建过程,到Python成为一个无所不在的语言,究竟经历了一个怎样的过程?

美国科技媒体ZDNet记者Nick Heath,详细呈现了Python作为一款风靡全球的编程语言的发展历程及其背后的故事。

真正体现了一个追求极致的程序员,单枪匹马变革世界的理想主义精神。

不到一天时间,这篇文章就在Hacker News上获得了800多热度以及800多评论。

从评论区中,也能看出人们对Python这一编程语言的态度,可以说是又爱又恨。

爱在于,其适用性极强,能够简单、快速地帮助自己完成任务。现在,无论是Web开发,操作系统、运维、数据开发、机器学习等等,都离不开Python。

恨在于,功能还有不完善之处,主要还是希望Python十全十美,真正成为最好的语言。

总之,从来没有一款编程语言,能像Python这样,引起程序员心底的爱恨纠缠。

但这一切归根溯源,还要从20世纪80年代末说起。

Python那些年

自创编程语言的念头,来源于Guido van Rossum对主流编程语言的不爽。当时,Guido正在CWI(荷兰数学与计算机研究所)研究Amoeba分布式计算系统,使用C和Unix shell。

C不仅要求开发人员努力对付手动管理内存的复杂性,时时注意潜在错误的雷区,还缺少用于日常开发任务的可重用代码库,开发人员不得不重复造轮子。

而Unix shell的问题在于,它的本质是调用命令,而不是真正的语言,运行速度太慢,无法处理复杂的逻辑。

1989年圣诞节期间,不想再忍受当时编程语言的不足,也为了打发假期时光,Guido下决心开展一个业余项目——开发一个新的脚本解释程序。

创建自己的编程语言就像是从零开始造火箭,好在早先Guido就参加设计了一种教学语言——ABC。

Guido认为ABC优美而强大,是专门为非专业程序员设计的。但ABC并没有成功,Guido将其没有成功的原因归结为互联网时代前的非开放

在ABC诞生的年代,Guido和他的CWI同事们想要推广这一种新的解释型编程语言,得挨家挨户地分发磁带。

幸运的是,到80年代90年代之交,互联网已经蓬勃地发展了起来。Python有机会避开这个坑了。

我想,“好吧,为什么我不创造自己的语言”,从ABC“窃取”idea,就可以把项目规模从三年压缩到我自己一个人就可以完成的量,变成一个三个月的skunk works(臭鼬工程)。

就这样,Python诞生了。

Python这个英文单词的意思是蟒蛇,但编程语言Python名字的由来,并不是Guido对这种生物有什么特殊的偏爱。


之所以给自己的编程语言取名为Python,是因为Guido是BBC电视剧蒙提·派森的飞行马戏团(Monty Python’s Flying Circus) 的忠实爱好者。

Python从ABC发展而来,并结合了Modula-2,Unix shell和C语言的习惯。

1991年,Guido发布了第一版Python,从那时起,Python就奠定了开放的基调。

Guido认为,与新兴Python社区的互动,让他意识到自己创造了一些可以成功的东西。

Python杀出重围

不仅仅是Python,Perl、Tcl等编程语言也同样诞生于80年代后期,但是却只有Python缔造了时代神话。

Python为什么能杀出重围?

Guido认为,首先,Python天生能吸引开发人员,因为它就是为此而生的。在创造Python的过程中,Guido特意关注了语言易用性和能力之间的平衡,这种平衡正是开发者所期待的。

同时,Python十分易于阅读。它强调可读性和简洁的语法,倡导用更少的代码来表达清晰的想法,它让编程语言与开发人员的“思想交流”变得更加容易。

并且,从早期的版本开始,Python就提供了一系列内置功能,被称为“Battery Included(内置电池)”,拥有极其强大的标准库,这一下子就让它从众多编程语言中脱颖而出。

而这也正得益于Python开放易拓展的属性,整个社区的共同努力让Python越来越强大。

还有一点也非常重要,那就是Python的源代码是很容易维护的。

像Perl让人诟病的一点,就是它过于灵活,源代码常常难以阅读,甚至被称作write-only语言。当代码量达到成百上千行的规模,想在Perl中进行维护,就需要大量的纪律约束。

而在Python中就没有这个烦恼,显得尤为优美。

说起来,Python毕竟是把编程哲学嵌进灵魂的语言啊。

Python之禅

管理的正式化

突出重围之后,Python的用户越来越多,社区用户显著增长。

随之而来的则是语言管理问题。

当时只有Guido一个人在管理Python,使用这一语言的开发者们一直担心,哪天他被车撞了怎么办,Python是不是就就完了?

这不是开玩笑,1994年的时候,真有人在社区发帖提出了这个问题。

之后,Python语言管理开始正式化:Python软件基金会(PSF)的前身建立;更多的人加入了管理团队,Python开发者放心了。

在1995年4月加入“美国国家研究推进机构”(CNRI)之后,Guido领导了一个小型开发团队,开发Knowbot程序,一个广泛分布式系统(如Internet)的移动代理。

当时业界知名的开发者如Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer和Fred Drake等加入其中,这些人后来在Python社区中发挥了重要作用。

这一团队创建了python.org网站,包括管理核心代码库更改的CVS服务器,以及用于改进和维护Python语言的Python特殊兴趣组的邮件列表。

1994年开始的两年一度的Python研讨会,也逐渐演变成更大的年度活动,最终成为PSF的年度PyCon,如今仍然非常活跃。

在过去的几十年里,Guido一直在Python的改革过程中扮演着核心角色,被大家叫做“仁慈的独裁者”。

但是现在Python的管理方式已经发生了重大改变。去年,Guido辞去了领导职务,因为公众对分配表达式引入该语言有了分歧。

虽然Python管理者的目的是编写更有效的代码,但Guido在网上遭到了那些反对变革的人的严厉批评,有些人认为他们这样做会使代码的可读性降低,难以维护。

这件事让Guido认为,像改进Python功能这种事很难达成共识。他会选择某种做法,而不去管别人同意不同意。

之后,每次新的Python功能发布后,指导委员会都会进行新的选举。更多的Python核心开发人员社区也欢迎设立指导委员会。

一位核心开发人员认为此举意味着Python朝着正确的方向迈出了一步。她说:“让委员会做决定比一个人做决定更好。”

随着管理团队不断完善,Python的发展有了稳固的大本营。

随之而来的便是——

吞噬世界的“巨蟒”

2003年以来,Python一直在TIOBE排行榜重最受欢迎的编程语言的前十位。

截至2018年12月,它是第三种受欢迎的语言,仅次于Java和C。

Python在2007年、2010年和2018年分别3次获得了TIOBE年度最佳编程语言奖。该奖项是根据TIOBE指数,授予全年受欢迎程度最高的编程语言。

不仅是受个人开发者欢迎,Python也受到大公司青睐:包括Google、Facebook、亚马逊在内的诸多知名公司都在使用它,包括Instagram、YouTube在内的大型应用,都是出自Python。

科研机构NASA还用Python来简化航天飞机的任务流程设计,去探索太空。

Python的强大也离不开各种第三方软件库的支持,像NumPy、SciPy和Matplotlib这样的库允许用户在Python中进行科学计算。

Python本身并不是为数值计算而设计的,但是因为有了这些软件库加入,Python可以替代Matlab甚至做得更好,而且这些软件是完全开源免费的。

在科研领域,越来越多的人用Python来处理数据,最近发布的黑洞照片就是用Python编写的算法进行拼接合成的。

Python不仅赶上了90年代末期互联网崛起的第一波发展浪潮,近年来也是机器学习这一热门领域的宠儿。

谷歌的TensorFlow使用的就是Python。Facebook更直接,从PyTorch的名字来看就知道它和Python密不可分的联系。

此外还有Keras、Scikit-learn等机器学习框架也都是用Python。

这些框架的支持下,甚至只用6行代码,就能够写出一个机器学习程序。

目前主流的几种操作系统,比如Linux、macOS、FreeBSD等都在系统中包含了Python组件。

连一向封闭的微软态度也逐渐软化,今年他们在软件商店中加入了Python安装程序,并且给用户提供从命令行安装的快捷入口。

虽然Python越来越受欢迎,但也有不少隐忧。

Pythonの挑战

现在,Python已经成为开发者群体中最热门的语言,甚至出圈成为业余爱好者学习的首要编程语言。

但它吞噬世界,仍旧是正在进行时,它的覆盖空白区、其未能吞噬之处——移动计算领域——重要性越来越强。

2016年,Guido在接受媒体采访时,也承认了这一点。在他看来,移动仍是Python很难啃下来的平台。

但他也给出了解决方案:找到懂得构建移动版本Python的人就行了。

因为标准的CPython源代码,几乎可以编译成能在安卓和iOS系统中运行的二进制文件。

而且Python社区中,已经有很多人在朝这方面努力。但3年后,依旧不容乐观。

今年的Python语言峰会上,BeeWare联合创始人Russell Keith-Magee再次提出了警告,如果对移动和新Web平台的支持没有改善,那么Python将面临“存在风险”。

他设想了这样的一个场景:当iPad成为主流,笔记本电脑不过是细分设备时,Python会发生什么?

吞噬远未成功,大家仍需努力。

而且,时变境迁,起于20世纪80年代的Python,在新的运行环境中,逐渐变得力有不逮。

为了修复缺陷,更好地适应新环境,让Python更有生命力,Python社区做了一个非常有决断的动作:

推出Python 3,不向后兼容。

这背后长痛不如短痛的想法,轻装前行的理念等等, 大部分开发者都理解。

但版本割裂带来的阵痛,还是成为了Python被诟病的一大重点。

2008年Python 3问世之时,给Python 2.7定下的Deadline是2015年。

因为担心大量现有代码无法迁移到Python 3,这一时间又推迟到了2020年。

这12年中,Python也发布了程序,帮助开发者更好地将Python 2代码转换为Python 3。

但这也让不少人纠结与徘徊。

现在,Python 2大限将至,跃迁将要完成,可局势也变了。

遭遇强敌

在这期间,有不少新的编程语言出现,分食Python的领地。

比如谷歌2009年正式推出的Go,更是“明目张胆”地抢人——开发一款从Python 2.7到Go语言的编译器。

而且,这一语言因为其开发速度、更加便捷、部署简单、更好并行等方面的特性,赢得越来越多开发者青睐,在2016年被评为“TIOBE最佳语言”。

2019年,程序员社交平台HackerRank发起的一项调查结果显示,Go是程序员最想学习的编程语言,而Python只排第三。

不少公司,也开始用脚投票。比如知乎,就舍弃了Python而用Go重构推荐系统。

还有Julia。这一源自MIT的新编程语言,创建于Python 3发布第二年,2012年公开发布。

截止2018年底,已经有300多万下载量。

过去一年的时间中,Julia在GitHub上的标星在过去一年增长了一倍。也被Jeff Dean批注为“Julia +TPUs =快速且易于表达的机器学习计算”。

来势汹汹,可见一斑。

根据Julia最新发布的官方报告,其主要的应用领域为数据分析、机器学习、物理学、数学、人工智能、信号与图像处理等等。

而这些,当下都是Python发挥作用、面向未来的核心阵地。

不过,Python也没有停下来发展的脚步,也在不断推陈出新,面向未来编程。

比如PyPy的不断优化,SciPy和NumPy的不断完善等等,都在放大Python的能量。

这个起于20世纪80年代一个业余项目的语言,到现在仍旧具备超强生命力,兼容并包,成为开发者手中的利器,不断吞噬世界。

越来越多人开始认为:Python才是世界上最好的编程语言。

你同意吗?

ZDNet记者Nick Heath的英文原作很长,但披露了相当多的Python发展细节,我们仅引述了其中关键节点,建议大家前去拜读完整原文^_^

参考链接:
https://www.zdnet.com/article/python-is-eating-the-world-how-one-developers-side-project-became-the-hottest-programming-language-on-the-planet/

直播 | Style-Gan的架构与实现

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 ! 


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38103
 
371 次点击