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 是
-
如何定义变量的呢?
-
我们下次再说!👋