声明:本文来自于微信公众号InfoQ(ID:infoqchina),作者:赵钰莹,授权站长之家转载发布。

10 月 30 日,Python 之父 Guido 大牛宣布退休,离开 Dropbox。

他发推文说,“这件事感觉既苦涩又甜蜜:苦涩的是,我马上要离开 Dropbox,现在已经退休;甜蜜的是,在 Dropbox 做工程师期间,我学到很多,比如类型标注就来自这段经历。我会非常怀念在这里工作的日子。”

Python 正在吞噬世界

如今,人们对 Python 的热情已经远远超出了最初的开发者圈子。一些人预测,随着 Python 用户群的快速增长,它很快会成为世界上最流行的编程语言。每天有数以百万计的人使用 Python,用户群呈现出指数级的增长,几乎没有出现下降的迹象。

不管是专业的还是业余的开发人员,他们都在使用 Python 处理大大小小的任务,特别是 Web 开发人员、数据科学家和系统管理员。今年出现的第一批黑洞图片就是用 Python 拼接出来的。

Python 在一些世界知名的组织中扮演着关键角色,比如,Netflix 用 Python 向全球 1 亿多户家庭提供流媒体视频,Instagram 用 Python 实现图片分享,NASA 借助 Python 来探索太空。

Python 的早年时期

Python 原先是荷兰程序员 Guido van Rossum 的一个个人项目。20 世纪 80 年代末,van Rossum 在荷兰国家数学和计算机科学研究中心的 CWI 部门开发分布式系统。由于对已有的编程语言感到十分失望,他决定开发一门新的语言——一门既易于使用功能又强大的语言。

对于当时的 van Rossum 来说,使用仅有的几种编程语言完成任何一件事情都显得很困难。他正在开发的 Amoeba 分布式计算系统要求他使用 C 语言或 Unix shell,但这两种语言都有很大的局限性。C 语言要求开发人员自己手动管理内存,容易埋下潜在的 bug,而且还缺少可重用的代码库。开发人员想要完成日常任务,需要在每个新项目中重新发明轮子。Unix shell 存在另外一个问题——它虽然为日常任务提供了一些实用程序,但它们的运行速度太慢,无法处理复杂的逻辑。

这些语言对开发人员造成的限制如此之大,以至于在 van Rossum 看来,他自己创建的这门解释型语言——从 ABC 语言借用了一些特性——似乎是最好的选择。

van Rossum 回忆道:“我当时在想,为什么不自己开发一门语言呢?我完全可以借鉴 ABC 的一些想法,并将项目的规模缩小一些,把原先需要花三年时间完成的东西缩短至三个月内,让它变成我自己的个人项目。于是,Python 诞生了”。

1989 年末,van Rossum 开始认真地开发这门语言,并借用了他最喜欢的喜剧团体“Monty Python”的名字,又因为与蛇有关系,后来就有了那个盘绕的巨蟒的 logo。

他说:“当时我也不知道 Python 是否真的会让我的工作变得更有效率。在某种程度上,我真的很喜欢这种可以自己完成一个大项目的想法,并且可以按照我想要的方式来设计和实现。在我看来,编程是件有趣的事情”。

三个月之后,van Rossum 做出了可运行的 Python 原型。

他说:“虽然现在的 Python 有很多在当时并不存在的抽象特性,但语言本身仍然始终如一”。

“那时,Python 已经具备了解析器和运行语言所需的基本组件。第一个可运行的 Python 程序放到现在仍然可以运行”。它们的函数定义是一样的,缩进是一样的,字典和元组的创建语法是一样的,交互式提示符也是一样的。

当他的两个同事开始使用这门语言处理日常任务时,van Rossum 并没有指望它会流行起来。因为他知道,在互联网时代到来之前,让一门编程语言流行起来有多么困难。

在今天,只需要点击几下鼠标就可以把一款软件分享给全世界,但在上世纪 80 年代,这是一件非常费力的事情。

1991 年,van Rossum 通过 alt.sources 新闻组向全世界发布了 Python。这在当时基本上算是一种开源许可协议,比”开源许可协议“这个术语本身早了六年出现。虽然当时的 Python 解释器仍然需要将 21 个单独的部分连接成一个压缩文件,并需要连夜从 Usenet 网络上下载下来,但与几年前线下送磁带的方式相比,它仍然要高效得多。

他说:“我希望 Python 可以取得成功,毕竟之前我做的另一个东西基本上以失败告终”。

van Rossum 说,在很长一段时间之后,他才知道 Python 的用户群在增长。渐渐地,他意识到 Python 的发展势头正在形成,在与 Python 社区进行了一段时间的交流之后,他知道,Python 成功了。

Python 为什么会赢

Python 在 20 世纪 90 年代初期到中期开始受到关注,Python 的时代到来了,这让 van Rossum 感到震惊。

van Rossum 相信,被 Python 吸引过来的开发者,他们转向 Python 的原因与他当初创建 Python 的原因是一样的。他们需要一门高级的脚本语言,能够在易用性和功能之间取得平衡。他们希望能够结束在 C 语言中手动管理内存、在开始新项目时需要为重复任务重新实现代码的日子。

Warsaw 说,Python 在可用性和功能之间取得了平衡——在 20 世纪 90 年代早期,任何一门主流编程语言都没能提供这种平衡。”我写过很多 Perl、Tcl 和 C 代码,感觉它们一点都不好玩。Python 一出现,我就想,"哇,它让编程变得更有趣了’”。

不管是过去还是现在,Python 提供的都是清晰而明确的语法,它使用缩进将代码分组成块,让开发人员更容易阅读和理解代码。

Python 强调代码的简洁和可读性,这并非偶然。van Rossum 曾公开表示,编程语言不仅要告诉计算机该做什么,还要便于在开发者之间传递思想。

Ryan 说,除了可读性之外,Python 很早就内置了一些通用的功能,这让 Python 从其他语言中脱颖而出。“你从一开始就可以使用某些功能,比如类和异常处理。Python 还提供了对 lambda、map 和 filter 等函数的支持,这些东西在很多情况下都非常有用”。

如果 80 年代末的主流编程语言能够再好一点,或许就不会给 Python 留有机会。van Rossum 开发 Python 的动机之一就是因为 Perl 与他在 CWI 工作时使用的 Amoeba 分布式计算系统不兼容。他说:“Python 的幸运之处在于 Perl 不能被移植到 Amoeba。如果 Perl 可以被移植到 Amoeba,我就不会想要自己去开发一门语言”。

尽管 Python 在发布后吸引了一批铁杆粉丝,但在 20 世纪 90 年代,Python 在编程语言方面仍然处于劣势。van Rossum 说,Python 的竞争对手是 Tcl/Tk 和 Perl,这两种语言的目标与 Python 是一样的,即简单易用且功能强大。

他说:“上世纪 90 年代,在前三大编程语言中,Perl 无疑是第一名,Tcl/Tk 是第二名,而 Python 则是第三”。

Stack Overflow 开发者报告显示,从开发者活跃度方面看,Python 是增长最快的编程语言,而 Perl 在缩水,它甚至都没有出现在最新的 Stack Overflow 开发者报告中。

下图显示了这种爆炸式的增长。近年来,Stack Overflow 网站上与 Python 相关的问题的增长速度远远快于其他编程语言。

那么,Python 是如何超越昔日的竞争对手的呢?又如何解释这两门语言之间截然不同的命运呢?van Rossum 认为,这与代码库在达到一定规模后的维护难易程度有关。他说,“从人们的经验来看,Perl 适合用来编写行数较少的脚本,但如果你的主干代码超过了 500 行,除此之外还有数千行分支代码,那么在 Perl 中维护这些代码就需要遵循很多原则。而在 Python 中,你不需要遵循那么多原则,代码仍然具有很好的可读性和可维护性”。

Python 一方面简单易用,一方面又健壮到可以用来开发大型的应用程序,这两个因素的组合正是 Python 在上世纪 90 年代取得成功的原因。

“一些互联网开发者想要开发越来越大型的应用程序,而且他们意识到用 Python 开发应用程序要比用 C 语言、C++ 或 Java 容易得多”。

随着 Python 在 20 世纪 90 年代逐渐流行起来,当时还在 CWI 工作的 van Rossum 发现他创造的这门编程语言越来越多地把他与来自世界各地的人联系在一起。

python之父-Python之父宣布退休,但Python仍在吞噬世界相关推荐

  1. Python 之父 Guido van Rossum 称退休太无聊,正式加入微软搞开源!

    Python 之父 Guido van Rossum 称退休太无聊,正式加入微软搞开源! 图片来自 Oracle 博客 今天,Python 之父 Guido van Rossum 在 Twitter ...

  2. Python 之父立 Flag:明年要把 Python 速度提高 2 倍!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 去年 11 月,退休失败的 Python 之父 Guido van Rossum 在推特上宣布,退休生活太无聊,从而加入了微软开发者部门 ...

  3. python之父guido-Python之父Guido谈Python的未来

    6月初,Python之父Guido van Rossum在今天的PyCon US大会上作了名为"Python Language"的演讲.近日,他又接受了IT媒体Infoworld的 ...

  4. python核心理念_Python 之父谈放弃 Python:我对核心成员们失望至极!

    Python 之父讲述退位原因,以及 Python 的未来将何去何从. 在 Python 社区,Python 的发明者 Guido Van Rossum 被称为 "仁慈的终生独裁者" ...

  5. python表示当前目录_从Python脚本获取当前目录的父项

    使用os.path 要获取包含脚本的目录的父目录(无论当前工作目录如何),您需要使用__file__. from os.path import dirname, abspath d = dirname ...

  6. python之父叫什么-Python之父曾强力推荐的两本书,至今仍有很多人拜读

    这两本书,主要讲Python基础和学习方向,尤其是对于初学者的方向,它能带着初学者长期保持求知欲自学Python.它们的名字叫<Python基础教程>第三版和<Python 入门指南 ...

  7. Python 2 宣布正式退休,Python 3 时代到来!

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 作者 | oschina 来源 | oschina.net/news/112492/p ...

  8. Python根据身份证号计算年龄和退休时间并保存Excel文件

    封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 图书详情: 用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系统等配 ...

  9. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

最新文章

  1. CPU对各种存储器的访问速度排序
  2. 电脑开机密码忘记了怎么办?
  3. Spring(三)——HelloSpring、IOC创建对象的方式、属性注入、自动装配、使用注解开发
  4. WatchOS系统开发大全(8)-WKInterfaceGroup
  5. Codeforces Round #578 (Div. 2)
  6. Linux中使用crontab命令启用自定义定时任务
  7. 【CodeForces - 798D】Mike and distribution (思维构造,贪心,黑科技)
  8. pl/sql developer快速输入select * from
  9. php 预览器,浏览器html代码快速预览小工具
  10. usb接口供电不足_USB不被电脑识别,按F8有用吗?这篇文章告诉你
  11. excel去重_Python 轻松搞定 Excel 常用的 20 个操作
  12. 彭旭老师《一线员工执行力提升训练》
  13. dedecms织梦入门
  14. IT兄弟连 JavaWeb教程 Servlet 状态管理 会话跟踪
  15. android SD卡文件夹
  16. MSP430单片机学习视频
  17. 剧情插件Cutscene Creator uSequencer 1.3.7.1使用说明二
  18. 学会Python,再也不愁给孩子起名字了
  19. wangEditor上传不了图片
  20. matlab亚式 期权定价,MATLAB在幂型几何亚式期权定价中的应用

热门文章

  1. sphinx索引分析续
  2. 【数据结构】二分查找
  3. javaweb基础(35)_jdbc处理oracl大数据
  4. Query Specific Fusion for Image Retrival 学习日常
  5. NHibernate——Criteria条件查询
  6. WPF学习笔记(4):获取DataGridTemplateColumn模板定义的内容控件(转)
  7. HP880G3 安装RHEL6.5
  8. 创建型模式-工厂模式
  9. Golang简单写文件操作的四种方法
  10. asp.net使用easyUI 前后台数据交互