Python 发展史

  1. 前言
  2. Python 历年

1、前言

Hello World
  先提一下写这篇文章的原因,一是因为我认为国内关于 Python 历史的资料不是很完整,比如我在很多平台上都查阅过,很多文章不是千篇一律,就是只谈其一,所以想写一篇比较全面、比较完整的 Python 发展史,并且尽可能通俗易懂;二是因为我认为知道 Python 的人们更应该知道它的历史。
  
  再提一下这篇文章已经修改过很多次了,现在仍在不断完善,我会尽可能把国内外的资料统合整理一下,总结出来,也有想过是以历年的方式讲述发展历程还是以版本的方式讲述。
  
  个人觉得 Python 的成长和成功是非常励志和值得高兴的。

2、Python 历年

1989年
  在那个计算机资源匮乏的年代下,是 Guido 这些程序员们想到了要让编程变得更简单,志在让人人都能轻松编程,享受编程。非常的感谢他们,有了他们的行动和努力,一步步推动 IT 领域的发展,我们今天的时代才会如此的精彩,我相信我们也能为此付出实际行动和努力,创造更精彩的现在和未来。
  简单介绍一下,Python 语言的创造者是 Python 之父:Guido Van Rossum
  Python 的解释器在 Guido 的圣诞节假期里开始编写。
  动机始于当时的时代背景下,底层的代码编程工作枯燥而且效率低下,比如重复的造着轮子、一次又一次担心内存的管理等,造成当时计算机用户群体的差异化以及计算机发展的迟缓,而促进 Guido 创造 Python 语言的媒介是介于当时计算机语言的各种优劣,让他期望存在一种新的计算机语言:
  一种能继承 “ABC 语言易学、易用的设计理念以及拥有 Unix shell 和 C 的便捷和强大” 这样的计算机语言,而 ABC 语言这个项目是为了创造一种可以取代 AWK,PASCAL 和 BASIC 的语言,之后构思出通过优化细节、调用 C 库、组件可扩展的方式解决当时计算机语言的固有问题,这一想法很聪明而且足够现实。
 
1990年
  在这一年,个人计算机开始进入普通家庭,当时的计算机还没有今天这样盛行和普遍,但越来越多的计算机用户已经开始大量使用 Internet 进行交流,比如使用 email 和 newsgroup 等。
  之后,Intel 发布 486 处理器,windows 发布 window 3.0 等一系列视窗系统,这是计算机领域飞速发展的征兆,计算机的性能逐渐提高,越来越多的人重视计算机的易学、易用性,比如图形化界面等,为 Python 语言的诞生和发展奠定了基础。
 
1991年~1993年
   1991 年,第一个用 C 语言实现且能够调用 C 的库文件的 Python 解释器诞生。
   继 91 年 2 月 ,Python 0.9.0 发布之后,Python 0.9.x 系列在 91年 和 93 年之间陆续发布,具体如下:

版本 时间
Python 0.9.1 1991- 02
Python 0.9.2 1991年 秋季
Python 0.9.4 1991-12-24
Python 0.9.5 1992-01-02
Python 0.9.6 1992-04-06
Python 0.9.8 1993-01-09
Python 0.9.9 1993-07-29

================
   Guido Van Rossum 将代码(标记为 0.9.0 版)发布到 alt.sources,当时的 Python 跑在一个叫 Amoeba 的分布式操作系统上,已经具有继承、异常处理功能和核心数据类型 list、dict 和 str 等。在这个初始版本中还有一个借用 Modula-3 的模块系统, Guido Van Rossum 将该模块描述为 “ Python 的主要编程单元之一”。Python 的异常模型也类似于 Modula-3,在此之上增加了一个子句。
   91 年,Linus 在 comp.os.minix 新闻组上发布了Linux 内核源代码,吸引了大批 hacker 的加入,之后 GNU 和 Linux 相互合作搭了一个引人入胜的开源平台,这样硬件性能不是瓶颈 Python 又容易使用,Python 的用户群就开始暴涨! 
   之后 Guido 维护了一个 maillist,Python 用户就通过这个进行交流,这是 Python 后来主要的开发方式,用户群体来自不同的领域有不同的立场,对 Python 也有不同的需求,有了不同的需求,就需要 Python 变得更强大,之后凡是有这种因需求而扩展的改动,Python 用户就将这些改动发给 Guido,然后他决定是否加入到 Python 里面。在当时,如果自己的代码能加入到 Python 里面,是件很荣幸的事,由于 Guido 有至高无上的决定权,他因此被称为 “终身的仁慈独裁者”,Python 被称为 “Battery Included”,是说它以及其标准库的功能强大,之后越来越多的人积极参与改进,这极大的促进了 Python 的发展!
 
1994年~2000年
   Python 鉴于 ABC 语言的失败而坚持开源以及可扩展的特点,Python 就进入了一种不断拓展和改进的良好状态,开发方式也由 maillist 向开源转变,就这样,逐渐形成了社区气氛,工作被整个社区分担,Python 也获得了更加快速的发展,版本的迭代速度也随之增加。
   Python 1.x 系列在 1994 年和 2000 年之间陆续发布,具体如下:

版本 时间
Python 1.0 1994-01
Python 1.2 1995-04-10
Python 1.3 1995-10-12
Python 1.4 1996-10-25
Python 1.5 1997-12-31
Python 1.6 2000-09-05
Python 2.0 2000-10-16

================
   Python 1.0 版本增加了 λ、映射、过滤和还原,主要新特性是 lambda,map,filter 和 reduce。
   在 1.4 版本中,Python 已经获得了几个新的功能。其中最吸引人的是 Modula-3 启发的关键字参数以及对复数的内置支持,还包括通过名称修改隐藏数据的基本形式。
   
   Python 用户群增长的里程碑是在 1994 年 Python 的论坛(comp.lang.pythonelse)成立。
   
   Guido 在 CWI(成立于1984年)时发布的最新版本是 Python 1.2。
   之后 Guido 从荷兰移居至美国并遇到了他现在的妻子,然后在弗吉尼亚州雷斯顿的 CNRI(国家研究计划公司)继续他的 Python 工作,从那里他又发布了几个版本。 
   Guido 留在 CNRI 的期间,推出了 “人人计算机程序设计 ”(CP4E)计划,该项目由一个成立于 1958 年的 DARPA(美国国防高级研究计划局)资助。目的在于让越来越多的人能够更方便的使用计算机编程,并且在编程语言中具有基本的 “识字能力” ,类似于基础的英语理解和数学能力。
 
   Python 应用方面的实例: Guido 在1995年8月 至 1998年10月 之间用 Python 编写的图形 Web 浏览器,用作在受限执行环境中运行用 Python 编写的小程序的试验台环境。
   1999 年,Python web 框架的鼻祖 Zope1 发布,Guido 向 DARPA 提交了一条名为 “Computer Programming For Everybody” 的资金申请,并在后来说明了他对 Python 的目标:
  1、一门简单直观的语言并与主要竞争者一样强大
  2、开源,以便任何人都可以为它做贡献   
  3、代码像纯英语那样容易理解
  4、适用于短期开发的日常任务
 
   之后在 2000 年 10 月 16 日,Python 2.0 发布,增加了一些主要的新功能,比如内存回收、引入列表推导等,引入列表推导是从函数式编程语言 SETL 和 Haskell 借用的一个特性。除了 Haskell 对标点字符的偏好和 Python 对字母关键字的偏好之外,Python 的这种结构的语法与 Haskell 非常相似,包括用于内存管理和支持 Unicode 的循环检测垃圾收集器(除了引用计数)。
   同年(2000 年),Python 核心开发团队转移到 BeOpen.com,组建了 BeOpen PythonLabs 团队。 
   自 Python 2.0 发布之后,有越来越多的公司和个人使用 Python,并且美国的国家级研究机构也开始使用 Python 了,而且很多与科学计算相关的函数库都是美国顶级的研究中心做的。这时候 Python 的优势就越来越大了。
 
2001年~2002年
   01 年 4月15日,Python 2.1 发布,该版本包括对语言规范的更改,以支持嵌套作用域,就像其他静态作用域语言一样,默认情况下,该功能处于关闭状态,不需要,直到 Python 2.2。
 
   Python 2.1 与 Python 1.6.1 以及 Python 2.0 很接近。其许可证已重命名为 Python Software Foundation License。从 Python 2.1 发布 alpha 版本开始,所有添加的代码、文档和规范都归 Python 软件基金会(PSF)所有,该软件基金会是一个以 Apache 软件基金会为蓝本的非营利组织,成立于今年。
 
   12月21日,Python 2.2 发布,Python 2.2 的一项重大创新是将 Python 的类型(用 C 编写的类型)和类(用 Python 编写的类)统一到一个层次结构中,这种统一使得 Python 的对象模型纯粹且始终如一的面向对象,还增加了受 lcon 启发的 generator。顺带一提,Guido 的儿子 Orlijn 于今年出生。
 
2003年~2007年
   在 2003 年初,Guido 和他的家人一直居住在华盛顿洲北弗吉尼亚的郊区,之后他们搬迁到了硅谷。
   在此期间发布的版本具体如下:

版本 时间
Python 2.3 2003-07-29
Python 2.4 2004-11-30
Python 2.5 2006-09-19

================
   Python 2.5 引入了 with 语句,该语句将代码块包含在上下文管理器中(例如,在运行代码块之前获取锁定并在之后释放锁定,或打开文件然后关闭它),允许资源获取是初始化(RALL)的行为,并取代常见的尝试。示例如下:

with open("filename.txt","r") as f:f.write("Scale is a handsome guy!")

========Hahaha========
  
   2004 年,Web 框架 Django 诞生,并宣布 Python 2.7 将在 2020 年之前得到支持,但鼓励用户尽快转向 Python 3。
 
   2005 年,Guido 开始为 Google 工作。

2008年~2019年
   2018 年 7 月 12 日,Python 的创始人 Guido 正式退出 Python 核心决策层。
   
   2008 年 至 2019 年 发布的 Python 3.x 系列,具体如下:

版本 时间
Python 2.6 2008-10-01
Python 3.0 2008-12-03
Python 3.1 2009-06-27
Python 2.7 2010-07-03
Python 3.2 2011-02-20
Python 3.3 2012-09-29
Python 3.4 2014-03-16
Python 3.5 2015-09-13
Python 3.6 2016-12-23
Python 3.7 2018-06-27
Python 3.8.0 alpha 1 2019-02-03
Python 3.8.0 alpha 2 2019-2-25
Python 3.8.0 alpha 3 2019-03-25
Python 3.8.0 alpha 4 2019-05-06
Python 3.8.0 beta 1 2019-06-04
Python 3.8.0 beta 2 2019-07-04
Python 3.8.0 beta 3 2019-07-29
Python 3.8.0 beta 4 2019-08-30
Python 3.8.0 candidate 1 2019-10-01
Python 3.8.0 2019-10-14
Python 3.8.1 candidate 1 2019-12-10
Python 3.8.1 2019-12-18

================
   这里说一下,版本号的 alpha 是指内测版,就是开发团队内部的测试版本和发放给一定用户体验的测试版;Beta 是指公测版,就是公开给所有用户的测试版;candidate 是指修改版,是正式版发布前的候选版;final 是指正式发布版,通过了 alpha 和 Beta 以及 candidate 之后正式发布的版本。
   在 Python 3.6 中加入的 f-string ,该语法带来了很多方便的特性,但在调试中不能使用,因此在3.8中,Python 加入了一些针对 f-string 的附加语法,以便于调试中对输出进行优化。
   Python 3.8.0 b1 版本 和 beta 版引入了 “:=” 海象运算符,目的是为了降低多模式匹配及循环语句的复杂性,可以提高代码运算效率。示例如下:

if (a := 1) == 1:print("Scale is a handsome guy!")
else:print("Scale is a handsome guy!")

========Hahaha========
   pycache 文件夹是 Python 解释器自创的文件目录,用于保存生成的 .pyc 文件,用于记录解释器处理 .py 文件后生成的二进制码,这一文件主要用于支持处理多个版本的 Python 代码以及使用 CPython 以外编写的代码,被处理的代码均自动生成格式为 “name.interp-version.pyc” 的代码并保存到 __pycache__文件夹中,等等。
   2008 年,发布了 Python 的 Numpy 和 Scipy,这俩和 2009 年发布的 Pandas 称为数据分析与科学计算的三剑客。Python 2.6 也于今年发布,包含该版本的一些功能,以及 “警告” 模式,突出显示了在 Python 3.0 中删除的功能的使用。
 
   Python 3 的指导原则是:“通过删除旧的的处理方式来减少功能重复”。
 
   Python 3.x 系列的后续版本包含了额外的实质性功能;所有正在进行的语言开发都是在 3.x 系列中完成的。Python 到这里就已经走进世界上大部分人们的视线中了。
   
2020年
   笔者现在所处的 2020 年,更新了 3.8 系列以及预期了 Python 3.9.0 正式发布的时间,并宣布了停止对 2.x 版本的支持,也就是 Python 的核心开发人员不再修复 2.x 系列的错误和更新安全补丁了,此期间发布的版本具体如下:

版本 时间
Python 3.8.2 candidate 1 2020-02-10
Python 3.8.2 candidate 2 2020-02-17
Python 3.8.2 2020-02-24
Python 3.8.3 rc1 2020-04-29
Python 3.8.3 2020-05-13
Python 3.9.0 2020-10-05
Python 3.9.1 2020-12-07

================
   如果只是怀旧,当然可以继续使用 2.x 系列,但是放到工作中,就会给自己和同事带来麻烦,想必很多公司正在为 2.x 的淘汰手忙脚乱吧,这也是没有办法的事,如果有一天,3.x 系列也会变成这样,到时候我们该怎么办呢?
   一直以来,Python 在不断的吸收其他语言的优点和避开致命的缺点而成长,最早借鉴了 ABC 语言,还依赖了现在仍在使用的 C 语言等等。Python 现在优秀的点点滴滴也间接代表了其他语言吸引人们的优点。相对的,一种由日本人松本行弘 开发的面向对象的脚本语言 Ruby 也借鉴了 Python,每个语言都互相取长补短的不断成长,但是,只要能帮助人们解决计算机领域的实际问题并和人们一起进步和走向未来,相信就是这些计算机语言最好的归宿了吧。
   
2021年~2022年
   此年间的 python 开始更大程度的向其他优秀的语言吸收其优点,发布的版本具体如下:

版本 时间
Python 3.10.1 2021-06

================
   在 Python 的官方网站里看到了一个有趣的图:
   记得 Guido 好像表示过自己并不喜欢将 Python 与蛇联系起来,结果现在 Python 的官方网站直接把蛇的图片挂出来了,刚看见的时候也不相信,现在信了。
   
   感谢 CSDN,感谢朋友们的支持。

精简 Python 发展史相关推荐

  1. Python基础学习笔记(一)python发展史与优缺点,岗位与薪资

    相信有好多朋友们都是第一次了解python吧,可能大家也听过或接触过这个编程语言.那么到底什么是python呢?它在什么机缘巧合下诞生的呢?又为什么在短短十几年时间内就流行开来呢?就请大家带着疑问,让 ...

  2. 菜鸟python_菜鸟爱Python第1期:Python发展史?对Python最深刻的解读

    这是胜天半子的第1篇原创. 前言 也许你不是一名程序员,也许你甚至都不是做IT行业的,但你的定位只要不是被时代所抛弃的老年人,你,多多少少应该听过"Python"一词,多多少少看到 ...

  3. python的设计理念和应用_菜鸟爱Python第1期:Python发展史?对Python最深刻的解读...

    这是胜天半子的第1篇原创. 前言 也许你不是一名程序员,也许你甚至都不是做IT行业的,但你的定位只要不是被时代所抛弃的老年人,你,多多少少应该听过"Python"一词,多多少少看到 ...

  4. python了解一下_Python发展史了解一下

    一.Python发展史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器.Python这个名字,来自Guido所挚爱的电视剧Monty Python's Flying Circ ...

  5. Python介绍、发展史、安装、变量、注释、输入

    一.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  6. 洗礼灵魂,修炼python(1)--python简介

    首先,本人也是刚接触python不久,没有老鸟的经验和技能,大佬勿喷,以下所有皆是本人对python的理解 python,是一种解释型(高级)的,面向对象的,带有动态语义的高级程序设计的开源语言.19 ...

  7. python实验报告心得1000字,python数据分析论文2000字

    python有哪些特点和优点 显著的优点Python 语言拥有诸多的优点,这其中,以下几个优点特别显著:简单易学:Python语言相对于其他编程语言来说,属于比较容易学习的一门编程语言,它注重的是如何 ...

  8. Python语法基础和数据类型

    第1章 Python基础 Day1 基本语法 1.1 编程语言介绍与分类 什么是编程语言?本质上跟人类语言,目的一样. 沟通电流+一堆硬件高电压1 低电压 0高电压1 低电压 0高电压1 低电压 0 ...

  9. 认识和了解python

    一: Python介绍 1.1 python创始人吉多.范罗苏姆(龟叔)在1989年开发.python崇尚优美,清晰,简单. 1.2 python是一门解释型语言,属于弱类型语言. 1.3 优点: 1 ...

最新文章

  1. JavaScript事件详解-jQuery的事件实现(三)
  2. string 换行符_Java 11 已发布,String 还能这样玩!
  3. 《城市建筑美学》读书笔记
  4. mysql group 分页_【MySQL】条件查询之排序聚合分组分页查询
  5. AOP 还在配置吗改用打标签模式吧!
  6. UNIX(多线程):01---线程简介及线程限制
  7. 动态规划应用--找零钱
  8. 保姆级带你深入阅读NAS-BERT
  9. linux shell使用tar 备份时间命名的文件 ( tar命令)
  10. php trait编译实现,为什么PHP Trait不能实现接口?
  11. linux网卡驱动模块名称,Linux下根据模块名查看网卡驱动版本
  12. EOJ 2月月赛补题
  13. 《嵌入式 - 语音识别TWen-ASR-ONE开发笔记》第4章 TWen-ASR-ONE PWM调光
  14. 【C语言】字符串、字符数组
  15. pathon字符串复习
  16. 163个人邮箱如何注册申请?vip邮箱有哪些优点?
  17. Ubuntu系统切换jdk版本
  18. 上传文件报错500或者文件大于2M上传不上去解决方法
  19. 【测试用例练习】二、手机app测试点
  20. DSP CCS12.00 芯片:TMS320F28335 PWM 的设计

热门文章

  1. 【测控电路】微积分电路
  2. 如何理解网络交换机的原理
  3. 亚信防火墙-网络版与亚信安全助手卸载手册(无需密码)
  4. 软件工程:“银弹”论
  5. 热敏电阻和温度转换公式和程序
  6. ubuntu右键管理员权限打开
  7. 苹果CMS搭建影视网站教程及注意事项
  8. 使用多线程+easyexcel实现异步号码导入
  9. PAT B1069 微博转发抽奖(测试点3)
  10. Linux常用命令手册(完整版)