[oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum
- 颜文字是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 是那边的大玩家
- 研发了一个 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 也是交互性的
- 可以一边打一边互动的
- 就像 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 语言吸取了很多经验
- 词法分析对他来说已经没有什么难度了
- 难的是起名字
- 这回的新语言叫什么名字呢?
- guido 当时是在看短剧脚本
- 短剧是英国剧团 monty python‘s flying circus 的
- 成天看 入迷了
- 起名就叫 python
- 还有点神秘感
- 这个剧今天还能搜到
- 1970 年代开始
- 逆向思维发散思维的短视频
- 当时还是传统电视剧的天下
- 这个英国剧团影响力很大
- 就像是戏剧届的 Beatles
- guido 本人回忆
- 当时需要一个简短、独特、还有点神秘的名字
- 正在读剧本
- 然后就这么定了
- 最早的 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 是
- 如何定义变量的呢?
- 我们下次再说!
[oeasy]python00134_[趣味拓展]python起源_历史_Guido人生_ABC编程语言_Tanenbaum的更多相关文章
- Python的发展历史及其前景
Python的发展历史 1989年,吉姆·范罗苏姆为打发时间,决定为当时正构思的一个新的脚本语言编写一个解释器.作为派森的狂热粉丝,他以Python命名该项目,使用C进行开发. 1991年发布Pyth ...
- python开发_++i,i += 1的区分
python开发_++i,i += 1的区分 在很多编程语言(C/C++,Java等)中我们都会碰到这样的语法: 1 int i = 0; 2 ++ i; // -- i; 这样的语法在上述编程语言中 ...
- python学习_数据处理编程实例(二)
在上一节python学习_数据处理编程实例(二)的基础上数据发生了变化,文件中除了学生的成绩外,新增了学生姓名和出生年月的信息,因此将要成变成:分别根据姓名输出每个学生的无重复的前三个最好成绩和出生年 ...
- python练习_购物车(简版)
python练习_购物车(简版) 需求: 写一个python购物车可以输入用户初始化金额 可以打印商品,且用户输入编号,即可购买商品 购物时计算用户余额,是否可以购买物品 退出结算时打印购物小票 以下 ...
- Python递归_打印节点信息
Python递归_打印节点信息 递归特性:1.必须由一个明确的结束条件2.每次进入更深一层递归时,问题规模相比上一次递归都应该有所减少3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用时 ...
- python 爬取历史天气
python 爬取历史天气 官网:http://lishi.tianqi.com/luozhuangqu/201802.html # encoding:utf-8 import requests fr ...
- python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学
首发于:python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=431 本文 ...
- python练习_三级菜单
python练习_三级菜单 需求: 做一个地区查询三级菜单,输入一级能够打印下一级 在第三级个第二级输入e可以返回上一级 在任意一级输入q则退出程序 以下代码实现的功能与思路: 功能: (1)通过In ...
- python之 python 起源、语言特点
一. 1.1 什么是 PythonPython 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性.它可以帮你完成工作,而且一段时间以后,你还能 ...
- python练习_简单登录
python练习_简单登录 需求: 做一个登录的小程序,验证用户与密码 要求登录三次错误后锁定 以下代码实现的功能与思路: 功能: 1.除admin以外的用户累计登录失败次数超过三次则锁定,此时需要管 ...
随机推荐
- IDS4 傻瓜式实践指南
前言: 这是一篇实践指南,不会过多的解释原理(因为我也说不清楚,想了解的同学请移步老张的博客,里面有非常详细的介绍),本篇文章讲解如何简单的使用IDS4来实现单点登录,以及遇到的一些坑实现功能: 1. ...
- C# 泛型里使用四则运算的办法,委托的妙用
直接上代码 public static class TestGenricCalc { public static T Clac<T>(T t1, T t2,Func<T,T,T> ...
- 透过 Go 语言探索 Linux 网络通信的本质
前言 各种编程语言百花齐放.百家争鸣,但是 "万变不离其中".对于网络通信而言,每一种编程语言的实现方式都不一样:但其实,调用的底层逻辑都是一样的.linux 系统底层向上提供了统 ...
- HTML——table表格标签
一.table表格的完整写法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- latex图片格式问题解决(viso转PDF转eps)
latex图片格式问题解决(viso->PDF->eps) 1.viso绘图 如何让界面自动适应图的大小? 设计->大小->适应绘图 如何将VISIO图转换为PDF? 文件-& ...
- zabbix笔记_005 zabbix自动发现
自动发现 [消耗资源较大] 1.1 自动发现监控主机 自动发现的好处: 快速发现,并自动添加主机,省去管理员配置的麻烦. 管理简单高效 zabbix监控构建速度更高效 1.2 自动发现的原理 自动发现 ...
- mediaserverd
1.mediaserverd是什么 mediaserverd(/usr/sbin/mediaserverd)是被root进程launchd启动的一个后台(daemon)进程,其描述文件为com.app ...
- [brief]虚拟机安装UbuntuServer
1.下载Ubuntu--Server镜像官网点击 2.Vmware15.x配置 2G /boot 4G swap(一倍或两倍于分配内存量) rest / or /+/home 3.terminal下安 ...
- yum install 出错
``` yum -y install ansible ``` 出错 一直在刷屏,刚开始以为在安装但是最后没有安装成功 百度发现是这是redhat7和8的yum源混用 1.先确认本机器系统信息 cat ...
- 逻辑卷缩容报错 xfs_growfs: /dev/new/new_box is not a mounted XFS filesystem
[root@server ~]# xfs_growfs /dev/new/new_box xfs_growfs: /dev/new/new_box is not a mounted XFS files ...