[oeasy]python0007-Guido的简历

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
完整命令是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/teacher/workbench/courses/3584github->https://github.com/overmind1980/oeasy-python-tutorialgitee->https://gitee.com/overmind1980/oeasypython 作者:oeasy