#50 世界第一编程语言 Python
18 Aug 2020 · 50 min
在本期牛油果烤面包科技播客中,主持人邀请了 Python 中国社区的达人 like9m 进行深入对话。讨论围绕 Python 被称为“世界第一编程语言”展开,涵盖了其在搜索教程数量、入门友好度、AI 与数据科学、互联网业务后端等多领域的广泛应用。来宾阐述了 Python 语法简洁、易学、脚本语言特性以及其在实际项目(如 YouTube、Instagram)中的使用案例。随后深入探讨了性能争议,包括 GIL、单线程模型、线程与多进程、异步 async 的工作原理及其对并发的影响,并介绍了 CPython、PyPy、JIT、以及多解释器(multi‑interpreter)等实现层面的改进尝试。节目还提及了类型提示(type hints)对代码可维护性的帮助、打包(packaging)工具链的演进,以及 Python 从 Guido van Rossum 于 1990 年创立、经历 Python2 与 Python3 不兼容迁移的历史背景,特别是 Unicode 兼容性导致的破坏性决定。来宾分享了学习资源推荐(Codecademy、官方 tutorial、Fluent Python、Python Cookbook、PyCon 视频)以及社区文化("life is short, use Python" 口号、面试刷题经验)。最后,来宾展望了 Python 未来的方向,如类型系统、异步支持、性能提升和生态工具的完善,指出社区驱动与缺乏大型企业资助的双刃剑。
Chapters
在 一些 编程语言 的 排名 中 Python 是 世界 第一 语言 20 年 的 今天 如果 初学 一门 语言 那么 大 概率 是 Python 不仅如此 Python 还 在 AI 数据分析 互联网 业务 逻辑 脚本 编写 等 诸多方面 有 广泛 的 应用 这 一集 我们 有幸 请 到 了 Python 中国 社区 的 达 人 like9m 来到 我们 的 节目 聊一聊 Python 的 方方面面
如果 你 想 完成 一件 事情, 那么 最好 是 有 且 只有 一种 方法 来 做 不 需要 让 你 从 多种 方法 中 去 选择 这边 刊登 也 说 得 很 清楚 就是 他们 一 开始 低估 了 做 这样 一种 转换 的 成本 就 他们 觉得 说 我们 一 宣布 说 3.0 版本 特别 好 然后 大家 就 马上 就 用 上 python 了 然后 一下 就 完成 了 但 实际上 这个 过程 花 了 十年 还 不止
这里 是 牛油果 烤面包
大家 好, 我 是 斯特纳 特 我 是 Vindy 我 是 Kat
今天 是 一期 串台 节目 我们 的 科技 播客 牛油果 烤面包 有幸 请 到 了 播客 捕蛇者 说 来到 我们 的 节目 大家 知道 捕蛇者 说 是 柳宗元 的 散文 对 吧 所以 我们 这 应该 是 跨界 请 到 了 古文 方面 的 博客 来 做客 我们 节目
对 吧 大家 好 我 是 我
是 like9m 对 你们 这个 是 一个 古文 节目 对 吧 对 我们 是
个 古文 节目 然后 顺便 聊聊 python
这 样子 对 开个 玩笑 啊 我 理解 是 他们 这个 节目 捕蛇者 说 取义 是 要 搞定 一个 编程语言 叫 Python 就是 蟒蛇 对 吧 对 就是
我们 当时 想 这个 捕蛇者 说 的 名字 然后 也 是 想 了 挺 久 的 嘛 然后 一 开始 就 我们 说 要 做 一个 播客 就是 我们 几个 创始人 相当于 都 是 比较 喜欢 写 python 吧 然后 也 是 在 那个 python 这个 圈子 里面 就是 在 社区 里面 混 的 这么 几个 人 然后 就 说 用 一个 什么 名字 好 的 发现 好像 其他 的 播客 都 是 4 个 字, 然后 我们 也 用 4 个 字 吧, 于是 就 不舍 着 说 对, 嗯, python 就是 蟒蛇 的 意思 就是 今天 肯定 是 要 聊 python 这本 编程语言, 但是 他 为什么 这本 编程语言 为什么 以 蟒蛇 来 作为 名字 的话, 其实 我
也 不 知道 我们 知道 编程语言 呢 有 很 多种, 那么 python 是 一种 这个 世界 第一 的 编程语言 对 吧
某种程度 上 可以 这么 讲 对 就 如同 其他 的 所有 事情 一样 你 评价 一个 事情 可以 有 很多 不同 的 标准 那 从 某些 标准 来 评价 python 可以 说 是 世界 第一 比如说 啊 有 一些 编程语言 的 排名 在 其中 一个 排名 里 python 就是 世界 第一 的 那 它 这个 排名 的 标准 是 说 它 在 google 里面 搜索 某种 编程语言 的 tutorial 也 就是 教程 的 这个 条 目的 数量 那 他 认为 你 某种 语言 的 教程 的 条目 越多 他 这个 语言 排名 就 越 靠 前 因为 说明 就是 学 这个 语言 的 人 越 多 了 相当于 现在 是 一个 现在 的 大家 在 学 什么 编程语言 他 是 这样 来排 的 那 在 这样 的 标准 下 Python 是 第一 所以 你 可以 说 它 是 一个 非常 流行 的 编程语言 还有 不同 的 排名 方式 啊, 比如说 最 著名 的 这个 tobyindex, 它 是 以 python 或者 是 C 这 其他 一些 编程语言 为 关键词, 看 你 这个 能 搜 出来 多少。 但是, 呃 前面 的 那个 排名 就是 来数 教程 数量 这个 排名, 他 就 说 你 光 搜 关键词 这种 排名 方式 不好, 为什么 呢? 因为 他 说, 比如说 你 搜 一个, 你 搜 python 吧, 那 他 可能 出来 很多 关于 蟒蛇 的 东西, 对 吧? 那 他 这个 跟 编程语言 完全 没关系 啊, 所以 就 不准, 就是 Tobyindex, 呃 算是 用 的 最 多 的 一个 排名, 他 python 是 排 第三 的 哦, 那 谁
还 排 在 python 前面 呢? 我 看看,
我 记得 第一 好像 是 C, 然后 没 记错 的话, 第一 是 C, 第二
是 java 第一 是 javascript 的 吧,
javascript 的 第 7 对, 所以 说
他 这个 不准 了, 不准 了 其实 我 觉得 如果说 Python 是 世界 第一 语言 的话 其实 还有 另外 一个 含义 就是说 对于 入门者 来讲 特别 是 非专业 的 人 入门者 语言 总是 有 一种 这个 最 著名 的 入门 语言 是 吧 20 年 最 有 可能 是从 Python 学起 的 对 吧 这个 是
为什么 呢 主要 就是 我 觉得 它 的 语法 确实 比较 容易 上手 吧 不能 说 简单 因为 因为 简单 这个 概念 它 是 一个 比较 模糊 的 概念 所以 我 就 说 容易 上 手 或者说 他用 python 来 写 一个 程序 需要 的 知识 比 你 用 cij 或者 java 等 一些 其他 编程语言 需要 的 知识 要少 就 对于 一个 没有 编程 背景 的 人 来说 他 确实 是 比较 容易 学 的 还有
一个 说 python 是 世界 第一 语言 的 原因 就是 现在 是 一个 人工智能 的 时代 python 是 人工智能 的 语言
对 吧 对 确实 是 可以 这样 讲 就是 某种程度 上 说 基本上 现在 搞 AI 啊 这些 人 都 在 用 python 嘛 你 也 可以 说 它 是 一个 事实标准 或者 怎么样 就 背后 肯定 是 有 很多 原因 的
然后 还有 一点 就是 所有 的 程序员 不管 是 什么 程序员 多多少少 都 得 写 一点 python 因为 python 是 最 重要 的 脚本语言 对 吧 对 我
写 脚本 只会用 python 对 我们 公司 也 用 django 所以 也 总要 用
一下 python 脚本语言 是 什么 呢 脚本语言 一般 是 一种 非常简单 的 语言 它 的 调用 的 内容 就是 调用 一些 其他 的 程序 比如说 调用 程序 A
如果 返回值 是 1 的话 再 调用
程序 B 如果 返回值 是 0 的话 调用 程序 CPython 被 认为 是 维护性 最好 的 一种 脚本语言 当然 这个 很
主观 了 对, Python 是 一门 比较 好 的 浇水 语言, 它 的 意思 就是说 它 可以 把 其他 的 语言 串 起来, 比如说 你 有 一个 程序 里面 你 想 用 各种 不同 的 语言, 那 你 可以 用 Python 来 做 一个 这种 中间层, 它 就 方便 各种 语言 之间 互相 的 调用。 除此之外,
是不是 真的 有人 用 Python 写 一些 比较 实际 的 应用 呢? 比较 实际 的
应用 吗? 这个 很多 啊。
对 啊, YouTube
就是 Python 写 的 呀, 以前。 哦 YouTube 就是
Python 寫 的 我 知道 Instagram 也 是 Python 這個 Uber 什 麽 的
就 很多 小一點 的 時候 都 會 都 用 Python 寫 說 Python 也
是 一個 非常 流行 的 互聯網 公司 寫業務 邏輯 的 語言 對 吧 對 startup 我們 說 到 了 Python 是 著名 的 初學 語言 是 AI 語言 是 腳本 語言 還是 互聯網 公司 寫業務 邏輯 的 語言 那 麽 為 什 麽 Python 這 麽 流行 呢 我
觉得 要 用 一个 关键词 来 描述 的话 我 觉得 就是 平衡 吧 Python 作为 编程语言 的话 在 平衡 各个方面 这方面 掌握 的 比较 好 就是 首先 我们 刚才 也 提到 它 比较 容易 上 手 其实 有 很多 语言 都 很 容易 上 手 但是 呢 其他 一些 比较 容易 上手 的 语言 比如说 甚至 一些 你 不 需要 真正 去 写 代码 的 语言 就 你 就是 拖拽 一些 那个 空间 啊 它 就 能 给 你 搞 一个 程序 出来 说
Kat 的 初学 语言 logo 是 吧
啊 类似 吧 对 scratch 是 吧 scratch 是 的 是 的 scratch 容易 上手 的 语言 还是 有 一些 但是 容易 上 手 同时 又 能够 作为 一门 严肃 的 编程语言 来 构建 软件应用 的 就 不是 那么 多 了 所以
是 上 得 厅堂 下 得 厨房
是 吧 对 它 的 平衡 做 的 比较 好 我 觉得 概括 起来 就是 这 样子 当然 还有 一些 别的 方面 然后 如果 我们 待 会 设计 也 可以 再聊 一下 那 我们 就
这个 话题 聊一聊 啊 为什么 它 的 平衡 做 的 比较 好 呢 为什么 可以 上 得 厅堂 下 得 厨房
呢 这个 我 觉得 主要 就是 由 语言 的 特点 决定 的 吧 它 的 主要 特点 最好 的 一个 概括 就 有 一段 描述 叫 TheZenofPython 然后 中文 的话 可以 翻译成 Python 之禅禅 就是 那个 禅修 的 那个 禅 它 相当于 是 Python 这本 语言 在 创立 之初 一些 负责 在 改进 这个 语言 的 人 给 Python 这本 语言 定下 了 一个 嗯, 你 可以 说 是 风格 呢, 还是 说 是 准则 一样 的 东西, 比如说 它 其中 最 著名 的 就是 叫做 如果 你 想 完成 一件 事情, 那么 最好 是 有 且 只有 一种 方法 来 做, 不 需要 让 你 从 多种 方法 中 去 选择,
就是 苹果 的 设计 理念 吗? 可能
很多 东西 都 是 相通 的 嘛, 因为 你 是 有 一个 说法 叫做 API 就是 API 也 是 一种 用户界面 嘛, 所以 就是说 当然 编程语言 你 也 可以 认为 它 是 一种 用户界面, 所以 这方面 和 就是 苹果 有些 相通, 我 觉得 也 不 奇怪。 确实
是 馋 的 高度 了 啊 在
这张 python 里面 有 一些 描述 就是 比如说 叫 beautifulisbetterthanugly 就是 没比 丑 更好 simpleisbetterthancomplex 就 简单 比 复杂 更好 就是 一些 很 高层次 的 讲 一些 准则 这个 还是 很 有意思 对 就是 它
有 一套 哲学 是 吧 对 对
对 对 你 可以 说 是 python 的 哲学 我 觉得 这个 描述 比较
好 是 的 所以 python 的 哲学 就是 它 是 一种 简单 的 语言 啊 一种 易用 的 语言 一种 优美 的 语言 对 吧 那 大家 同意
这个 观点 吗 我 肯定 是 同意 的 呀, 我 觉得 这些 基本 还是 符合 的 吧, 当然 现在 就是说 随着 这个 语言 的 发展, 它 的 功能 也 是 在 越加 越 多, 所以 很多 人 就 觉得 就 有 一些 违反 刚才 说 的 那个 做 一件 事情 只有 一种 方法 这个 原则 了 嘛, 但是 这个 就 比较 深入 了, 所以 我们 就 不 继续 找 这个
话题 我 觉得 从 入门 到 熟悉 到 一定 程度 这 都 是 对 的 但是 再 搞 下去 就 开始 出现 有 坑 了 对 对 对
坑 挺 大 的 我们 现在 在 做 的 东西 就是 不用 排放 改用 C 写 我们 一个 很大 的 项目
我 对 python 最大 的 喜爱 就是 它 是 需要 敲 的 字符 非常 的 少 因为 它 不 需要 什么 括弧 啊 什么 什么 花 括弧 啊 什么 变量 声明 的 时候 要 加个 类型 啊 都 不用 啊 就 直接 敲 几个 空格 就行了 啊 字符 非常 的 少 非常 的 爽 再加 一句
就 可能 有些 呃 不是 程序员 的 听众 不太 了解 我们 刚才 在 说 什么, 但是 你 可以 想象 一下 就是说 你 用 python 写 的 程序 更 像 你 自然 的 说 一句 话, 就是 更 像 你 在 用 自然语言 去 描述 一个 事情, 而 不 像 说 用 其他 语言, 你 可能 要 学习 它 的 一些 就是 具体 的 写法 要 怎么 写, 那 就 这个 方面 也 是 让 python 更 容易
学 吗? 说起 python 呢, 很多 人 第一 反应 就是 它 特别 的 慢 啊, 性能 非常 的 差。 一 说起 性能 特别 差 一个 主要 原因 就是说 它 只能 有 一个 线程 线程 是 什么 东西 呢 线程 就是 你 可以 理解 为 一段 程序 正在 执行 这个 这个 这个 这个 它 是 连续 执行 的 如果 只有 一个 线程 就 说明 不管 你 这台 计算机 有 多少 核 双核 四核 六 核八核 那么 它 就 只能 使用 一个 核 这 是 真的 吗 就 首先 最
重要 的 一件 事情 就是说 有人 认为 python 是 单线程, 这个 肯定 是 不 对 的 对, 因为 python 可以 开启 多线程 并且 它 的 线程 是 操作系统 的 真正 的 线程 就 而 不是 像 很多 其他 语言 一样 是 一个 比如说 更 高阶 或者说 模拟 出来 的 东西 那 它 为什么 就 有人 觉得 说 它 是 单线程 的 呢 因为 就 虽然 你 可以 开启 多个 线程 但是 它 在 同一个 时刻 执行 的 实际上 只能 有 一个 线程 这个 事情 可能 比较 绕 啊 但是 我 觉得 可以 举 一个 例子 就 比如说 你 想象 一下 有 一条 河 然后 河有 两岸 嘛 你 有 一些 人要 把 这个 砖头 从河 的 一边 搬到 河 的 另一边 去 那 你 可能 雇 了 四个 人 比如说 你 说 有 四个 县城 但是 呢 他 这个 河上 有 一座 独木桥 你 一次 只能 走 一个 人 那 就 只能 有 一个 人 在 上面 去 搬 砖 嘛 那 就 相当于 虽然 你 有 四个 人 你 确实 是 有 四个 人 但是 你 同时 只能 有 一个 人去 真正 的 把 一块 砖 运到 另一边 效果 就 类似 于 这个 比喻 因为 很多 时候 你 的 线程 它 是 会 需要 等待 一些 操作 嘛 比如说 你 去 下载 一个 从 网上 下载 一个 图片 它 这个 线程 就要 等 那 张 图片 下 完嘛 然后 你 这个 线程 其实 上 就要 等 着 它 不能 做 任何 事情 那么 这个 时候 然后 python 它会 知道 说 这个 线程 它 现在 没有 在 做 任何 事情 那 它 就 会 把 其他 的 线程 给 拉 起来 然后 去 让 其他 线程 去 做事 并且 就是说 python 其实 也 是 支持 多 进程 的 就是说 如果 你 觉得 多线程 确实 不能 满足 你 的 要求 的话 你 就 想 同时 跑 16 个 任务 那 你 可以 开多 进程 这个 的 支持 是 没有 任何 问题 关于 python
的 性能 还有 一个 经常 吐槽 的 槽 点 就是 不 知道 是不是 偏见 啊 就是 有人 说 python 是 解释 执行 的 解释 执行 是 什么 意思 呢 就是说 它 并 没有 被 翻译 为 机器 能够 执行 的 机器语言 就 直接 运行 而是 需要 有 另外 一个 机器语言 来读 这个 python 我 看到 这句 是 什么 那 我 来 执行 所以 它 不是 python 翻译 过去 自己 在 执行 而是 另外 一个 语言 在 执行 它 这 是 真的 吗 对 这个
是 真的 是 的 这样 其实 就是 方便 程序员 了 就 python 用 的 是 一个 虚拟机 嘛 就 比如说 你 用 苹果 然后 苹果 它 的 UI 做 的 非常 人性化 那 你 可以 就是 用 一些 很少 的 操作 完成 一些 工作 但是 你 比如说 你 用 linux 你 就要 打 一些 命令 然后 就 相当于 python 的 这个 虚拟机 它 帮 你 去 做 了 很多 事情 然后 你 在 它 之上 来 做 一些 操作 就 相当于 更 简单 要 操心 的 事情 更 少 过去 我们
说 因为 是 脚本语言 嘛 所以 它 要 解释 执行 是 吧 但是 从 Google 的 V8 开始 啊 JavaScript 啊 一个 脚本语言 啊 它 也 做成 了 像 这个 编译 执行 的 啊 也 做 得 很快 Facebook 还 把 这个 PHP 改造 成 了 叫 HPHB 的 吧 还是 叫 HipHop 对 吧 啊 也 是 可以 将 脚本语言 执行 的
很快 是 的 原来 刚 发明 的 时候 叫做 HitHop 当然 也 有人 说 其实 叫 HPHP 就是 赵海平 想要 把 自己 的 名字 打上去 其实 就是 海平 的 意思 不 知道 啦 但是 后来 呢 就 改名 叫做 Hack 整个 语言 就 叫 Hack 好像 注册 的 域名
也 是 HackLang 有人 说 和 Python 类似 的 语言 也 可以 做成 像 即时 编译 的 这种 类型 也 可以 运行 得 很快 那 为什么 Python 不
可以 呢 其实 是 可以 的 就是 有 一些 库 可以 来 做 这个 事情 对 这个 涉及 到 另外 一个 问题 就是说 语言 和 实现 嘛 就 语言 和 实现 是 是 两个 概念 我 不 知道 听众 们 能 不能 理解 就 相当于 语言 的话 也 用 方言 来 比喻 可能 不太 合适 但是 语言 它 是 类似 于 一个 标准 但是 实现 的话 它 就是说 相当于 怎么 去 把 你 这段 语言 在 机器 上 执行 那 语言 和 实现 是
两个 东西 就是说 机器 懂 汉语 我们 说 的 是 英语 是 吧 不同 的 翻译 它 翻译成 汉语 它 不 一样 对 吧 好 有 的 不好 是 吧 有 的 长 有 的
短 是 这个 意思 吗 也 也 不能 这么 说 就 相当于 我 想 说 是 我们 平常 指 的 python 其实 是 它 的 其实 指 的 是 cpython 就是 它 的 用 c 写 的 这个 实现 然后 它 是 官方 在 维护 的 一种 实现 然后 它 相当于 是 说 就 python 这个 语言 它 都 是 一样 的 嘛 但是 你 可以 有用 不同 的 方法 把 它 翻译成 机器 能够 理解 的 语言 那么 有 一种 你 可以 说 实践 也好 或者说 一个 工具 也好 它 能够 把 python 翻译成 机器语言 然后 去 执行 并 没有 任何 限制 去 限制 了 python 不能 翻译成 机器语言 只是 说 平常 大家 用 的 这个 实践 它
是 解释 执行 的 那 为什么 这个 官方 版本 不 做 快 的 实现
呢? 讲 一下 Python 历史 吧, 就 刚才 可能 这方面 没有 讲, 就 Python 是 GreedovanRossum 这个 荷兰人 发明 的 嘛, 他 和 像 Java 这种 语言 不太 一样, 他 一 开始 没有 一个 公司 的 背景, 包括 到 现在 也 没有 公司 的 背景。 你 可以 说 Python 在 它 的 很长 一段时间 内 都 是 Gradle 一个 人 的 东西, 它 的 当初 的 这种 技术 选择 就是说 我 做 一个 虚拟机, 然后 来 解释 执行 Python 这门 语言, 这个 传统 就 被 延续 下来, 那么 后来 越来越 多 的 人 就是 去 在 这门 语言 上 工作, 那么 它 自然 就 会 围绕 在 说 一 开始 的 这个 实现, 或者说 Gradle 一直 在 维护 的 这个 实现 上去 做。 那么 后来 又 有人 发现 说 这个 我们 叫 官方 实现 或者 cpython 的 实现 不太好 那 他们 也 去 尝试 了 做 一些 其他 的 实现 然后 就让 python 跑 得 更 快 但是 大部分 的 这种 努力 后来 都 没有 下稳 了 但是 也 有 一些 还 在 维护 的 比如说 pypy 就 可能 是 少数几个, 就是说 非 cPython 的 实现
吧。 那 为什么 cPython 不 做 呢? 是因为 他们 比较 遵从 创始人
的 这个 理念 吗? 你 可以 这样 讲, 就是说 Griddle 这个 人 吧, 我 虽然 不想 说 他 坏话, 但是 他 的 想法 一直 是 觉得 Python 不 需要 有 特别 大 的 性能 的 改进。 就是说 他 觉得 python 已经 足够 快 了 那 然后 如果 你 觉得 python 不够 快 你 就 去 写 c 扩展 就是 python 刚才 我们 说 了 嘛 它 是 一个 教学 语言 所以 将 于 你 可以 拿 执行 速度 更快 的 语言 比如说 c 和 c 来 写 一部分 东西 然后 你 拿 python 去 调用 他 觉得 这样 是 ok 的 所以 他 本身 并 没有 一个 很强 的 动力 说 去 改进 cpython 的 执行 速度 那 我 觉得 这 可能 是 一个 根本 吧 然后 另外 一方面 的话, 就是说 python 它 这门 语言 没有 一个 大 公司 的 支持, 那么 没有 大 公司 支持 带来 的 就是说 缺钱。 你 所有 的 现在 python 在 开发 python 这门 语言 的 人 都 是 义务 工作, 或者 大部分 都 是 义务 工作。 那 你 义务 工作 的话 时间 就 比较 少, 你 也 不 可能 说 啊 我 就 全身心 的 在 在 这方面 去 做, 那么 它 能 带来 的 改进 自然 也 相对 来讲 就 更少 一些。 所以 的话, 首先 是 gradle 本身 的 意愿, 然后 其次 是 也 确实 缺乏 一些 客观条件 吧, 可能 是 导致 了 就是说 近些年来 大家 看到 python 在 速度 这方面 的 改进 不太多 的 原因。 我们 刚才 吐槽
了 很多 Python 的 性能 啊, 说 解释 执行 啊, 但是 解释 执行 真的 就是 那么 慢 吗? 真的 就 比 那种 即时 编译 的 要 慢 很多 吗?
还是 慢挺 多 的, 对, 确实 慢挺 多, 但是 这个 就是说 刚才 提到 龟斗 的 想法 吧, 你 也 不能 说 他 说 的 是 错 的, 就是, 呃 因为 实际上 对于 大部分 的 应用, 大部分 的 场景 来看, Python 的确 是 不慢。 就是说 我们 经常 说 Go 能 支持 几十万 并发 但是 你 比如说 你 作为 一个 创业 公司 你 真的 需要 几十万 并发 吗 你 不 需要 对 吧 那 其实 也 是 一个 意思 就是说 对于 9 .% 的 场景 来讲 Python 是 不慢 的 因为 它 毕竟 是 一个 是 一种 编程语言 它 是 跑 在 你 电脑 上 那 它 自然 就 肯定 不会 慢 到哪去 嘛 但是 就是说 我们 说 Python 慢 也 只是 和 更 快 的 语言 来 对比 然后 说 它 比较慢 是 这样 一个 意思
我 觉得 从 脚本语言 来看 和 从 做 一个 服务 来看 不 一样 吧 对 吧 做 服务 可能 真的 会 在乎 并发 尤其 是 你 不 一定 所有 东西 都 可以 通过 horizontalscale 来 解决 有 可能 你 就 需要 在 单个 实例 上 有 高 并发 但 有些 东西 可以 horizontallyscale 那 你 就 不管 了 不够 了 就 加 instance 反正 又 不贵 对 吧 直到 你 加到 了 非常 非常 烧钱 为止 可能 不同 的 情况 不 一样 对 就
说 你 考虑 到 单机 的 性能 的话 Python 确实 是 在 大规模 的 互联网 应用 上 是 不行 对 这个 必须 要 承认 然后 但是 就是说 对于 大部分 的 公司 来讲 可能 你 还 没有 到 那个 程度, 然后 就是说 其实 你 到 了 这个 程度, 你 也 有 办法 就是 通过 水平 扩展 来 解决, 就 比如说 instagram, 它 现在 的 后 端 是 jungle 嘛, 然后 就是 python 的 原来 一个 框架, 那 它 其实 就 一直 是 jungle, 那 你 说 instagram 的 流量 它 都 能够 支撑住, 对 吧? 我们 吐 完槽 了
python 的 性能, 我们 要 不要 给 大家 讲 一 讲 python 这个 语言 到底 是 怎么回事? 什么 时候 它 的 历史
是 怎么样 的? 好, 就是 刚才 也 提到 了 嘛, 然后 就是 python 是 gradle 这个 人 发明 的, 它 具体 的 时间 点 是 在 198 年 的 圣诞节。 那 反正 就是说 传说 他 在 圣诞节 的 时候 然后 放假 嘛 在 家里 闲着没事 然后 就 搞 一门 语言 出来 玩一玩 没想到 突然 就 火 了 对 吧 其实 也 不是 突然 火 的 那 他 一 开始 肯定 就 一 开始 肯定 也 想不到 嘛 这门 语言 他 在 创立 的 时候 他 是 作为 另外 一门 语言 的 一个 后继 就是 叫 这门 语言 叫 ABC 他 是 说 从 ABC 这门 语言 里面 学习 了 很多 东西 嘛, 那 我 觉得 他 一 开始 可能 也 就是 想 就是 做 一个 就 个人 项目 吧, 然后 玩一玩, 因为 你 看 现在 就是 很多 一些 大学生 啊, 就是 对 编程语言 有点 研究, 他们 也 会 写 自己 的 语言。 那 后来 就是说 我 听到 的 故事 啊, 就是 我 在 那个 去年 PyCon 现场, 然后 听 了 当时 几个 Python 的 元老 来讲 一段 故事, 就是 Greedo 去 美国 的 一个 公司, 呃 那个 公司 名字 我 忘记 了, 好像 是 一个 什么 实验室 来 宣传 Python 这门 语言 吗? 一 开始 一个 新 语言 肯定 没有 人 知道 也 没人用 嘛, 然后 当时 那个 公司 的 几个 人 然后 就 听 了 就 觉得 哎, 这门 语言 很 不错, 就是 他们 也 也 想 用 一用, 然后 他们 就 说 要 我们 就 把 硅豆 招募 到 这个 公司 来 专门 开发 这门 语言 吧, 后来 硅豆 就 到 美国 来 了, 然后 他们 这个 公司 的 一些 人 也 开始 在 python 这门 语言 上 工作。 那 他 主见 的 就是说 从 一个 人 的 项目, 然后 变成 了 有 几个 人 在 上面 工作, 然后 他 的 就是 社群 就 慢慢 的 越来越 大, 然后 后来 就 到 了 今天 这个 程度, 那 就 必须 要 提 的 是 就是 python 一 开始 在 20 年 之前 吧, 或者 在 20 年 左右 的 一段时间, 他 的 竞争对手, guido 给 自己 设定 的 竞争对手 一直 是 per, per 是 另外 一门 编程语言 嘛, 那 就是 python 一 开始 一直 是 对标 per 的, per
叫 什么 writeonlylanguage 是 吧? 只能 写
的 语言 就是 任何 字符串 都 是
合法 的 PER 语言 意思 就是 这个 没法 读 只能 写 的 语言 反正 他
就是 反正 和 PER 竞争 了 这么 一段时间 之后 他 就算 是 赢得 了
一场 竞争 这 是 个 功德无量 的 事 在 我们 程旋 看来 就是 个 功德无量 的 事 我 如果 偶尔 看 那些 非常 老 的 代码 PER 写 的 这些 脚本 我 在 想 如果 今天 让 我 写 这些 语言 我 就 辞职 了 我 没 写 过
就是 之前 也 提到 说 Python 在 机器 学习 方面 有 很多 的 应用 嘛, 那 它 这个 我 觉得 这个 也 属于 比较 偶然 吧, 或者说 偶然 中 也 有 必然, 就是 因为 Python 它 能够 很 好 的 和 C 来 交互, 那 就 在 Python 还 没有 这么 火 的 时候, 有些 人 他 就 用 Python 去 做 一个 C 的 wrapper 来 实现 了 一些 科学计算 的 库。 比如说 numpy, 然后 cypy 这 样子, 所谓 的 科学计算 就 这个 要 怎么 解释, 我 也 不 知道 怎么 解释, 反正 就是说 你 可以 理解 为 科学家 用 的 语言, 那么 他 有 了 这些 一些 底层 的 支持 之后, 用 python 就 可以 很 好 去 做 科学计算 嘛, 那么 到 了 机器 学习 爆发 的 这个 时间 点, 大家 发现 诶 用 python 就 可以 去 很 容易 的 写出 一些 记忆 学习 的 库 然后 大家 就 自然而然 的 开始 都 用 python 这个 也 有 一定 偶然 吧 但是 还是 和 他 语言
本身 的 特性 在 我 印象 中 在 比如说 深度 学习 的 这个 是 吧 这 几个 语言 之前 python 就 也 已经 比较 广泛 的 应用 于 数据处理 的 语言 了 当然 有 metalab 是 一批 啦 那 时候 还有 r 啊 然后 慢慢 慢慢 是 越来越 多 的 数据分析 的 人 是 用 python 在 写 的 啊 这 可能 确实 想 说 的 是 有 很多 的 这些 科学计算 的 这些 库有 关系 这个 是 我们 刚才 说 到 了 Pattern 的 转型 啊 20 年 之前 是 一个 脚本语言 啊 就是 我 说 的 那个 啊 你 让 他 去 做 ABC 啊 啊 然后 之后 转型 为了 一个 更 从 科学计算 为 入口 今天 成为 了 这个 深度 学习 的 语言 写 深度 学习 的 人 都 要
写 语言 我 觉得 也 不能 叫
转型 就是 扩充 了 是 吧 因为
python 一 开始 它 就是 一个 叫做 通用 语言, 就是说 它 一 开始 就 不是 一个 只 局限于 某 一个 领域 的 语言, 比如说 很多 人 都 知道 html 吗? 就是 写 这个 网上 页面 的 语言, 那 它 你 能 用 html 编程 吗? 那 当然 不能, 对 吧? 所以 python 和 html 还是 不 一样 的, 它 一 开始 就是 能够 去 执行 多种 任务 的 一个 语言。 所以 他 后来 在 大家 发现 他 在 执行 某 一些 任务 方面 比较 适合 那 他 就 在 这个 方面
就 比较 火 我们 从 历史 说 到 了 现在 啊 那 未来 python 的 发展 方向 是 什么 呢 第一个
是 叫做 typehintstypehints 是 什么 呢 就是 就是 类型 是 吧 类型 标注 换句话 就是说 在 python 里面 你 比如说 你定 一个 函数 嘛 你 可以 你 设定 它 有 ab 两个 参数 但是 呢 你 其实 不 知道 它 类型 是 什么 嘛 或者说 你 可以 给 它 传 任意 类型 的 值 就是说 现在
如果 我们 用 python 写 程序 的话 我们 可以 说 这 是 一个 函数 fxy 对 吧 我们 什么 都 写 xy 是 什么 我们 都 不 知道 但是 如果 我们 写 一个 别的 语言 比如说 c 我们 要说 这个 函数 fxyx 是 个 整数 y 是 个 无理数 我们 返回 一个 数是 字符串 我 得 标注 它 类型 是 什么 但是 python 就 不用 那么 这个 类型 叫 什么 类型 的 hint 是 吧 类型 标注
是 什么 意思 呢? 它 的 意思 就是说 你 可以 在 这个 比如说 你 有 两个 参数 A 和 B 然后 在 A 后面 加个 冒号 你 写 上 一个 int 然后 就 代表 说 A 它 是 一个 对 它 是 一个 整数 就是 你 会 传 一个 整数 给 它 但 它 实际上 并 不是 一个 强制 的 约束 就 它 类似 于 一个 函数 的 注释 吧 它 会 报错 吗 如果 你 比如说 你 标注 它 是 int 那 你 给 它 传 string 当然 程序 也 是 可以 跑 的 但是 你 如果 用 一些 工具 去 检查 的话 它 可以 检查 说 你 这个 地方 写 的 是 int 但是 你 传 的 是 个 string 就 相当于 你 在 程序执行 之前 你 可以 检查 出 一些 错误 了 说 到
这个 我 觉得 Python 是 一个 非常 棒 的 语言 就是 有 的 语言 是 没有 类型 的 有 的 语言 是 说 我 所有 的 变量 都 要说 这个 是 个 整数 是 个 字串 有 的 语言 是 没有 类型 的 就是说 随便 写 我 写 了 一个 整数 我 写 了 一个 伺服 串 我 就 可以 把 它们 不用 知道 什么 就 可以 一起 操作 Python 其实 是 有 的 对 吧 Python
是 个 强 类型 的 变畅 语言
它 被 复制 之后 这个 变量 是 有 个 类型 的 但是 我 又 不用 写 的 类型 是 什么 这 是 个 非常 酷 的 语言 我
觉得, 就 像 司徒 亚特 刚才 说 的 嘛, 这个 一方面 是 很 方便, 另一方面 也 造成 了 很多 问题 嘛, 就是说 你 可能 你 想 让 他 传 一个 字户 串 进去, 但 他 传 了 个 整数 进去, 然后 你 的 程序 就 不 工作 了, 直接 crash 了。 对, 然后 typehints 它 的 出现 我 觉得 是 很 重要 的, 就是 在 工程化 这个 方面 帮助 python 改善 了 很多 吧, 我 觉得。 呃, 就 我 其实 在 公司 里面 之前 短暂 的 写 过 一段 python 也 是 有 这种 感觉, 就 我 不 熟悉 那个 那段 代码 嘛, 然后 根本 就 不 知道 他 那些 参数 是 什么, 他 有 可能 七八个 参数 很 难看, 然后 但是 如果 你 有 typehint 的话, 你 至少 知道 说 这些 参数 它 都 分别 是 什么 类型, 这 就 相当于 帮助 你 在 阅读 代码 的 时候 节省 了 很多 工作 嘛, 所以 我 觉得 typehint 还是 很 重要, 对, 这是 我们 说
的 python 第一个 未来 发展 方向 啊, 还有 什么 主要 发展 方向 呢? 然后
第 2 个 可能 是 async 就是 asynchronous 异步 异步 是 什么 意思 呢? 就 我们 刚才 说 python 在 同一个 时刻 它 只能 有 同一个 线程 在 跑 嘛 虽然 它 可以 有 多个 线程 但是 同一个 时刻 只能 有 一个 线程 在 执行 那么 异步 的话 它 就是说 就 相当于 是 说 你 既然 同一 时刻 只能 有 一个 线程 在 执行 那 我 为什么 还要 开 多个 线程 呢? 为什么 不能 让 用 一个 线程 去 完成 我 多个 线程 能 做 的 事情 呢? 这 可能 讲 起来 比较 抽象, 但是 它 就是 相当于 让 你 用 一个 线程 能 做 多件 事, 比如说 你 同时 在 做 实验室, 然后 有 其中 的 其中 有 几个 几个 这种 任务, 它 是 处于 一个 等待 的 状态, 比如说 就是 你 要 从 网上 下载 一个 图片, 那 它 就 可以 切 到 别的 任务 去 执行, 但 它 还是 在 同样 一个 线程 里面。 大概 就是
这么 个 意思 就是 一个 县城 可以 用 多个 核 的 计算能力 来 跑 一个 县城 的 工作 用 不了
多个 核 一个 县城 的 肯定 就是 一个 核 他 就是 做 多件 事 相当于 你 可以 理解 为 提高 了 一个 县城 的 利用效率 那 它 编程
的 方法 就 不 一样 吗 比如说 我们 是 吧 初学 编程 的 人 大概 写 程序 都 是 会 编成 iffor 是 吧 如果 这样 怎么 怎么样 循环 从 1 到 10 怎么 怎么样 对 吧 那么 出现 这种 叫 异步 的 这种 特性 之后 那 大家 写 程序 的 方式 会 有 改变 吗
会 有 改变 对 这个 其实 Kat 可能 也 比较 熟 就是 跟 JavaScript 里面 是 一样 的 就是 一个 叫做 async 关键字 然后 你 可以 用 async 来 标记 说 一个 函数 是不是 async
對, 我覺 得 A SIM 其實 就是 說 怎麼 說 呢, 還是 用 搬磚 這個 例子 吧 就是 它 的 意思 是 你 搬 磚有 一塊磚 如果 搬 到 一半 你 這塊磚 不能 搬下去 了 你 可以 把 這塊磚 就 地 放下 來 你 還是 一個 人 但 這個 人 可以 跑 去 搬 另外 一塊 磚去 了 對, 這 就是 A SIM 的 核心 所以 例如 說 你 可以 所有 的 磚都 搬 到橋 旁邊 了 然后 就 一块 一块 的 搬 过去 其实 没有 变 的 是 你 还是 只有 一个 人 没有 变 的 同时 还有 这个 桥 还是 只能 统一 时间 通过 一个 人 但是 你 这个 砖 的 调度 变得 更 灵活 了 好
了 我们 说完 了 异部 对 吧
我们 还有 什么 还有 一个 比较 重要 的 就是 嗯 这个 可能 严格 来讲 不是 属于 Python 这门 语言 就 不是 它 语言 本身 但是 属于 语言 这个 生态 的 一部分 比如说 你 写 一个 程序 吧 然后 我 就 有 这么 一段 代码 那 我 想 把 它 变成 一个 windows 上 的 exe 那 我 要 怎么 做 就是 它 有 一个 这样 的 叫做 packaging 的 过程 所谓 的 packaging 其实 就是 把 你 写 的 代码 变成 一个 别人 能够 去 调用 的 库 或者说 是 一个 可 执行 的 程序 这样 的 一个 过程 因为 你 肯定 不 可能 让 别人 去 把 你 这段 代码 复制到 机器 上去 跑 对 就是 我 在
windows 会 生成 一个 图标 一个 n
就 可以 执行 了 是 吧 对 所以 说 那么 python 一 开始 的话 它 这方面 的 基础设施 是 非常 薄弱 的 或者说 官方 就 没太管 他 就 你 想 怎么弄 怎么弄 然后 社区 里 就 也 是 诞生 了 一些 解决方案 但 这些 解决方案 都 不是 特别 好 那么 在 最近 几年 Python 这个 社区 就 在 这方面 发力 比较 多 吧 就是 有 一些 官方 的 标准 出台 然后 有 一些 比较 新 的 比较 好用 的 工具 来 也 是 在 逐渐 的 出来 然后 就 相当于 你 可以 更 方便 的 把 你 的 程序 打包 成 一个 库 或者 打包 成 一个 可 进行 的 程序 这方面 的 最近 的 发展 是 很快 的
哦 以后 看到 越来越 多 的 windows 图标 其实 后面 是 python 写 的
其实 其实 就是 我们 讲 packaging 的 时候 packaging 有 两种 嘛 一种 是 打包 成 应用程序 另外 一种 是 打包 成 一个 库 就 相与 我 再 写 一个 python 程序 我 可以 用 别人 写 的 一段 程序 更 多 的 时候 打包 是 我们 在 说 的 是 后面 一种 情况 就是 打包 成 一个 库 让 别人 的 python 程序 可以 调用 好 我们 说 了
类型 提示 异步 执行 如何 能够 生成 各种各样 的 库 和 可执行程序 是 吧 还有 什么 别的 方向 吗? 然后 就是
老生常谈 的 性能 问题 了, 就 虽然 我 是 一直 在 黑 Python 的 性能 说 他 最近 没有 什么 改进, 但 其实 一直 有 很多 人 在 尝试 去 改进, 只是 都
没有 成功 而已, 就是说 官方 他们 也 还是 要 提高 性能 的, 是 吧? 虽然 虽然 这么 说 说 已经 很 好 了, 但是 我们 还是 要 可以
更好 是 吧? 其实 那个 只是 gradle 可能 感觉 比较 好 但是 也 有 很多 人 觉得 不够 好 那 相当于 最新 的 一些 进展 必须 要 提 的 一个 就是 叫做 multiinterpreter 就是 多 解释器 这个 东西 真的 是 很 tricky 就 我们 刚才 讲到 python 的 那个 线程 同一 时刻 只能 有 一个 一个 线程 在 执行 吧 那 有人 就 说 你 既然 它 的 线程 是 有 这种 限制 那 我 为什么 不 跑 多个 解释器 呢 同时 跑 多个 解释器 不 就 可以 同时 跑 多个 线程 了 吗
这个 听 着 很 有 道理 啊 这 就 像 像 这个 CPU 流水线
一样 对 吧 有 一个 人 应该 是 叫 EricSnow 他 在 这方面 工作 了 很多年 了 好像 从 15 年 就 开始 有 这个 想法 然后 最近 几年 一直 在 去 推进 这个 事情 他 就 想 把 多 解释器 去 做 进 cPython 里面 让 Python 能够 支持 多 解释器 但 这个 事情 呢 就是 在 社区 的 争议 是 非常 大 的 因为 它 可以 想象 这是 一个 比较 根本 的 改变 嘛 它 涉及 到 很多很多 的 其他 的 部分 那 可能 会 有 一些 breakingchange 那就是说 很多 人 也 觉得 说 这个 东西 到底 是不是 有 意义 就是说 我们 是不是 应该 去 支持 说 真正 的 让 多个 线程 能 同时 执行 而 不是 要 多 解释器 这样 一种 比较 hack 的 方式 就是 社区 的 争议 是 很大 的 但是 这个 事情 呢 反正 是 一个 可能 是 就是 最近 几年 有 关于 性能 的 最 相关 的 一个 议题 吧 他 最后 能 不能 能 不能 合进 Cpython 就 不 知道
了 所以 大概 意思 就是说 虽然 我们 不能 让 python 并行执行 我们 的 程序 但是 我们 执行 的 时候 可以 是 并行 的 是 吧 对 我们 可以
跑 多个 python 同时 对 但是 让 你 感觉 还是 用 同一个 python 就是
这个 听 着 很酷 啊 是 吧 对 听 上去 很酷 啊 我 还是 写 forif 是 吧 还是 写 我 的 普通 函数 但是 我 就 更 快 了 我 就 直接 可以 用 多个 盒 了 这个 多酷 呀 啊
对 可能 没有 你 说 的 那么 酷 但是 他 还是 就是 肯定 是 有 改进 的 就 再 看 然后 还有 另外 一些 方面 就是 刚才 说 的 不同 的 python 实现 那么 就 有 像 pypy 这种 他 是 叫做 一个 JIT, 然后 就是 这个 说 起来 又 太 复杂, 然后 我 其实 也 不 太 懂, 但是 他 总之 你 可以 理解, 听众 们 就 理解 成是 另外 一种 更快 的 python 实现 就 好 了, 就 有 一些 这方面 的 工作, 然后 我 觉得 主要 可能 就 这 4 个 方面 吧, 好, 给
我们 讲 了 讲 python 的 未来 啊, 听 上去 这个 python 的 未来 好像 也 击败 不了 这个 Java 和
这样 的 语言 啊, 除非 除非 那个 Oracle 或者 Google 哪天 发神经 了, 说 我们 要 makePythongreatagain, 然后 就 就 投钱 就 不计成本 的 要 改进 Python。 Google 以前 其实 做过 这个 事情, 相当于 零 几年 的 时候, 有 几个 Google 的 工程师 说 我们 要 做 一个 更快 的 Python, 然后 就 开 了 一个 项目, 并且 这个 项目 是 放在 那个 Google 公司 底下 的。 那 大家 就 说, 哇, Google 要 开始 就是 做 一个 更快 的 Python 了, 然后 我们 期待 会 发生 什么, 然后 最后 几年 之后 这个 项目 不了了之, 因为 这个 项目 根本 就 不是 Google 官方 想 推 的 一个 项目, 就是 那 几个 工程师 他 自己 有 兴趣, 然后 他 就 做 了 一个。 所以 就是说 实际上 到 现在 为止, Python 是 没有 像 Java 甚至 像 就是 Csharp 这种, 对, Gold 这种 这样 的 语言 大 公司 支持 的。 他 就是 一个 社区 土生土长, 然后 这样 的, C 也 是 啊, 所以 C 也 很烂 啊, 我
作为 一个 天天 写 C 的 人, 我 不 觉得 C 很烂 啊, 至少
在 性能 上 吧, 性能 这个 当然 是, 但是 对 C 的 抱怨 绝对 是 不 比 Python 少 的, C 光是 constructor 就 有 20 几种, 所以
对 吧, C 应该 是 历史 太 久远, 以至于 他 很多 东西 不好 改
吧, 其实 Python 也 是 这 样子 其实 Python 也 有 类似 的 问题 它 的 历史 包袱 是 很多 的
正好 说 到 了 C 的 历史 包袱 我们 正好 提到 下 一个 话题 因为 我们 知道 C 是 一个 标准 其实 是 非常 日新月异 的 语言 呀 对 吧 什么 什么 1, 4720 什么 之类 的 但是 它 基本上 都 可以 保持 向下兼容 对 吧 基本上 你 拿 一个 思 加加 新 版本 的 17 的 语言 你 跑 一个 90 年代 写思 加加 基本上 还是 都 是 可以 编译 的 对 吧 基本上 不用 太改 就 可以 用 但是 Python 这个 语言 呢 最近 经历 了 一次 是 吧 Python 版本 2 到 版本 3 的 更改 啊 这个 更改 结果 是因为 几乎 所有 的 python 程序 几乎 都 不能 运行 了 啊 并且 还 不是 小修 小改 就 会 运行 并且 需要 做 都 需要 还 相对 比较 大 的 改动 才能 运行 这个 让 大家 是 吧 是 让 我 我们 这些 偶尔 写 python 的 这些 工程师 吐槽 不尽 呢 这个 是 怎么回事 啊 这个 事情
也 是 说来话长 吧, 然后 反正 大概 是 08, 9 年 的 时候, Guido 就是说 我们 要 做 Python 的 第三代, 第三个 版本, 因为 Python 一 开始 是 1.0 嘛, 然后 一年级, 然后 后来 是 二年级, 然后 他 那个 时候 说 我们 要 做 三年级。 那 这个 升级 当然 没什么 问题 因为 你 的 版本号 自然 就是 越来越 大 的 但是 当时 他 的 决定 就是说 python3 是 不 兼容 python2 的 也就是说 你 的 一个 python3 是 不能 直接 执行 python2 的 程序 就是 刚才 像 他 刚才 说 的 那么 这个 背景 的话 我 首先 要 表明 我 不是 python 的 核心 开发者 所以 我 知道 的 并 不 深入 但是 我查 到 了 一篇 python 核心 开发者 的 文章 是 叫做 BradCannon 这个 人写 的 他 是 一个 相应 python 很 长时间 的 核心 开发者 吧 然后 是 在 微软 他 就 描述 了 一下 说 为什么 说 python3 就 不能 兼容 python2 他 的 主要 原因 就是 就是 unicode 这个 确实 就是 刚才 讲到 的 python 为什么 说 python 也 有 历史 包袱 python 是 198 年 发明 的 当时 还 没有 unicode 这个 标准 就是说 python 的 诞生 是 早于 unicode 的 所以 python 一 开始 它 里面 并 没有 unicode 这个
概念 unicode 就是 以 一种 字符串 的 一种 编码标准 让 全世界 的 语言 都 可以 编 进去 是 吧 对 就
比如说 你 的 那些 表情 一个 笑脸 或者 是 一个 哭脸 它 都 是 unicode 的 一部分 这 都 是 unicode 的 标准 它 有 一个 码 跟 它 对应 嘛 就 Unicode 字符 也 是 在 越 增越 多, 然后 大家 都 把 一些 各国 的 一些 像 汉字 啊 或者说 是 一些 符号 啊 都 在 逐渐 往 里加, 但是 就 相当于 Python 一 开始 它 早于 Unicode 诞生 的, 那么 归斗 在 创作 这门 语言 的 时候 他 就 没有 考虑 Unicode 的 支持, 那 所以 就是说 导致 了 很多 问题, 比如说 在 Python2 版本 里 它 的 字符串 和 整数 其实 是 其实 它 字符串 和 整数 是 一个 概念 比如说 你 都 是 ASCII
就是 字符 嘛 就是 我们 二进制 嘛 一个 字符 是 有 256 种 嘛 对 吧 我们 从 小学 电脑 是 吧 就 写 A 呀 B 呀 C 呀 什么 那个 就是 ASCII 字符
对 吧 对 你 可以 理解 为 它 就是 支持 的 不 完全 那 比如说 你 在 python 的 一段 代码 里 有 个 中文 的 字符串 那 它 默认 就是 不 能够 执行 的 你 需要 去 就是 声明 然后 或者说 加 一个 在 那个 字符串 前面 加 一个 U 我 觉得 我 觉得 够 了 呀 去 识别 这个 有 很多 人 也 是 觉得 够 了 但 它 其实 会 造成 很多 问题 嘛 就是说 这样 就 导致 python 里 有 两种 字符串 那 一种 是 unicode 的 字符串 一种 是非 unicode 的 字符串 它 在 使用 过程 中 就 造成 了 很多 的 问题 后来 就 归罗 和 其他 一些 核心 开发者 看到 说 这个 unicode 的 支持 造成 了 这么 多 问题 那 我们 就 干脆 推倒 重新 来 吧 然后 就 所有 东西 都 是 现在 所有 字符串 都 是 unicode
了 那 现在 还 可以 加币 吗
b 是 有 的 啊 这个 东西 又 太 tricky 了 b 其实 它
就是 那 你 不是 还有 两种 吗
就 原来 的 那种 字符串 不 不 不但 他 现在 b 那个 他 就 不 叫 字符串 那 我 也 可以
管 unicorn 不 叫 字符串 叫 对
但 反正 就是说 他 为什么 觉得 说 没有 办法 嗯 没有 办法 实现 一个 向前 兼容 的 这种 python3 的 原因 我 也 很 难 讲清 但 就 说 核心 开发者 和 龟斗 是 这么
觉得 他们 觉得 旧版本 的 python 有 不可 修正 的 弱点 啊 有 无法弥补 的 这个 问题 啊 就 相当于 你
一个 楼 的 地基 造歪 了 你 可能 上面 怎么 修 你 都 修
不好 了 反正 给 我们 程序员 带来 了 无尽 的 灾难 啊 我 这个 在 Python2 到 3 这个 运动 之前 我们 并 没有 意识 到 原来 我们 生活 中有 这么 多 Python 小粉 我
还要 提 一句 就是 为什么 他们 做出 这个 不 兼容 Python2 的 决定 这个 他 在 那 篇文章 里 也 说 得 很 清楚 就是 他们 一 开始 低估 了 做 这样 一种 转换 的 成本 就 他们 觉得 说 我们 一 宣布 说 3.0 版本 特别 好 然后 大家 就 马上 把 python2 的 代码 全都 抛弃 掉 或者 重写 掉 就 用 上 python3 了 然后 一下 就 完成 了 但 实际上 这个 过程 花 了 10 年 还 不止 就 他们 低估 了 legacycode 或者 叫 也 不能 叫 legacycode 吧 就是 叫 已经 存在 的 代码 去 做 转换 的 这样 一种 难度 那 比如说 你 很 简单 一个 例子 如果说 做 一件 事情 难度 很 低 那 你 可能 就 倾向 于 去 做 了 嘛 我 如果说 啊 买 张 彩票 百分之百 会 中奖 的 你 当然 会 就 会 买 了 但是 你 说 那 有 一亿分 之一 才 会 中奖 你 可能 就 不会 买 了 那 如果说 他们 当年 预估 到 了 这种 Python2 升级 到 Python3 的 难度 和 耗时 的话 可能 也 会 重新 去 思考 一下 当年 的 决定 我们 吐槽 了
这个 我们 很少 见 的 一个 语言 突然 就 不能 用 了 这么 一种
事 啊 这个 事是 只 发生 在 Python 身上 吗? 我 在 好奇 就 有没有 其他 的 比较 popular 的 语言 发生 过 类似 的 事情 呢? 好像
per6 是 不 兼容 per5 吧 我 也 不 知道 你 连
这 都 知道 挺 厉害 的 好像 确实 没有 太 听说 过 至少 的 主要 语言 好像 没有 太 听说 过有 这样 的
事情 比较 少 确实 比较 少 JavaScript
是 另外 一個 極端 任何 事情 都 要 保證 兼容 不 兼容 你 就 會 破壞 掉 已有 的 瀏覽器 的 功能 因為 還有 無數 人 跑 老
版本 的 瀏覽器 好, 那 我们 还有 没有 什么 好玩 的 事情 没有 说
过 的? 我 再 插 一句 就是 Python2 到 Python3 的 这个 转换 现在 已经 是 正式 完成 了 最后 一个 Python2 的 版本 是 在 今年 的 4 月份 发布 了 然后 补轴者 说 也 是 做 了 一期 节目 就 相当于 告别 Python2 迎接 Python3 有些 节目 大家 可以 去 听 一下 但是 反正 就是说 从 现在 往后 大家 其实 就 可以 当做 Python2 是 一个 不 存在 的
东西 一个 死 掉 的 预言 就是
过去 的 一段 噩梦, 然后 就 可以 对 就 可以 把 它 忘掉。 如果
一个 人学 python 开始 的话, 那 应该
怎么 开始 呢? 这个 我 觉得 要 不 就 不光 我来 聊 了 吧, 然后 大家 都 可以 去 讲讲, 那 反正 对 我 来讲 的话, 因为 我学 python 的 时候 就 已经 有 CR 家 的 编程 基础 了, 所以 我 是从 一个 叫做 codecademy 的 网站 开始 学 的, 它 其实 就是 一个 在线 编程 平台。 他 就 他 是 就 左边 是 教程 教 你 拍算 语法, 然后 右边 是 练习, 你 就 在 上面 写, 然后 就 写 完 就 执行。 如果 你 没有 编程 经验 的话, 我 建议 你 可以 听 一 听 补车者 说 的 第一期。 我们 的
古文, 古文 播客 又 来 了 啊, 打广告 开始
打广告。 我们 当时 第一期 就 聊 了 一下 新人 需要 什么 就是 一个 我们 的 新人 就 指 的 是 编程 初学者 那么 我们 当时 不止 聊 了 学 python 就 包括 一个 比较 比较 更 普遍 的 说 编程 怎么 入门 可以 去 听 一 听 我们 当时 那 期 节目 好 广告 打 完 了 你们 也 都 来 聊 一聊 有 什么 推荐 的 书 或者 方法 没有 啊
我 没有 正式 学过 python 啊 就是 google 嘛 google 大学 嘛 我 可能
也 是 直接 看 那个 tutorial 或者 什么 之类 的 这种 学 的 就是 没有 正式 学过 抄抄 别人 的 代码
对 对 因为 大学 里 都 不教
嘛 所以 那个 年代 我 不 知道
现在 教不教 至少 我 应该 教 了
吧 我 是 属于 说 以前 看过 一下 那个 什么 learnpythoninthehardway 还是 什么 但是 那个 时候 看 的 时候 又 不 需要 用 你 练 过 了 也 没有 用 啊 到 你 现在 要用 的 时候 你 又 不 记得 了
其实 python 就 属于 那种 你 如果 想 临时 用 一用 然后 你 看 一下 教程 然后 10 分钟 你 就
能 用 了 对 对 对 但 如果 你 没有 实际 需求 不停 的 用 然后 你 一会 就 忘掉 了 尤其 是 我 这种 写 大量 JavaScript 的 然后 突然 用 一下 python 就 总会 掉 各种 坑里 例如 说 最近 就 掉 坑里 发现 要 访问 一个 jsonkey 就 忘记 要 检查 这个 key 存 不 存在 之类 的 JavaScript 不 需要 检查 没有 就 undefine 这个 是
JavaScript 的 问题 我 想 起来 我 之前 Python 用 的 多 的 有 一段时间 是 那个 找 工作 刷题 的 时候, 就是 我 发现 那个 比较 快, 就是 你 刷 leadcode 对 吧, Python 比较 短嘛, 写 起来 比较 快, 一 开始 我 还是 用西 佳佳 写 的, 然后 有 一次 面试 的 时候 就是 因为 那个 题 他 的 那个 字符串 什么 的 这种 处理 太多 了, 西 佳佳 写 这个 就 巨 啰嗦, 字符串 太多 了, 然后 面完 出来, 对 对 对, 面完 出来 那个 refer 我 的 朋友 就 批评 我 说 你 怎么 不写 Python 呢, 然后 我 回去 就
只 刷 Python 了。 变成 一门 面试
语对 对 对 对 我 是 开 AlgoTogether 的 这个 算法 刷题 学者 Kat 的 广告 开始 了 然后 很 搞笑 就是 有 一次 我们 在 这个 學習 小組 的 上 課 的 期間 準確 來 說 是 在 模擬 面試 的 期間然 後 我們 一個 老師 和 一個學 生就 在 模擬面 試然 後 其他 學 生就 在 聊天 窗口 聊天 我 說 哇 這個 寫 得 好 複 雜啊接 著馬上 就 有人 回 復 了 一句 Lifeisshort, usePython 對
這句 還挺 經典 的 对 对 这个 也 是 python 的 一个 经典 的 口号 对 因为 就是 python 写 代码 写 的 比较 短 比较 优雅 然后 你 就 节省 了 你 很多 的 时间 所以 lifeisshortusepython 我 有 一件 这个 衣服 对 它 上面 就是 写 的 lifeisshortusepython 并且 这个 是 有 官方 的 中文翻译 的 就 叫 人生 苦短 我用 python 就是 那个 python 社区 里面 一个 很 著名 的 人 叫 大妈 翻译 的 呃 我 当时 面 google 也 是 用 python 刷题 用 python 面试 我 还 专门 问 了 一下 HR 能 不能 用 Python 然后 他 说 可以 那 还有 什么 想 的 自从
用 了 之后 就 再也 不用 别的 语言 做 面试 机了
我们 说 了 这种 就是 初学 或者说 是 完全 初学 编程 用 python 要 听 我们 补舌者 说 对 吧 我们 这些 已经 有 编程 基础 的 工程师 偶尔 用用 python 就是 用 这个 codeacademy 这个 网站 是 吧 那么 如果说 你 要 成为 一个 优秀 的 专业 python 程序员 呢 有没有
什么 推荐 呢 其实 python 的 书籍 和 学习 的 网站 真的 有 特别 多 就是 大家 也 不用 局限于 就 我们 刚才 提到 的 这个 现在 网上 资源 真的 真的 太多 了 包括 python 它 官方 是 有 一个 学习 文档 tutorial 的 就 它 官方 就 有 然后 你 去 python 的 官 网上 它 就 有 教 你 怎么 学 python 怎么 安装 就 它 写 很 细 这个 教程 是 很 不错 的 进阶 的话 其实 可以 推荐 两本书 吧 第一本 叫做 FluentPython 中文 是 叫做 流畅 的 python 然后 他 是 一个 巴西人 叫 Luciano 写 的 那么 这 本书 不光 是 在 Python 领域 很 有名 他 经常 在 各种 编程 书籍 的 排行榜 上 都 是 排名 前茅 的 就 他 写 的 非常 好 叫 流畅 的 Python 有 官方 中文翻译 翻译 质量 怎么样 我 不 知道 但是 大家 可以 去 了解 一下 这个 对 这个 人 我 是 见 过 的 我 还 去 我 还 上 过 他 的 课 在 那 PyCon 的 时候 但是 官方 提供 的 票 我 就 免费 取 了 另外 一 本书 是 叫做 PythonCookbook 就是 很多 书 它 可能 都 有 一个 什么 什么 语言 Cookbook 嘛 那 Cookbook 的 意思 就是说 它 相当于 提供 了 一些 很 短 的 这种 代码 然后 能 让 你 马上 用 去 解决 某 一个 任务 的 比如说 你 说 我 要 去 做 一个 什么 什么 事 然后 你 就 去 这 本书 一查 它 就 有 一段 代码 能 解决 你 这个 问题 然后 你 就 抄过来 就 好 了 这个 书 也 是 很 不错 的 对 PythonCookbook 中文版 也 教 这个 再 补充 一点 就是 刚才 提到 PyCon 嘛 就是 PyCon 是 一个 PythonConference 的 简称 就 像 很多 其他 的 语言 一样 Python 也 是 有 一个 这种 大会 的 PyCon 其实 在 全世界 各个 国家 它 都 有 办 像 中国 有 自己 的 PyCon 然后 但是 最大 的 就是 每年 会 在 美国 办 的 嘛 就是 PyConUS 然后 这个 它 的 每年 的 视频 都 是 在 YouTube 上 可以 找到 的 然后 我 当时 学习 的 时候 也 是 看 了 很多 这个 视频 我 觉得 它 是 比较 适合 于 你 有 一定 基础 然后 想 深入 了解 某 一个 主题 的 时候 可以 去 搜一 搜 这种 PyCon 的 视频 所以 说 如果 有
PyCon 的 粉丝 啊 可以 到 YouTube 视频 上去 看 一下 PyConCon 就是 conference 会议 的 意思 是 吧 PyCon 然后 去 看 一下 他们 视频 可以 朝拜 一下 大佬 们 再 讲 一 讲 这个 语言 的 前世 今生 啊 是不是 也 可以 看到 我们 的 这个 like9M 在 上面 的 这个 英姿飒爽 的 样子
吗 我 在 中国 拍抗 演讲 过 两次 吧 但是 很 可惜 都 没有 留下来 视频 美国 这边 我 只是 去 参会 还 没有 讲过 所以 看 以后
有没有 机会 吧 中国 这个 摄像机 不行 啊 没有 留下 视频 呢 其实 我
觉得 也 挺 好 就 我 还是 挺 不想 在 网上 留影 的 所以 如果 以后 真的 有 机会 演讲 我
还 打算 带个 面具 你 想 好 面具 上面 画 什么 了 吗 实在
不行 就 拿 个 什么 蝙蝠侠 的
面具 也 有 这样 的 presenter 吗 以前? 我 有点 好奇 没有 这样 的 presenter 那 可能 戴个 墨镜 现在 可以
直接 用 deepfake 换个 脸 就 可以
了 今天 我们 就 感谢 我们 的 这个 Python 中文 社区 的 活跃 核心 人员 lime9m 来到 我们 的 节目 我们 的 串台 的 节目 向 我们 介绍 了 一些 Python 的 常识 Python 是 第一 语言 这个 用量 第一 初学 的 第一 语言 上德 厅堂 下德 厨房 的 AI 语言 互联网 语言 啊 他 的 历史 关于 性能 的 吐 槽 还有 他 未来 发展 的 方向 以至于 推荐 大家 学习 的 材料 那 我们 今天 要 不要 就 感谢 我们 的 like9m 来到 我们 节目 给 我们 带来 精彩 的 內容 我 也 特別
感謝斯 加特 來 邀 請 我 來 紐約 烤 麵 包 做客 反正 如果 大家 想 深入 了解 一下 Pattern 主題 還是 歡迎 前往 捕手 者 說 然後對
一定 要 聽 一 聽 捕手 者 說 這個 節目 很 好 聽 不僅 有 Pattern 內容 還有 這個 職場 內容 並且 講的 非常 的 細 啊 就是 我 聽 了 他們 幾期節 目講 如果 被 這個 TagLeague 欺負 怎麼 辦都給 你 非常 好 的 答案 啊 好 吧 总之 内容 非常 的 丰富 如果 喜欢 我们 节目 欢迎 去 各大饭 用型 播客 平台 来 订阅 牛油果 烤面包 以及 捕蛇者 说 对 吧 如果 想 订阅 牛油果 烤面包 还 可以 去 喜马拉雅 好 那 我们 就 后会有期 拜拜










