[oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum
python 历史
回忆上次内容
- 颜文字是kaomoji把字符变成一种图画的方法 一层叠一层 很多好玩儿的kaomoji是一层层堆叠起来的meme

- 虚拟的表情也在真实世界有巨大影响一步步地影响

- 字符编码就是这样一步步发展过来的
- python也是 一步步 发展到今天的python究竟是
怎么
发展的呢?🤔
缘起
- python 这门语言怎么来的呢?
- 还要从从荷兰说起

- 在荷兰首都 阿姆斯特丹荷兰城市中的丹(dam)特别多
- 阿姆斯特丹就是 阿姆斯特河上 大坝的意思因为整个荷兰都是围海造田出来的 而且城市以各方面开放的态度著称
- 毕竟世界马车夫飞翔的荷兰人
童年
- Guido van RossumGuido 很像 听起来 Guide 把 e 变成了 o 常见的名字 意大利、德国、荷兰都有应该翻译成圭多 土生土长荷兰人 这也是他github中id的来源

- van 的意思是 from从罗森来的圭多 有点 燕人张飞 这个意思 罗森在哪里呢?
罗森
- 从日德兰半岛南边Gelderland and Overijssel地区来的

- 1920年有本科幻小说叫做R.U.R. Rossum's Universal Robots 罗素姆万能机器人
- 剧名中「robota」一词源于捷克语 意思是「苦力」
- 也是robots一词的来源
家庭
- 母亲是教师、父亲是职员 下面有一个弟弟 一个妹妹 认为自己是一个 nerd朋友很少 喜欢数学物理课程也喜欢荷兰文学 不喜欢历史 理科里面不喜欢化学因为有一大堆表格要背

- 喜欢那种从基本原则推导的东西电子 观鸟 周末喜欢和同好在一起
大学
- 大学去的是阿姆斯特丹大学荷兰最好的大学 学习数学 可以用 Algol68 操作 mainframe 当时 Algol68 和 fortran 也有语言之争 不过数学系只是研究算算数 没有啥意思
- 阿姆斯特丹还有个自由大学那里的计算机更发达 那里研究操作系统、数据库、编程语言
- 当时阿姆斯特丹有三个地方可以用计算机两个大学和一个数学中心 当时凑钱买了一个计算机 放在自由大学 因为那里有 Tanenbaum
Tanenbaum
- Tanenbaum 是那边的大玩家研发了一个 minix 启发了后来的 linus 开发出 linux

- 两个学校可以互信学分Guido 迷上了 Tanenbaum 的课程
研究中心
- 毕业之后,Guido 就加入了本地的计算中心阿姆斯特丹的 cwi CWI 是 荷兰语简称 Centrum Wiskunde & Informatica
- 英语叫National Research Institute for Mathematics and Computer Science 国家数学和计算机研究中心

- 那里研究些什么呢?
前辈
- 算法!Edsger Dijkstra Dijkstra算法的作者

- 在 CWI 的研究员期间开发了同名的最短路径算法 发展了堆栈概念 互斥、死锁、信号量
- Dijkstra和 Hoare、Dahl 合著的《结构化程序设计》很厉害他主张不用 goto 能和这些先进的人学习实在是很棒
- Guido 负责一些应用程序的开发写了 BSD 支持通配符的一个算法
ABC 编程
- 首先是开发一种 ABC 编程语言
- 这个语言的名字可真好记啊小朋友都能记住 没错就是让小朋友能记住 能让小白能轻松学习的一种语言
- ABC 也是交互性的可以一边打一边互动的 就像 python 游乐场那种 REPL 环境 当然那个时代是 1980 年左右 根本没有 python
- 当时主要的问题是科学家不会编程 搞不懂溢出、数字存储模式 总之就是无法用计算机真正解决问题
- 结构化的高级的交互式的语言不用自己分配内存 替代 basic、pascal、awk 的 一种语言 不是一种难以入手的系统编程语言 就是给初学者玩着学习用的、

- Guido加入了 ABC 的开发肩负了主要的开发任务 和组里面人对于 ABC 进行各种争论
- ABC语言具体啥样呢?
语言细节
- ABC 语言使用冒号和缩进来表示程序块 行尾没有分号 for 和 if 结构中也没有括号() 赋值采用的是 PUT 而不是更常见的等号

- 这些改动让 ABC 程序读起来像一段文字
- 尽管已经具备了良好的可读性和易用性关键字都用大写字母 ABC 语言最终没有流行起来
- 那这个语言这么好记 、这么方便为什么就不流行呢?😡
起名的学问
- 太过注重初学者了但是没有上升的阶梯 只能搞一些小玩闹 不能做真正的工作 上手快但是没有后续的成就感
- 而且这个名字起的就是傻瓜化纯傻瓜化

- 你学什么编程语言呢?我学的是 ABC 听起来就很幼稚 儿童玩具吗 人家那边的名字叫 pascal 帕斯卡 数学家、哲学家,多有文化 这边叫 ABC
- 你会 ABC 么?会啊 我还会唱字母歌呢!
- 不能做复杂工作还有个原因就连简单的读文件都没办法做 😭
可扩展性
- 缺乏可扩展性新加一个功能 整个新东西就得伤筋动骨 需要结构性的改变
- 拓展性非常重要说白了就是人人都可以自己编写插件 编写模版

- 人人都能玩都能添砖加瓦 就可以把这个软件的功能和丰富性极大提高 这样用众包的方式打一场人民战争
- 除此之外,还有个最重要的原因
失败原因
- 没有钱了

- 后来这个项目部就黄了么
主角
- Guido仍然在这个 cwi 里面工作1989 年闲的没事 想写一个脚本解释器 就像一个 shell csh bash zsh 那种脚本解释器 不为了钱就为了好玩 他对于鸡尾酒会和 acm 论文不感兴趣 想做一些实际的东西 他已经从 abc 语言吸取了很多经验 词法分析对他来说已经没有什么难度了

- 难的是起名字这回的新语言叫什么名字呢?
python
- guido 当时是在看短剧脚本短剧是英国剧团 monty python‘s flying circus 的 成天看 入迷了

- 起名就叫 python还有点神秘感
短剧
- 这个剧今天还能搜到1970 年代开始

- 逆向思维发散思维的短视频当时还是传统电视剧的天下 这个英国剧团影响力很大 就像是戏剧届的 Beatles
回忆过程
- guido 本人回忆当时需要一个简短、独特、还有点神秘的名字

- 正在读剧本然后就这么定了
logo 演化
- 最早的 logo 是他的弟弟 Just von Rossum 做的

- 后来出现了两只大蟒蛇的样子

语言细节
- 1991 年 2 月 发布了 0.9.0最早是一种解释型的语言 程序是在解释器里面运行的
- 当时的 slogan python 是 c 与系统脚本语言之间的桥梁python bridges the cap between c and shell programming
- 发布在 operating system amoeba 系统上

组织风格
- 兼职的开始Guido 业余做的这个 python 当时还没有网页服务器 有一个邮件列表
- Guido 并不是孤军奋战Guido 是仁慈的独裁者 社区里面的人提各种各样的建议 社区氛围是有趣的 Tim Peter 等很厉害的人逐渐加入 解决了很多实际问题
- Python 社区是自组织的第一次的线下聚会不是由 Guido 发起的 第二、三次也不是 慢慢形成了 PyCon 的氛围
总结
- 这次回顾了一下历史python 是如何从无到有的 看到 Guido 长期的坚持和努力

- 再复杂的编程也是从定义变量开始的python 如何定义变量呢?
- python 是如何定义变量的呢?
- 我们下次再说!👋
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython
还没人赞这篇日记