0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

那些有着巨大影响力的代码盘点

strongerHuang 来源:机器之心 作者:机器之心 2021-10-12 15:46 次阅读

2009 年,Facebook 推出了一份改变世界的代码——点「赞」按钮。「赞」是包括 Leah Pearlman 和 Justin Rosenstein 在内的数名程序员和设计师的创意。他们认为 Facebook 用户经常太忙而无法在朋友的帖子上发表评论,但是如果有一个简单的按钮可以使用,那一定会大受欢迎。「朋友们可以更频繁、更轻松地相互点赞互动」,Pearlman 说。

这个按钮奏效了,甚至有点超乎想象。到 2012 年,「赞」这个按钮已经有了超过 1 万亿次的点击。但它也产生了副作用。我们发布一张照片后,会坐立不安地刷新页面,等待更多的「赞」。我们想知道为什么别人的赞越来越多。因此,我们开始在社交网络中「暗暗发力」:变得更有趣、更犀利、更迷人、更极端。

代码重构了我们的生活。正如风险资本家 Marc Andreessen 写的那样,「软件正在吞噬整个世界」,不过说软件正在消化这个世界可能更准确。

因此,美国 Slate 杂志做了这样一个调查。为了厘清改变世界的那些软件,编辑们对计算机科学家、软件开发人员、历史学家、政界人士和新闻工作者进行了民意调查。他们需要选择:哪些代码有巨大影响力?哪些改变了我们的生活?有 75 位人士提出了自己的想法,Slate 选择了其中 36 位(译文有删减)。这并不是一个完整的清单,因为有影响力的代码太多。该清单旨在激发思想——帮助我们重新思考代码如何影响我们的生活以及程序员的决策如何影响未来。

二进制穿孔卡片(1975 年)

第一种代码

二进制编程出现时间比计算机都早。Basile Bouchon 是第一个在纸上打孔并用它来控制机器的人:1725 年,他发明了一种织机,该织机根据所送入的穿孔纸编织出不同图案。打孔是「1」,没有打孔是「0」。此后机器发生了很多变化,但基本的代码组成并没有改变。——Elena Botella, Slate 执行的第一个现代代码(1948 年)

引领了计算机代码的使用和核灾难计算机模型的出现,为冷战时期的军备竞赛打下了基础

电子数字积分计算机是第一台可编程电子计算机。它于 1945 年完成,通过在许多组件之间进行连接来为每个新问题进行配置。当一项任务(例如加法)完成时,一个脉冲会触发下一项任务。但是几年后,冯·诺依曼(Von Neumann)和 Los Alamos 的科学家 Nicholas Metropolis 改进了 ENIAC,运行了在计算机上执行的第一条现代代码:从可寻址的只读存储器(ENIAC 的功能表开关)执行数百条数字指令。他们使用蒙特卡洛技术模拟了在新墨西哥州的洛斯阿拉莫斯国家实验室提出的几种原子弹设计的爆炸过程,通过这种方法逐步模拟了复杂系统,绘制了可能结果的概率分布。冯·诺依曼和梅特罗波利斯向洛斯阿拉莫斯的核科学家发送了 20,000 多张卡片,通过引爆弹头追踪了模拟中子的过程。如今,此代码的后续版本仍在洛斯阿拉莫斯使用。——Thomas Haigh,《ENIAC in Action: Making and Remaking the Modern Computer》合著者

GRACE HOPPER 的编译器(1952 年)

使计算机处理单词成为可能

d4fd0af6-2b2c-11ec-82a8-dac502259ad0.png

Grace Hopper 在对一台早期计算机编程时,为了简化整个过程决定将编程语言植根于人类语言。霍珀(Hopper)在第二次世界大战期间加入了美国海军预备役。她知道,像她的军事上司一样,人们都在努力理解二进制代码。如果编程语言可以是基于英语的,那么这项工作就不会那么容易出错,并且对于那些不是数学博士的人来说也更容易理解。

一些人对此想法不以为然,但到了 1950 年代初,她设计了一个编译器,即一组指令,将一种更易懂的代码转换为机器直接处理的低级代码。她和她的实验室使用该工具开发了 FLOW-MATIC,这是第一种将英文单词融入该过程的编程语言。——Molly Olmstead, Slate

太空战争!(1961 年)

第一个分布式视频游戏(Spacewar)

d50aaeae-2b2c-11ec-82a8-dac502259ad0.png

电子邮件的起源(1965 年)

Come on,电子邮件来了!

d5495d34-2b2c-11ec-82a8-dac502259ad0.png

阿波罗 11 号登月舱救援代码(1969 年)

防止登月舱计算机在太空中空间耗尽的代码

d577c372-2b2c-11ec-82a8-dac502259ad0.jpg

Hello, World!(1972 年或更早)

引领一代又一代人打开编程大门的代码

d5b0cd3e-2b2c-11ec-82a8-dac502259ad0.png

当你坐下来学习一种新的编程语言时,教程要求你做的第一件事就是让计算机显示「Hello,world!」。也许最著名的早期示例来自贝尔实验室的「C—A 编程教程」。该教程写于 1974 年,尽管在 1972 年的手册中也发现了另一种更早的语言 B。

「Hello,world!」这是极好的教学方法。这是一项小的、可实现的任务,能够使学生有成就感。这是一个标准,有助于说明不同编程语言之间的差异。这也是高级程序员确保安装新环境后一切正常的一种快速简便的方法。(有时程序员使用「到‘hello world’的时间」比较语言和环境的速度。)也许最重要的是,「Hello,world!」能帮你打开编程的大门,它告诉你这就是新世界。——Chris Noessel,IBM AI 设计主管。

以空字符结尾的字符串(1972 年)

计算史上最大的灾难性设计错误

d5d2d492-2b2c-11ec-82a8-dac502259ad0.png

1972 年,Dennis Ritchie 做出了一个重大决定:用一种名为「空字符结尾字符串」(null-terminated string)的新语言来表示文本。这个概念早就出现了,但是他把其写进了他称为 C 的新语言中,这个决定就一直影响我们到现在。

编程语言代表一段文本的主要方式有两种:一是具有固定、显式长度——「只包含 10 个字符,不能再多了」或者可以以空值结尾——「这里有一串字符,继续努力,直到看到零字节为止!」

C 代码中有一个非常常见的错误,在将一个长字符串复制到一个较短的字符串中时,会出现结尾溢出,即你破坏了刚好在附近的其他数据。就像在白板的边缘上乱涂乱画一样。

除了仅使程序出现故障外,还可以利用此类错误来改变程序行为,方法是使用经过精心设计的特定数据覆盖某些内容。这些就是缓冲区溢出攻击。你听说过的几乎所有安全漏洞都从 1988 年的 Morris Worm 开始。

你必须在 C 语言中仔细编码以避免此类错误,但是此类错误仍然容易发生。从路由器到「智能」灯泡,几乎每种现代语言都避开了空字符结尾字符串,但是 C 和 C++仍然在语言界有支配地位。因此,近 50 年后的现在,我们还在「饱受折磨」。——Jamie Zawinski,Netscape 开发人员、Mozilla.org 创始人

温哥华股票交易所的交易错误(1982 年)

不起眼的小数误差造成极大损失

d5ef0f86-2b2c-11ec-82a8-dac502259ad0.png

1982 年初,温哥华证券交易所推出了一种电子股票指数,该指数最初定为 1000 点。在两年内,它跌了一半,这在 1980 年代初期的牛市中似乎匪夷所思。一项调查显示,使用 floor() 而非 round(),会造成对索引的计算错误。该命令意味着该值会被直接截止而不是四舍五 入到小数点后三位。(数字计算机必须具有有限的分辨率,因此需要四舍五入或直接截止。)因此,如果索引计算为 532.7528,则会被存储为 532.752,而不是四舍五入为 532.753。在每天数千次计算的过程中,这种看似很小的差异——每次必须四舍五入时未进行四舍五入——导致了巨大损失。这个编程错误最终在 1983 年 11 月得到解决,当时周五的收盘指数在 500 点左右。问题解决后,该股票于周一重新开盘,指数就超过了 1,000 美元,损失的价值得以恢复。——Lav Varshney,伊利诺伊大学香槟分校助理教授

THERAC-25(1985-1987 年)

过度自信是致命的

当真相浮出水面时,各大媒体的头版头条就对机器现代化发出了警告。《洛杉矶时报》宣称:「在这个复杂时代,软件漏洞变得致命。」一台用于治疗癌症的机器在几家医疗机构中对六名患者进行了大剂量过量辐射,造成至少三人死亡。

研究人员发现,Therac-25 的代码可能带来致命的错误。该机器提供低功率和高功率治疗,后者需要一个金属设备来过滤光束。但是由于软件中的错误,操作员可能会在没有金属设备的情况下意外触发高功率模式。

Therac-25 被设计为 Therac-20 的「改进」,设计时被认为是万无一失的,不需要外部安全检查。结果:几起死亡归咎于过度自信的工程师,他们没有考虑到失误的可能性。——Molly Olmstead

互联网中继聊天(1988 年)

最初的在线挂机

d5fbca00-2b2c-11ec-82a8-dac502259ad0.png

莫里斯蠕虫病毒(1988 年)

惊觉互联网已经如此庞大

d62c3e56-2b2c-11ec-82a8-dac502259ad0.png

罗伯特·莫里斯(Robert Morris)和互联网本身都还年轻。当时 23 岁的康奈尔大学研究生 Morris 发布了「莫里斯蠕虫病毒(Morris Worm)」,这是所谓的「互联网上的首次重大攻击」。近 60,000 台连接到互联网的计算机中有 10%遭到破坏,造成数百万美元的损失,该事件导致《纽约时报》首次刊登了「互联网」一词。即使是精通技术的人也会吃惊于蠕虫病毒的影响范围之广。Morris 说,他从未想过有如此大的损失,他成为根据《计算机欺诈和滥用法》被起诉的第一人。在被判处三年缓刑后,他成为著名的创业孵化器 Y Combinator 的共同创始人和麻省理工学院的计算机科学助理教授。——Elena Botella

只有一行代码的病毒(日期:90 年代)

单行代码的功能以及计算机惊人的脆弱

d663c9de-2b2c-11ec-82a8-dac502259ad0.png

上图展示的是一种名为「fork 炸弹」的单行病毒。它需要一些特定的条件才能被触发(包括较旧、易受影响的 Unix 操作系统副本)。如果在 Bash 中键入此命令,它将一遍又一遍地复制自己,直到耗尽计算机中的所有可用内存并导致崩溃。

它之所以有名不是因为它相对于其大小所表现的危险性,而是它使用冒号作为函数名称。大多数函数(可重复使用的代码行)都以描述性方式命名,例如「Print」或「isThisEmailValid」,但并没有规定必须如此。在大多数计算语言中,不能使用冒号作为函数名称,但在 Bash 中可以。

2002 年,我在德国法兰克福的 Angewandte Kunst 博物馆第一次看到作为展品的这行代码。博物馆中没有展示多少代码。——Chris Noessel

HTML 超链接(1990 年)

连接一切的工具

d6975ab0-2b2c-11ec-82a8-dac502259ad0.png

JPEG(1992 年)

改变了我们与摄影的关系

d6a96962-2b2c-11ec-82a8-dac502259ad0.png

Mosaic 浏览器(1993 年)

第一个获普遍使用且能够显示图片的网页浏览器

d6d23e50-2b2c-11ec-82a8-dac502259ad0.jpg

跟踪像素(1993 年)

现代数据收集始于这些看不见的图像。

d700dd00-2b2c-11ec-82a8-dac502259ad0.png

通过跟踪像素下载,他们会了解了你的身份和位置,并触发一个 cookie 下载到你的浏览器中。该 cookie 使广告商可以在多个网站上跟踪你。

像素跟踪的成功直接导致了 Facebook 的点「赞」按钮出现,该按钮可在每个嵌入的网站上进行跟踪。大量的数据收集实现了高度定向,也使 Facebook 广告大获成功,最终 Facebook 从媒体公司口袋里赚到数十亿美元。

Robots.txt(1994 年)

一个对搜索及其他应用均具有重大意义的小工具

d7257084-2b2c-11ec-82a8-dac502259ad0.png

维基(1994 年)

为维基百科铺平了道路

d7526a1c-2b2c-11ec-82a8-dac502259ad0.png

第一个弹出广告(90 年代中期)

互联网的「害群之马」

d783d0c0-2b2c-11ec-82a8-dac502259ad0.png

Google 的 PageRank 算法(1996 年)

革新我们组织知识的方式

d7b4d7d8-2b2c-11ec-82a8-dac502259ad0.png

在 PageRank 之前,搜索引擎根据我们的查询词是否与文档中的词匹配来查找信息。但是对于 PageRank,拉里·佩奇和谢尔盖·布林提出了一个绝妙的主意:知识是社会性的,搜索也应该是。他们创建了一种算法,通过网络浩瀚的超链接关系来确定一个页面的等级。一个页面的 PageRank 是由所有链向它的页面的重要性经过递归算法得到的,一个有较多链入的页面会有较高的等级。正是两位这种独具慧眼的洞察力造就了 Google 的当今地位。——Clive Thompson

失联的火星气候轨道飞行器(1999 年)

因数学错误而失败的任务

1999 年 9 月 23 日,NASA 的科学家与耗资 1.25 亿美元的「火星气候轨道飞行器」失联。后来的调查确定了原因:承包商使用英制单位为轨道飞行器编写了程序,这在美国是标准的,但是 NASA 的软件使用了公制。两段代码之间一次简单的通讯错误使轨道飞行器飞向了未知的地方。

人们很容易把这种度量错误看做偶然,但这表明当下这个互联软件的世界多么脆弱。所有互联的技术(电话、航天器、机器人榨汁机等等)都依赖于定义与他人进行通信的方式的接口。极小的差异也会导致混乱。——Charles Duan

比特币(2008 年)

激发人们对某种货币的信心的代码

d8005f82-2b2c-11ec-82a8-dac502259ad0.png

点赞按钮(2009 年)

它催化了监视经济。

d827e3a4-2b2c-11ec-82a8-dac502259ad0.png

Facebook 设计的点「赞」按钮,使我们可以向世界展示我们的喜欢《辛普森一家》或炸薯条。但实际上,它利用了我们的认知偏见和设计的力量,诱使我们分享更多的信息。它们利用上面提到的跟踪像素在互联网上跟踪我们,收集有关我们浏览习惯的数据。然后,Facebook 利用该信息,并将其行为定位算法卖给广告商。如果一家户外用品公司想要做广告,那么 Facebook 可以锁定那些「点赞」远足信息、访问露营网站以及有户外朋友的人。当这些用户给公司的广告点赞时,该信息就会反馈到定位算法中。因此,监视和商业操纵会形成循环。都是因为一个小小的蓝色竖起大拇指。——Ari Ezra Waldman,纽约法学院教授

波音 737 Max(2017 年)

软件错误加上公司贪婪,导致数百人丧生,大批飞机停飞

2018 年 10 月,狮航 610 航班起飞后不久就坠入海中。波音向公众保证飞机是安全的,并表示需要更多的飞行员训练和「软件升级」。但是仅仅四个月后,埃塞俄比亚航空又有一架飞机失事。飞行员努力将机头抬起 20 次,但飞机的自动系统却将机头往下拉。起飞后几分钟内,就机毁人亡。全球航空当局当即将飞机停飞。调查显示,坠机事故是由 737 Max 的设计引起的,尤其是那些鲜为人知的软件,可能迫使飞机不断俯冲。——Mar Hicks,技术史学家,《Programmed Inequality (http://www.amazon.com/dp/0262535181/?tag=slatmaga-20)》作者。

原文链接:https://slate.com/technology/2019/10/consequential-computer-code-software-history.html

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4813

    浏览量

    68838
  • 编译器
    +关注

    关注

    1

    文章

    1640

    浏览量

    49210

原文标题:盘点那些改变世界的代码

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    盘点NVIDIA 2024年的创新成果

    在2024年,AI 的影响力已经扩展到加速计算和数据科学等多个关键领域,成为驱动各行各业技术革新和产业升级的关键因素。在这一年里,NVIDIA 又带来了哪些创新成果,实现了哪些突破?跟随本文一起盘点 NVIDIA 2024 年重要发布。
    的头像 发表于 01-02 14:32 183次阅读

    华宝新能荣获2024年IT影响中国“年度影响力企业奖”

    近日,2024年度IT影响中国评选结果正式揭晓,深圳市华宝新能源股份有限公司凭借其强大的品牌、卓越的技术创新能力以及在全球市场的广泛影响力,荣获“年度影响力企业奖”。
    的头像 发表于 12-26 09:36 180次阅读

    云英谷科技荣膺2024中国半导体企业影响力百强

    》、《2024中国半导体企业影响力百强》和《2024中国集成电路新锐企业50强》。云英谷科技荣膺2024中国半导体企业影响力百强企业。
    的头像 发表于 12-12 15:01 356次阅读

    迅镭激光荣获激光行业影响力企业奖

    第七届“红光奖”2024年度激光行业创新贡献奖颁奖典礼在深圳国际会展中心洲际酒店隆重举办。迅镭激光在本届评选中,凭借卓越实力和行业影响力荣获“激光行业影响力企业奖”!
    的头像 发表于 09-12 14:55 363次阅读

    华工正源荣获CFCF2024年度光通信最具影响力双奖

    日前,第九届CFCF光连接大会暨2024年度光通信最具影响力产品颁奖典礼在苏州召开。经和弦信息产业研究中心C&C及专家团综合评审,华工科技子公司华工正源以卓越的产品再次位列影响力榜单。
    的头像 发表于 09-06 10:35 583次阅读

    大联大荣获第七届蓝点奖之国际影响力品牌奖

    致力于亚太地区市场的国际领先半导体元器件分销商---大联大控股凭借着在全球市场中卓越的品牌效能和超高的行业认可度,荣获第七届蓝点奖之国际影响力品牌奖。   该奖项由深圳电子商会主办,旨在表彰近年来在
    的头像 发表于 06-06 18:14 1140次阅读

    罗克韦尔自动化荣登2024年《财富》中国ESG影响力

    近日,《财富》发布“2024 年中国 ESG 影响力榜”,今年是《财富》连续第三年编制这一榜单,并首次向在华外企开放申报。
    的头像 发表于 05-31 09:18 519次阅读
    罗克韦尔自动化荣登2024年《财富》中国ESG<b class='flag-5'>影响力</b>榜

    蔚来入选2024年《财富》中国ESG影响力

    5月13日,《财富》(中文版)发布了2024年中国ESG(环境、社会和公司治理)影响力榜,蔚来入选。
    的头像 发表于 05-15 10:47 422次阅读

    立讯精密荣登《财富》中国ESG影响力榜单

    《财富》中国ESG影响力榜揭晓,立讯精密荣登榜单
    的头像 发表于 05-14 14:35 412次阅读
    立讯精密荣登《财富》中国ESG<b class='flag-5'>影响力</b>榜单

    京东集团连续第三年入选《财富》中国ESG影响力

    5月13日,《财富》发布了“2024年中国ESG影响力榜”,京东集团以其在环境、社会和公司治理(ESG)方面的卓越表现,连续第三年名列榜单。
    的头像 发表于 05-14 14:25 629次阅读

    广汽集团登上2024年《财富》中国ESG影响力

    5月13日,2024年《财富》中国ESG(环境、社会、管治)影响力榜揭晓,广汽集团入选。这也是广汽集团连续3年登上该榜单。
    的头像 发表于 05-14 09:22 620次阅读
    广汽集团登上2024年《财富》中国ESG<b class='flag-5'>影响力</b>榜

    格灵深瞳名列「智慧校园体育品牌影响力综合评价」榜首

    5月9日,由新京报教育事业部联合千龙智库舆情风险评估治理中心共同发布的《2023年度智慧教育品牌影响力分析报告》新鲜出炉。
    的头像 发表于 05-10 14:05 399次阅读
    格灵深瞳名列「智慧校园体育品牌<b class='flag-5'>影响力</b>综合评价」榜首

    2023 “IBM 影响力”报告

    4月 11日,IBM 发布 2023年“IBM 影响力”报告。该报告总结了公司 2023年在环境、社会和治理 (ESG) 方面实施的举措、合作伙伴以及投资情况,以便持续推进构建更加可持续未来的目标
    的头像 发表于 04-21 09:36 638次阅读

    谷东科技入榜“广州企业创新影响力TOP100榜(2023)”

    近日,广州日报数据和数字化研究院(GDI智库)发布 “广州企业创新影响力TOP100榜(2023)”。
    的头像 发表于 03-15 10:03 617次阅读
    谷东科技入榜“广州企业创新<b class='flag-5'>影响力</b>TOP100榜(2023)”

    天合储能获得“储能影响力电池供应商奖”和“储能影响力系统集成商奖”

    2月27日,2024年中国储能技术创新应用峰会暨“北极星杯”储能影响力企业评选典礼在浙江宁波成功召开。
    的头像 发表于 03-01 10:33 429次阅读
    天合储能获得“储能<b class='flag-5'>影响力</b>电池供应商奖”和“储能<b class='flag-5'>影响力</b>系统集成商奖”