前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python怎么变得如此流行

Python怎么变得如此流行

作者头像
老齐
发布2020-05-18 17:10:02
4440
发布2020-05-18 17:10:02
举报
文章被收录于专栏:老齐教室老齐教室

翻译:老齐

注:本文选自《Behind the Code》。

与本文相关的图书推荐:《Python大学实用教程》


StackOverflow在2019年做的调查表明,Python已经在“开发者喜爱的编程语言”中名列第二,超过了Java;在最常用的编程语言中,Python排名第四,位于JavaScript、HTML和SQL之后。自Python发布以来的30年里,它在忠实于核心原则的同时,一直在努力发展,这一点在Python之禅中得到了证实。随着Python在程序员中受欢迎的程度日益提高,现在似乎是研究Python历史的最佳时机,让我们来揭示它是如何成为世界上最有影响力语言之一的。

根基深厚

Python最初是由吉多·范·罗苏姆(Guido van Rossum)在20世纪80年代后期创造的,用于继承和改进ABC语言。作为仁慈的终身独裁者,范·罗苏姆在2018年7月之前一直领导着Python项目,正是在这个发展过程中,它坚持了下面的核心原则。

  • 可读性:Python的简单语法与自然语言很接近,提高了程序员的工作效率,给编程带来了乐趣。
  • 可扩展性:Python被设计成为“小核心”、“大标准库”和“易于扩展”的类型,这允许程序员可以利用现有的程序,增加新的模块。
  • 可维护性: 在Python中 “应该有一种,并且最好只有一种明显的方法来解决问题”,Python的这一特性使得编码标准、样式和建议成为可能,它提高了项目的可读性和可维护性。

许多程序员将Python的流行归功于它对这三种原则的顽强坚持。Salt开源项目的创建者、SaltStack的首席技术官Thomas Hatch来说,可扩展性是其成功的关键。他说:“Python在很多方面都很出色,但最棒的是它能够很好地处理多种语言。这就是它成功的原因。你可以将Python与其他语言结合使用,这些语言可能在其他领域具有优势。这就为各种编程问题提供了完整的解决方案。”

早期版本

1994年1月,Python发布了1.0版,这个版本受Lisp影响,引入了lambda、reduce()、filter()和map()等函数式编程。五年后,范·罗苏姆面向开发者推出了CP4E方案——Computer Programming for Everybody,目的是使程序更易读,鼓励遵从基本的编程格式。正是其干净的语法,Python才能扮演重要角色。

那个年代,Perl是当时流行的脚本语言,还没有多少人使用Python,尽管它也在某些方面学习了Perl的做法,例如加载模块等,但许多开发者还是忽视了Python。只是一些寻找Perl替代品的开发者才发现Python是他们所需要的。

同时,在面向对象编程的世界中,迎来了Visual Basic和C/C++的时代和Java的兴起。事实上,到了90年代末,有了Sun Microsystems的支持,Java被誉为C/C++的替代品,注定要占据主导地位。

成熟期

Python核心开发团队迁移到BeOpen.com并组建PythonLabs团队之后不久,于2000年发布了Python2.0。在这个版本中,引入了列表解析,并且在函数编程中借鉴了Haskell的一些特性。第二年年底,又发布Python2.2,这个版本中将语言的类型和类统一到一个结构中,使得Python的对象类型能够完全一致地面向对象。

尽管Python是一种面向对象的语言,但它从未与Java或其他由公司赞助的语言竞争。相反,它的开发人员把精力集中在语言的发展和社区上。

此时,许多程序员认为Python是一种很好的脚本语言,或用于快速构建项目的原型。随着Java在企业应用中的普及,Python只能在管理数据和运维应用等脚本程序中找到一席之地。又由于它可以与其他语言进行互操作,甚至Java程序员也开始将它用于他们的部分程序,以提高生产效率。

2007年,Dropbox推出,不到一年,它就获得了融资,很快成为完全用Python编写的最大项目之一。此时,许多初创企业都在使用Python进行各阶段的应用程序开发,但作为大型企业的首选语言,Python依然进展缓慢。Dropbox项目的成功改变了这一点,促使业界的许多技术经理更加认真地考虑Python。

第二年,Python3.0发布了。可以说,它是迄今为止最重要的Python版本之一,也是推动Python成为焦点的版本之一。它修复了Python语言中的一些基本缺陷。还保留了与2.x系列的向后兼容性,而其指导原则是“通过删除旧的操作方式减少功能重复”。

Python也开始受到科学界的关注,特别是在神经网络中,Python开始被广泛使用。随着NumPy库的开发,Python开始被视为R、Matlab和其他用于研究项目的科学计算语言的替代品。

大数据、机器学习和数据科学的兴起

新世纪以来,公司存储、跟踪和管理的数据量呈指数级增长。此外,从2005年起,Facebook、Instagram、YouTube和Twitter等社交媒体公司也开始流行起来。到2019年,美国74%的成年人至少使用一个社交媒体平台。营销人员对突然从社交媒体上获得的大量数据欣喜若狂,各地的初创企业也开始纷纷利用这些数据。因而,在此期间,许多B2B和B2C的应用在初创企业界得到发展。

由于Python便于使用,这些年轻的公司发现它是早期开发中最划算的解决方案。因而,Python成为管理社交媒体数据的首选语言。与Java等语言相比,Python提高了程序员的工作效率。如前所述,它为编程注入了乐趣,节省了时间和金钱。

2008年金融危机后,金融界掀起了一股自动化浪潮。随着监管审查的加强,大型金融机构需要找到更好的方法来进行交易管理、风险管理、以及运营和销售工作流程方面的管理,以减轻系统性风险。经济复苏在望,对冲基金率先利用机器学习和数据科学寻找交易机会。很快,这些机构就选择用人工智能替代工作流程中“人工”干预的部分,从而以更清洁的方式管理金融世界每天生成的大量数据。

随着数据在金融界和初创企业界的迅速增长,机器学习和数据科学很快成为程序员新的“热门”职业。突然间,技术人员越来越需要编写算法,如:神经网络和强化学习算法等。2019年初,在分析其用户数据后,求职网站Glassdoor表示,数据科学家被评为美国最有前途的工作。

随着需求从软件编程向数据科学的转变,工具的需求也随之出现。从研究和金融领域开始的各种探索受到了谷歌和Facebook等大型科技公司的支持,这些工具包括以下3个Python库:

  • Pandas:由Wes McKinney在2008年启动的一个项目,对财务数据进行定量分析。
  • Scikit-learn:由David Cournapeau在2007年发起,它使程序员能够使用机器学习和数据科学算法。
  • Matplotlib:由John D.Hunter于2008年开始,将MATLAB中的许多图形功能移植到Python中。

2010年到2015年间,Python正在与R竞争机器学习和数据科学的首选语言,当时有很多统计学家使用R进行分析和可视化。但Python生态系统增长迅速,作为一种编程语言,它比R强大得多,是将机器学习代码生成完整的产品系统的唯一选择。

Facebook、Google和Netflix等大型科技公司很快成为机器学习和数据科学领域的先驱。这些公司使用Python开发了工具、编码规范、最佳实践、算法和扩展解决方案,包括以下示例:

  • TensorFlow:谷歌于2015年启动的一个项目。
  • Seaborn:由MichaelWaskom于2012年创建,旨在改进科学计算中的数据可视化工具。

随着Python现在成为机器学习和数据科学的首选语言,程序员开始与数据科学家、机器学习工程师和研究人员密切合作,开发更复杂的人工智能应用程序。Andy O’Harney是人工智能研究人员、软件工程师和ObjektivApp的创始人。他说:“我们让工程师和研究人员从第一天起就开始合作,当他们完成工作后,很容易把代码传给软件工程师,然后说:‘好啦,现在就把它产品化。’我认为这就是使用Python的最大优势所在。”

快速发展

随着Python的迅速发展,它的社区中提供了很多更实战化的资料,如编程规范、标准和最佳实践。在某些方面,范·罗苏姆最初的哲学“应该有一种,并且最好只有一种明显的方法来解决问题”在这段时间非常有用。随着开发人员对Python的“试验”,那些经验丰富的人很快就开始实施Python编码风格和约定,这意味着可以维护涉及全球数百名开发人员的大型代码库。

诸如《Python大学实用教程》、《跟老齐学Python:轻松入门》、《有效的Python》等书籍帮助指导程序员更有效地编写代码,而“老齐教室”等社交媒体在教育开发社区方面发挥了重要作用。到2017年,Python问题主导了StackOverflow网站。

在web开发方面,Django和Flask等框架巩固了Python作为开发web应用程序后端和中间层的首选语言的地位。《Generative Deep Learning》的作者David Foster解释道:“对于我们的数据科学网站,我们使用Django作为后台。效果很好。”

作为初学者首选编程语言的Python

从2014年开始,Python被用作世界各地大学、高中和编程训练营的主要编程语言,这一点非常引人注目。由于AI发展,全民学编程的广告随处可见,一种简单易学的语言必然受到追捧。

很多中学教孩子们使用Python编写代码,与此同时,数学教师也有兴趣在课堂上使用Python的可视化工具,《Math Adventures with Python》一书的作者Peter Farrell说:“当你在绘制数据和进行数据可视化时,你在思考边界、域和范围等概念时,这些概念基本上要求你思考极限问题。‘数学极限’是一个重要的概念,它将为以后学习微积分和其他更难的数学概念奠定基础。形象化也让孩子找到了理解原理方法,在孩子的头脑中,他们可以旋转视觉效果,从不同的角度看问题。这解放了他们创造性思维能力。”

同年,在由Philip Guo编写的一项调查中,美国大学中排名前10的计算机科学系中有8个系使用Python向学生介绍代码。

这一趋势也可以从StackOverflow网站对于高校季节性流量的统计数据中看出。在Python起步的几年内,它已经超过了Java,获得了最大的访问率。

Python 3.5及3.5以上的版本

2015年,Python 3.5问世。然后,在2017年到2019年的一系列发布中,Python开发社区解决了该语言的一些持续存在的问题,巩固了它作为跨行业的主要编程语言之一的地位。

在此期间,许多公司开始扩大其机器学习和数据科学应用。人们关注的是内存使用、并发处理、性能、代码分布等。解决方案包括:Python3.8为并发处理引入异步;多进程使基于过程的并行成为可能; 还像操作符使赋值表达式更易于管理。

尽管PyPy仍然是某些Python代码的即时编译器,但如果你希望更快的实现,现在有了Numba。这是另一个开源的即时编译器,它允许你使用行业标准LLVM将Python和NumPy代码的子集转换为快速机器码。使用PyInstaller,可以将Python应用程序部署为独立的可执行文件。

Python开发者社区通过发布版本、文档和基于社区的工具,解决了一系列的问题,赢得了程序员的信任。

Python的未来

Python是2019年发展最快的编程语言,它的迅速崛起主要是因为严格遵循如下理念:成为一种动态的、多范式的、可扩展的、开源的语言。它的语法简单,程序易于维护。难怪Python拥有世界上最大的编程社区之一。

它的未来是光明的。在即将到来的人工智能、机器学习和数据科学时代,Python的创新正呈指数级增长,它是动态的、通用的,可以与其他编程语言一起使用。它的继续成功将在很大程度上取决于坚持同样的原则,正是这些原则促成了它迄今的成功。

由编程社区左右Python未来发展方向和潜在改进,这只是Python发展的一种方式。Salt's Hatch说:“我认为,首先,能够极大地推动Python向前发展的是有更好的内置方法,如解决单个二进制问题,或者在PyInstaller上继续发展。其次,我们有可能从LLVM的角度来理解Julia开发人员所做的工作,并使这些工作成果适用于Python。”

结论

在接下来的几年里,Python将与Java一起作为主要语言,用于许多行业的企业应用程序开发。在未来的人工智能应用开发时代,Python作为通用语言的地位不会改变。然而,术语“通用语言”的定义将随着我们编程需求的变化而变化。随着Python语言的发展,理解Python迄今为止的发展、坚持Python的基本原则,将变得越来越重要。

原文链接:https://www.welcometothejungle.com/en/articles/btc-python-popular

参考资料:https://realpython.com/regex-python/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 根基深厚
  • 早期版本
  • 成熟期
  • 大数据、机器学习和数据科学的兴起
  • 快速发展
  • 作为初学者首选编程语言的Python
  • Python 3.5及3.5以上的版本
  • Python的未来
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档