Guido的简历
回忆上次内容
计算机本身的特性决定
- 计算机保存传递的是电子
- 而不是原子
- 这就使得存储和分发的成本几乎为零
在这样的物理基础上
- 出现了自由软件运动
- 从rms提出的free software 开始
- 到gnu研发的各种软件
自由软件运动之后出现了开源运动
- 提倡把源代码开放
- 也被大量的商业公司所跟随
python其实是
- 一个典型的开源项目
- 自由软件标志性的语言
- 是谁制作出了python这个语言呢?
Guido
- 荷兰人Guido 最早开发的 python
- 那个时候还没有github
- 当时 Guido 怎么就想到要创造一个 python 呢?
缘起
最早 Guido 曾经在 CWI 工作
- CWI是荷兰的数学与计算机科学国家研究所
这个研究所在研究一种语言
能够像C语言那样
- 全面调用计算机的功能接口
又能像shell那样
- 轻松的编程
- 这个语言叫做ABC
当时 Guido 在 CWI 参与到 ABC语言 的开发
- 他将自己所知的一切语言设计知识都倾注在这个项目上
- 尽管已经具备了良好的可读性和易用性
Guido白天做abc
- 晚上做自己的python
但ABC语言最终还是没有流行起来
- 后来Guido去哪里了呢?
cnri
- 荷兰的国家研究中心
- Guido吸取了ABC的教训
- 开始了自己的 python语言
- 95 年开源运动还在兴起的过程中
- 研究python项目的经费是 cnri 出的
- 按理说这python应该算是cnri的
发展
Guido 想把他做成开源的
- 但是没有立场
- 毕竟 cnri 花了钱
python 从开始
- 就是属于Guido的
最开始在 cwi 工作写abc
- 下班摸鱼 改的 python 的 bug
到了 cnri
- 继续做这个
- 甚至让 cnri 出研究python项目的经费
从python的Owner上面
- 其实可以看到Guido的工作轨迹
- 那这个python到底属于谁呢?
Guido 的考量
- 在 python 的 license 里面提到了 cwi 和 cnri
当时 python 的主要成员开始讨论
- python 应该继续免费开源还是商业
Guido 认为如果商业化
- python 的用户就会离开
- 最终选择开源
- 贡献者和社区也是在开源的基础上发展起来的
但商业是世界运行的底层逻辑
- 强大的商业资本方会有律师、媒体
- python 离开商业也会举步维艰
- 这曾让 Guido 很苦恼
转机
开源运动的爆发给了他启发
- 他开始选择 gpl 协议来发布python源代码
- gpl 后续必须也得开源
后来互联网兴起
- 其中一个网站 BeOpen.com
- BeOpen 想做的是开源门户
- 用的技术是 开源的python
BeOpen 想要帮 Guido 发展python
- 就想给他一份工作
- 工作内容就是完善 python
- 这正是 Guido 所需要的!!!
- Guido 带着 3 个 CNRI 的同事一起去了
这时候 CNRI 的管理层慌了
- 他们觉得 Guido 疯了
- BeOpen 是个创业公司
- 找 Guido 谈话
- 威胁他去了就别想再回来
- 但是不可阻止了
Guido走了
CNRI 的 python 项目
- 自然也跟着走了
Guido 在哪
- python 项目就在哪
不过去 BeOpen.com 的 2000 年
- 正好是互联网泡沫兴起的时候
- 有兴起就有衰落
- BeOpen也在苦苦支撑中
- 这时候Guido又该何去何从呢?
后来
他从 BeOpen.com 之后
- Guido 很担心 python 源代码的所有权问题
后来 Guido 去了 soap 公司
- 在那里他咨询了律师
并建立了 python 基金会
- psf
- 明确了 python 的协议和所属问题
- 开源运动已经慢慢发展起来了
- Guido开始接收到各种邀约
后来他去google面试的时候
- 简历非常简单
- I wrote python
- 后几轮面试的时候
- 面试官开始反应过来
- 这是python之父Guido
2005年
- 加入 google
2012年
- 加入 dropbox
- 当时dropbox只有 150 人
- 玩起了云存储
2020年 去了微软
微软号称拥抱开源
- 要帮Guido提高python性能3-5倍
- 目前Guido还在微软
这就是Guido和python的历史
- 在商业的世界里
- Guido 走出了属于自己的道路
- 从无到有
让我们用 python
- 为 Guido 写一个简历吧
准备oeasy.py
- 我们先恢复原来的oeasy.py
- oeasy.py 已经写好了
- 保存并关闭oeasy.py
guido.py
#用vi打开并编辑guido.py
vi guido.py
上一步的oeasy.py中输出了两行内容:
- hello
- oeasy
- 这一步我们把这两行读取到guido.py
:r oeasy.py
- 读取上次的文件进入当前缓存
整理代码
gg
- 将光标移动回到最开头
dd
删除(delete)光标所在行
- 最开头的一行(gg 所在的位置)
复制代码
先按一下y
- 观察下图红框位置
- 再按一下G (注意此处是大写G)
完整命令是yG
复制的是
- 从当前位置(最开头gg )
- 到最后一行(G)的内容
- 这里复制了两行
- 这两行被复制(yank)进了默认寄存器
- 然后准备粘贴
粘贴
2P (注意此处是大写P)
- 在当前位置上方粘贴(paste) 2 次
- 多出来4行...
可以想见9999p
- 这次剪切板里面有两行代码
- 这一粘贴出来就可以有2*9999行代码了
- 还记得上次万行代码的圆梦之旅吗?
回忆...
- 万行代码不是梦
- 9999p
查看神迹
- G 可以到最末尾一行
- 这次仍然仿佛是真的发生过的梦一般
- 上次1万
- 这次2万
- 翻了一番
- 截图纪念!!
梦醒时分
圆梦了之后
- 感觉有点空虚
- 梦还是要醒的
u回来
- u是undo撤销
- 按一下u相当于撤销一步
撤销多了可以ctrl+r
r
edo 重做
回到最初
- 又回到最初6行的样子
- 梦醒之后
- 进行我们的修改
自行修改
i
- 重新切换到插入模式为输出添加年份标号
- 底行显示目前状态为插入模式
- 最终把guido.py编辑成如下的样子
print("1982------Guido in cwi")
print("1995------Guido in cnri")
print("2000------Guido in beopen")
print("2005------Guido in google")
print("2012------Guido in dropbox")
print("2020------Guido in microsoft")
执行
esc
- 退回到正常模式
- esc退出插入模式
- 准备底行命令模式运行当前py文件
保存执行
:w|!python3 %
- 保存并用 python3 解释当前程序(%)
- 可以看到输出了标了号的 6 行
- 这 6 行的顺序就是按照我们标号的
顺序
来的
顺序执行
- 这个过程叫做顺序执行
- 按照次序顺着执行的
顺序播放
- 就像我们听语音是挨排听的
- 这个过程叫顺序播放
- 按照次序顺着执行的
音符顺序
- 演奏音符也是一个个按照顺序演奏,才是这首歌曲
- 调换一下次序,就乱了,不是这个歌了
- 不过其实也是一种思路。。。
- 这个过程叫顺序演奏
- 按照次序顺着演奏的
按部就班
- 我们的生活也是按照线性的时间线顺序完成的
学习
- 学习也一样
- 要按照时间的次第
- 一步一步来
- 细水长流
- 这个编程也像流水一样
- 从头流到尾
- 所以程序也叫流程
总结
py
的程序是按照顺序执行的- 是一行行挨排解释执行的
- 程序并不是数量越多越好
- kpi也在不断演化
写的代码越多
- 出现的bug就越多
- 什么是bug
- 如何找bug呢?
- 我们下次再说!
蓝桥->https://www.lanqiao.cn/teache...
github->https://github.com/overmind19...
gitee->https://gitee.com/overmind198... 作者:oeasy