欢迎光临散文网 会员登陆 & 注册

[oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum

2023-04-15 16:56 作者:oeasy  | 我要投稿

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


      [oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum的评论 (共 条)

      分享到微博请遵守国家法律