‎911 有什么紧急情况？
‎911 有什么…
‎2014年4月9日 ‎911报警电话突然中断
‎全美国有数百万人无法打进电话报警
‎崩溃持续了超过六个小时
‎超过6000通报警电话无法接通
‎政府将问题追查到了一台电脑上
‎科罗拉多州恩格尔伍德的 ‎一个电话路由设备
‎只是因为一个简单的编程错误
‎负责给那台电脑编程的人
‎选择给电脑能记录的电话数量 ‎设置了一个上线
‎这位程序员认为这是一个 ‎电脑永远不可能达到的数字
‎但2014年的那天晚上 ‎电话数量达到了这个数字
‎电脑完美执行了它的指令
‎达到了上限 就不再转接电话了
‎问题不是出在电脑上
‎也不是程序出了故障
‎而是程序本身
‎问题出在人们与电脑沟通的
‎决策过程中
‎这种能力也带来了巨大的伦理责任
‎没什么和做这件事一样
‎没有任何可以替代它的东西
‎其实非常类似
‎（蒂姆吴 《总开关》作者）
‎决定你在城市中的生活方式
‎我觉得代码控制着我们的网络生活 ‎方式 这基本等同于我们的生活方式
‎不仅是上网的时候
‎还有联系紧急服务的时候
‎去看医生的时候
‎上车的时候
‎我们每天的生活都和代码密切相关
‎然而 所有人之中 ‎只有大约0.33%的人懂的怎么写代码
‎对绝大多数人来说 这就是个黑匣子
‎但并不是非得如此
‎编程到底是什么原理呢？
‎我们又在用它 ‎搭建着什么样的新世界呢？
‎NETFLIX 原创纪录片系列
‎计算机
‎是由人类创造出来的精巧的
‎电子硬件合集
‎我们并不是 ‎缺乏合适的机器去解决问题
‎而是缺乏合适的解决问题的描述
‎别人提到编程的时候 ‎你会觉得真的很难
‎必须要记住非常重要的一点 ‎那就是你在计算机上所使用的一切
‎都是由某些人类创造出来的
‎剧名：编程
‎比方说有外星人来了 你会想： ‎“好吧 程序有什么重要之处？
‎到底是什么？”
‎我会说：“你知道吗？
‎我们住在这个实体星球上 ‎大约50年前
‎有一小群人开始建造另一个星球
‎不是实体的星球 一个虚拟星球
‎在街上四处看看 ‎很多人在街上一边走
‎一边低着头盯着手机看？
‎他们事实上就在另一个世界
‎这就是程序
‎是另一个世界的构成要素”
‎这台织布机是全世界所有计算机
‎和手机的祖先
‎它发明于1804年
‎最大的创新在于这些卡片
‎每张卡片上的洞只允许某些针穿过
‎几百张卡片上有几千个洞
‎纺织工人们就能编织出 ‎比以往更为复杂的图案
‎图案复杂的披巾在欧洲盛行
‎编制图案可以变得非常错综复杂 ‎像是图画一般
‎比如这幅描绘纺织机发明者的
‎在这些纺织机出现之前 ‎每一根线都要人工挑选
‎由这些“图画男孩”负责
‎以前的数学也要人工来做
‎这些人就是所谓的“计算机”
‎所以第一批计算机是人
‎而当时可以帮助我们的最好的机器
‎只能解决一种数学问题
‎比如我们用来做加减法的算盘
‎英国数学家查尔斯巴贝奇 ‎想要一个机器
‎能帮他计算 ‎他想要解决的任何数学问题
‎或者说是编制了程式 ‎让它解决的问题
‎他构思了一种机器 ‎并将其称为“分析机”
‎巴贝奇的想法将让他青史留名
‎计算机最初是由巴贝奇发明的
‎他是一位非常古怪的英国发明家
‎巴贝奇获得了让机器运行的灵感
‎他一直在家里挂着一张 ‎这张图片的复制品
‎巴贝奇的分析机 ‎和雅卡尔织布机类似
‎都有实体部件 称为“硬件”
‎和织布机一样
‎可以给这些硬件下达指令 ‎通过打孔卡片的形式
‎小孔允许针通过
‎而没有小孔则会让针退回去
‎这样就激发了一系列机械计算
‎这些打着不同小孔的卡片
‎就是软件
‎巴贝奇没有完成他设想的分析机
‎但和他一起工作的一位年轻女性 ‎看到了远超数学范畴的
‎能改变世界的潜力
‎挨达拜伦 ‎也就是洛夫莱斯伯爵夫人写道：
‎“使用这些卡片的想法诞生的瞬间
‎就已经越过了数学的界限”
‎她看到了雅卡尔看到的东西：
‎小洞能代表的不仅仅是数字
‎也可以代表图案
‎音乐
‎或完整的句子
‎你可以将其想象成是类似摩尔斯电码
‎字母表中的每个字母在摩尔斯电码中 ‎都是由两种信号组成的
‎点或划
‎是二进制的
‎用这些哔哔声 我们就能表达一切
‎比如1912年泰坦尼克号发出的 ‎这个求救信号
‎SOS没有任何含义
‎只是用摩尔斯电码发特别容易而已
‎你也可以将每个字母用一系列 ‎零和一的组合
‎来表达
‎眼熟吗？
‎这就是二进制代码
‎我们就是由此缩小机器 ‎和人类语言之间的差距的
‎每个零或一是二进制中的一位 ‎或者一“比特”
‎这些是现代计算技术的原子
‎你也许熟悉它的另一个名字：
‎八个比特就是一个字节
‎你计算机上有张照片 ‎显示大小是1.1兆字节 对吗？
‎这里面就包含了880多万个一和零
‎正如摩尔斯电码的点和划 ‎是用来写下不同长度的哔声的
‎二进制代码中的一和零 ‎只是我们用来写下
‎在现代计算机中 ‎究竟发生了什么的东西
‎带电还是不带电
‎这是个简单的电路
‎想象一下 ‎几百万个这样的东西一起运作
‎这就是今天的电脑
‎在一个电路上 这是一个比特
‎电灯泡不亮吗？那就是零
‎亮了？那就是一
‎计算机只能理解电力
‎所以程序员能对计算机做的一切
‎说到底
‎就是一系列打开或关闭电荷
‎这些能成功的原因是 ‎以正确的方式组装在一起
‎这些电荷能代表逻辑
‎基本上说 ‎逻辑是可预测的一系列事实或事件
‎比如关上这个开关
‎还有这个
‎事实上 计算机从业人员 ‎将其称之为“逻辑和电路”
‎或称为“逻辑门”
‎让我试试能不能 ‎在不把桌子烧出一个洞的情况下做到
‎在“与”门中 两个电路都要合上
‎灯泡才会亮
‎在“或”门中
‎只要有一个电路合上 灯就会亮
‎你也可以这么说
‎如果其中一个电路合上了 ‎那么就会点亮电灯
‎这种“如果 那么”的描述
‎就是一种算法
‎在当今流行文化中 ‎“算法”这个词会导致很多混淆
‎我们之前见过这种情况 ‎算法失去了控制！
‎算法运作的方式 ‎对大部分人来说是挺神秘的
‎算法到底是个什么东西？
‎但是算法其实只是一系列指令
‎假设你要走去商店
‎可以先左转 再右转
‎或者你也可以先右转 再左转
‎或者你可以左转四次
‎绕着公园跑一圈
‎穿过高速公路
‎然后再右转四次
‎就像走到同一个地方有不同方向一样
‎在编程中 要解决同一个问题
‎也可以有很多不同算法
‎目标就是找到最优雅、最高效的那个
‎美丽的代码是不会自我重复的
‎非常优雅 非常强大
‎搭载了算法的计算机 ‎做的也是我们要求的事
‎但快得多
‎这也让人们变得强大得多
‎科学家一开始研发氢弹的时候
‎主要使用的是人脑计算机
‎但之后 他们开始使用这个
‎埃尼亚克计算机 ‎运行了六周的热核计算
‎结果直接导致了这个
‎1952年第一次成功试射
‎一枚比二战时 ‎在广岛和长崎投下的原子弹
‎强劲几百倍的炸弹
‎编程的能力放大了人们
‎做自己想做的事的能力
‎但在20世纪40年代 ‎还是需要耗费很大功夫
‎用零和一来编程 ‎显然是无法规模化操作的
‎人们想要更多编程给予的能量
‎但他们想要更容易的编程方式
‎从那时起 程序就一直在努力 ‎越来越接近
‎人类的语言
‎发明了现在 ‎几乎所有程序员都会使用的东西：
‎编程语言
‎与零和一相比 这些语言相当抽象
‎抽象化对人们来说是个难词
‎更抽象的语言 ‎仍然是由同样的零和一构成的
‎我们只是找到了更好的方式 ‎来组织它们
‎可以从生物学角度来思考
‎人类是非常复杂的
‎但我们身体的99% ‎都是由区区6种元素构成的
‎你可以慢慢往大一些的分子发展
‎在这一层的组织以及
‎最简单的生物之间
‎其实有挺大的隔阂
‎人类还有大脑
‎大脑做的工作特别先进
‎很难相信 ‎它们仍是由同样的东西构成的
‎计算机其实挺像的 但是简单得多
‎这是好消息
‎编程就是将这个方框往上移的故事
‎越来越远离二进制 让我们拥有
‎更简单、更快捷、更强大的编程方法
‎而不用处理 甚至不用理解
‎最下层的二进制和逻辑门
‎这就是程序员得以编制出 ‎我们都熟悉的东西的方式
‎要做到这一点 第一步就是…
‎“汇编语言” 这种语言更容易读写
‎不用再写0、1、0、0、0、1、1、1
‎而是可以将其称为ADD
‎然后通过一个汇编程序 ‎将这些字母翻译过来
‎把一个个字母与一和零的组合对应
‎在这个层次 ‎二进制就被组织成了字母和数字
‎就像原子被组织成分子一样
‎但用汇编语言编程仍然不能算容易
‎因为所有这些计算机 ‎都会使用不同的汇编语言
‎给一台计算机写的程序 ‎在另一台计算机上就用不了
‎很快 人们开始思考
‎我们真正想要给计算机的
‎是我们每天都会用的词汇
‎有用汇编语言
‎构建的编程语言
‎然后再用这些编程语言 ‎构建出更多的编程语言
‎你八成听说过它们的名字
‎-LISP… ‎-BASIC
‎-Java ‎-C++
‎-Python 3 ‎-HTML 5
‎PEARL PHP 还有一点C语言…
‎就像不同的口头语言是向其他人
‎表达同一个想法的不同方式一样
‎编程语言只是向不同的电脑
‎表达同一个想法的不同方式
‎高级别的语言不止一种
‎因为首先 不同的语言
‎主要解决的是不同的需求
‎看看这两个语言吧
‎这一个 COBOL ‎是在20世纪50年代晚期开发的
‎目的是为了让企业能更方便地编程
‎看起来很像英语 但是每句话最后
‎都会以“结束运行”结尾
‎CPL这种语言是在20世纪60年代 ‎开发的 包含更多科学计算的内容
‎就像是生物进化
‎随着生物体变得越来越复杂 ‎它们也会进化出
‎让它们能更好地适应特定环境的特征
‎老实说 这也取决于个人喜好
‎人们喜欢用不同的工具 ‎来作自我表达
‎比方说C++这门语言
‎伊隆马斯克就不喜欢
‎你也可以开发一种语言
‎这是一个真正的高级语言 ‎完全由“哞”这个词组成
‎真的 这门语言叫做奶牛
‎这门语言则是完全由 ‎阿诺德施瓦辛格的电影台词组成的
‎我每次心想：“好了 ‎这下应该没了吧”
‎就会有人又想出一种新的语言 ‎然后发展出一个爱好者团体
‎所以 我觉得开发新语言 ‎目前还看不到结束的那一天
‎所有这些语言都是基于逻辑的
‎比方说 NETFLIX 的一位程序员会写
‎“如果你收看的时间超过两小时
‎就会显示这条信息”
‎但要想让程序影响大部分人的生活
‎大部分人就都需要使用计算机
‎这就意味着计算机必须要更易于使用
‎更友好
‎这就需要另一个巨大的跨越
‎这个跨越从这里开始
‎在道格拉斯恩格尔巴特 ‎于1968年发表的一个演示中
‎我们马上就会看到他在工作的屏幕
‎以及这个跟踪光点
‎是如何与鼠标一起活动的
‎现在的人们编程时 ‎不需要在一张纸上
‎写下陈述 然后交给别人
‎去输入
‎你可以坐下来 对着屏幕 ‎使用图形用户界面
‎现如今 我们将其称之为GUI
‎有了GUI 人们不需要打字就能编程
‎或者可以更简便地编程
‎通常来说 现在工作的编程环境
‎就是艾伦和他的伙伴们创造的
‎非常漂亮的环境
‎是他们在20世纪70年代早期 ‎在施乐的帕罗奥图研发中心创造的
‎艾伦
‎就是这位
‎我将他视作个人编程之父
‎因为他是第一个清晰表达出 ‎这个愿景的人
‎我必须要坦白 ‎当时 我还觉得这是科幻作品
‎大的事情真的完成的时候
‎背后通常是有一整个社区的
‎老天 帕克真的做得超级好
‎就像魔法一样
‎图形用户界面让几百万人
‎能够以他们认为自然的方式 ‎使用计算机
‎施乐在1979年第一次发布GUI广告时
‎他们展示出了程序 ‎如何能够改变日常生活
‎早上走进办公室 一台施乐机器
‎会在屏幕上显示出你早上的信件
‎很快 像这样的施乐系统
‎将能帮助你管理你最珍贵的资源：
‎信息
‎有很多像我这样的人 以及其他人
‎处在这个研发社区中
‎想要让世界变得更好
‎他们有一个与人类增强
‎紧密相关的想法
‎一个能与我们互动
‎与公众互动
‎与普通人互动的东西 让我们能做到
‎以前做不到的事情
‎它的确使我们能做到更多
‎GUI是这个范围中的一大跳跃
‎然后 下一个改变世界的创新出现了
‎一种新的方式 能传播
‎我们能用程序创造出的一切
‎在电视上 人们开始预测 ‎突然能获取所有程序
‎意味着什么
‎想象一下吧 坐下来 享用早上的咖啡
‎打开家庭计算机 ‎就能阅读今天的报纸
‎想象一下这样的一个世界 ‎写下的每个字 每张画的每张图片
‎每一部电影都能立刻在家中看到
‎我觉得即将进入令人兴奋 ‎同时也令人惧怕的世界
‎但这只是一个工具 不是吗？
‎不 不是的
‎现在影响力最大的软件产品 ‎利用了所有这些创新
‎一位大学生 ‎使用了一种高级别编程语言PHP
‎制造出在整个网络分享的东西
‎可以用装有GUI的计算机使用
‎他在2004年的第一次电视采访中 ‎是这么描述的
‎这是一个网上目录 通过大学
‎将人们连接在一起
‎通过他们学校中的社交网络
‎现在我们已有10万用户 ‎所以谁知道之后会发展到什么样
‎发展到了每个月 有超过20亿人
‎使用Facebook
‎现如今 程序员几乎塑造着 ‎几十亿人的生活
‎影响着他们工作、吃饭、约会 ‎以及娱乐休闲的方式
‎你现在在干什么？
‎你正通过NETFLIX 网页浏览器在看我
‎NETFLIX 本身就是由代码组成的 ‎在网页浏览器上运行
‎这也是代码
‎在计算机上运行 ‎计算机也是由代码设计出来的
‎可以这样永无止境地说下去
‎伟大的程序就像一个博物馆的建筑
‎数百万人会想着这个博物馆
‎每天都会去参观、闲逛、使用
‎我觉得编程是独一无二的体验 ‎因为这就像是纯粹的创造
‎你有个想法 某样东西应该能这么做
‎然后你试着坐在一台计算机前
‎将其变成现实
‎我觉得这个角色意味着很大的责任
‎有个限速
‎时速不能超过97公里
‎行吧
‎但如果有辆车 计算机说：
‎“这辆车的时速不能超过97公里”
‎这就是完全不同的控制行为的方式
‎通过控制我们的选择 ‎我们生活中的程序通常
‎会比法律希望施加的监管效果 ‎要更加深入
‎这可能是件很好的事
‎美国每年会发生约600万起车祸
‎一项分析发现 94%的车祸 ‎是由司机导致的
‎编程的进步 ‎可能会拯救数以百万的生命
‎但也可能以全新的方式 ‎让人的生命出现风险
‎我患有肥大型心肌病
‎这个医学词汇的意思是 ‎我有一颗特别大的心脏
‎我的心脏特别大
‎大约是普通人心脏的三倍大
‎我大约是在30岁时发现的 ‎我在40岁之前猝死的风险
‎非常大
‎电生理学家说：“这完全不是问题
‎因为你可以装一个起搏器除颤器”
‎这个设备是由程序控制的
‎几年前 我怀孕了 然后我发生了心悸
‎大约有四分之一的女性会出现心悸 ‎是非常正常的现象
‎但我体内的设备 ‎以为我心跳的节奏很危险
‎就电击了我
‎设备制造商 ‎电击怀孕妇女是没有任何好处的
‎这是他们最不想做的事
‎他们只是没考虑到这一点
‎有非常多的决定要做
‎而程序员会负责做这些决定
‎不可避免的
‎会出现一些情况的组合
‎是他们没有预想到的
‎所以我们在教编程的时候
‎会试图教授
‎学生们
‎如何考虑
‎所有这些不同的情况
‎如何试图面面俱到
‎而不会因为需要考虑的事情之多
‎而没了力气
‎这只会变得越来越接近现实 ‎因为我们已经开始以全新的方式
‎进行编程
‎在传统编程中 你会给计算机写指示
‎但现在 我们能给计算机一系列输入
‎和一系列输出
‎让计算机自行编写指示
‎你需要做的就是给计算机
‎很多例子
‎然后说：“这是个派对”
‎然后还有其他这些
‎牙医办公室：不是派对
‎课堂：不是派对
‎这样 计算机看了这些 就会试图搭建
‎一个分类系统
‎这就是机器学习
‎现在 如果有人提到人工智能
‎指的就是这个
‎这是另一种完全不同的抽象化方式
‎和做事情的方法
‎因为它并不符合 ‎我们之前堆叠的那些
‎我们管它叫机器学习算法 ‎因为计算机在创造的
‎是提供给自己遵守的指令
‎但是当然 到最后 它们都会被翻译成
‎很小的指令
‎谷歌翻译曾经有超过一百万行代码
‎是人工编写的一百万条小指令
‎而现在 ‎谷歌翻译大约只有五百行代码
‎这就是利用了机器学习
‎假如说 因为疏忽 ‎你输入的所有这些派对的照片中
‎没有任何黑人或西班牙裔
‎电脑就会决定派对的一条规则
‎就是只有白人和亚裔会被邀请
‎有很多白人和亚裔程序员
‎我们绝对应该扩展 ‎被邀请进入设计室的人
‎有无数原因
‎如果有更多的生活经历 ‎他们就会问出更好的问题
‎但是最终 ‎如果给机器学习系统输入数据
‎比如数据内置了结构性种族歧视的 ‎刑事司法系统
‎比如说你的机器学习程序员
‎是非常多样化的人群
‎不同种族、不同长相、不同社会背景
‎那机器学习系统 ‎仍然会从那一批数据中进行学习
‎如果人们不主动去修正这一点
‎历史数据会让我们重复过去的错误
‎编程的故事充满了人类的雄心
‎和创造力
‎猎鹰9号运载火箭的升空
‎让我们看到了从未想过能见到的东西
‎一个黑洞
‎我们在建造一个新的世界
‎有越来越多直观性的工具
‎有更多的人可以使用
‎来帮助确保那个世界变得更美好
‎我们已踏上一段旅程 ‎让计算机更容易接近
‎让更多的人能接近它
‎在过去50年间 我们亲眼见到了 ‎这场革命的发展
‎所以活在这个时代才如此激动人心
‎务必要记住 ‎你在计算机上使用的一切
‎都是由人类创造的
‎其实 你可以成为其中一员 ‎而且成为其中一员
‎是非常重要的
‎你可以从根本上真正改变这个世界
‎这个世界将在越来越多方面 ‎通过机器学习
‎数据和传统编程运作
‎生活在这个社会的我们 ‎能做的就是说：
‎“好的！我们拥有这项强大的新技术
‎它会以某种方式变得伟大 ‎但它不会自行伟大起来”
‎字幕翻译：严欣