[oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum
python 历史
回忆上次内容
颜文字是kaomoji
把字符变成一种图画的方法
一层叠一层
很多好玩儿的kaomoji是一层层堆叠起来的meme
虚拟的表情也在真实世界有巨大影响
一步步地影响
字符编码就是这样一步步发展过来的
python也是 一步步 发展到今天的
python究竟是
怎么
发展的呢?🤔
缘起
python 这门语言怎么来的呢?
还要从从荷兰说起
在荷兰首都 阿姆斯特丹
荷兰城市中的丹(dam)特别多
阿姆斯特丹就是 阿姆斯特河上 大坝的意思
因为整个荷兰都是围海造田出来的
而且城市以各方面开放的态度著称
毕竟世界马车夫
飞翔的荷兰人
童年
Guido van Rossum
Guido 很像 听起来 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