译文 | 推荐信:程序排错

栏目: 软件资讯 · 发布时间: 6年前

内容简介:按:我在软件行业工作,这意味着我活在一个然而,有些代码的工作方式是看得见的。如今世上很多东西的运行依赖于

按: 《推荐信》 (Letter of Recommendations)是《纽约时报杂志》的固定专栏之一,每周选取一件事物或一项活动进行「推荐」,栏目副题是「颂扬被忽视或低估的物件和体验」(celebrations of objects and experiences that have been overlooked or underappreciated)。除了本周的「程序排错」,近期获得推荐的对象还包括 「洗碗」 「迷信」 「偷听」 「陪审」 「开渠」 等。

我在软件行业工作,这意味着我活在一个 由计算机代码统治 的世界里。这些代码很多是私有、保密的。你看得到它的运行成果,却看不到它的运作方式,除非你在开发这个软件的公司上班。

然而,有些代码的工作方式是看得见的。如今世上很多东西的运行依赖于 「开源」代码 ,开源的意思是根据代码许可条款,它是免费且可以重复使用的。Firefox 浏览器,以及 Chrome 和 Safari 浏览器的主要组件都是开源的;一些操作系统整个都是开源的,macOS 的核心部件亦然;还有服务器软件,它们支撑着我们的数字云端,为手机提供数据,将我们包裹在或好或糟的环境中——这些软件 大多数 也是开源的。如果你是在网上读这篇文章,那你几乎肯定就正在使用开源代码。

开源殿堂的大门永远都是敞开的。你可以通过 GitHub 这类网站(建立在称为 Git 的版本控制软件基础上;Git 是由 Linus Torvalds 创作的,他同时也是 Linux 系统的创始者)走进这扇门。GitHub 提供着数量过亿的各种代码仓库。GitHub 的所有者是微软,这本身又是一个沧海桑田的印记:微软曾经还在公司备忘录里写过如何摧毁自由软件。

在 2019 年,你可以追踪到任何人对代码库所做的每一次改动,无论他们是在改一个错字还是改动 5000 个文件。你可以看到是谁做了改动,可以读到对这次改动的描述。如果什么功能突然失灵了,你可以回溯到一个早先的版本,然后找出原因。

21 世纪的秘史写在代码的「提交」(commit)记录里——「提交」是 程序员 对错误修复和功能更新等改动的称呼。我喜欢像读报纸一样去读提交记录,特别是那些我自己用的软件。我这么做,部分原因是想知道今天能实现什么昨天还不能的事情。细节能积少成多;或许是多了一种用方向键操作的方式,能让我每天省下几分钟时间,或许是多了一项搜索功能,让我能更好地整理邮件。

在每一次提交中,你都能看到代码怎样成长、变动、响应世界的变化:「使图片缩放功能不依赖于 eww 中的 ImageMagick 支持」( Emacs 文本编辑器)。「禁用十六进制输入框中的自动填充/自动补全/拼写检查」(一个名为 Make8BitArt.com、运行在浏览器中的像素编辑器)。「修正了按下 Alt + 其他按键时响铃的问题(#1006)」(微软的命令行终端应用)。

我并不期待一个编程外行能理解上面这些话,但你能凭直觉理解发生了什么变化:我们不再需要用 ImageMagick 来缩放图片了;对十六进制数值进行拼写检查是件坏事,因为十六进制是用来指定颜色的;按下 Alt 键的时候响铃提示会变得很诡异;等等。

但阅读排错记录还有些更重大、更令人愉悦的意义。

我用的文本编辑器 Emacs 是一个可以上溯到四十多年前的 自由软件项目 ;它的代码库创建于八十年代,写这篇文章时,它距今已有 136,586 次提交记录。超过 600 位贡献者参与过工作。这些数字让我感到神奇:一套可以编辑各类文件的巨大、复杂的系统就这样从无到有,随着接近 14 万次有记录的人类活动,发展到如今的规模。这个工程有指挥、却没有主人,顺着人们所选择的路径发展。它是代码版的忒修斯之船。我日常使用 Emacs 大概已经二十多年了,它也改变着我。它会比我更长寿。

开源软件是一项运动,但即使有志慈善的人都可能管它叫一种极端的抱团。戏剧色彩是少不了的。人们在提交记录中争斗,小到争论一个分号,大到争论行为守则。但争到最后,软件只分能用和不能用。有些东西,比如政治、个人健康、职业,或者整个人生,都无法让我们阐述出一条不掺杂质的发展轨迹。但软件就可以,而且 正是 这么被阐述的。观察代码的变动和改进是件乐事,而观察大公司、受雇和自发的程序员学会携手修改和改进代码,同样令人着迷(国防部也深入参与了开源项目)。读着代码的修改记录,我在心里想的是: 人类是办得成事的。

立场使然,技术主义者往往建议我们将一切都变得像 Git 一样[有迹可循]:国会立法、新闻报道,等等。有时候,我也希望「真」新闻能像 GitHub 一样运作。但这怎么实现得了呢?美国文化没有一个集中的代码仓库,也没有一份源代码。大多数人都不会在生活中感念,「如果人生如软件该多好。」如果你热爱科技,这是你要努力学会的一课。

我喜欢研究事物是如何被创造的。这也是软件教会我的重要一课:开源代码和版本控制让人的活动记录成为了软件最重要的文档。我们往往被教导「眼不见为净」。如果说的是立法、电视剧、炸鸡、并购,那确实不要刨根问底为好。但对软件不能这么说,因为软件是永无终点的。观察软件的提交记录,你就能看到它的故事被充实起来。或者,你就能自己构想出它的故事。

关于作者:Paul Ford 是数字产品开发公司 Postlight 的创始人之一、首席执行官,公司总部位于纽约。他也是科技散文作者。

本文 原文 发表在 2019 年 6 月 16 日的《纽约时报》周日版杂志上,标题为《程序排错》(Bug Fixes)。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Clean Architecture

Clean Architecture

Robert C. Martin / Prentice Hall / 2017-9-20 / USD 34.99

Practical Software Architecture Solutions from the Legendary Robert C. Martin (“Uncle Bob”) By applying universal rules of software architecture, you can dramatically improve developer producti......一起来看看 《Clean Architecture》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具