查看原文
其他

研究老式计算技术的乐趣

CSDN 2023-01-10

【CSDN 编者按】对于哪些早已过时,淘汰掉的机器,为什么还有人乐此不疲地去研究呢?为什么有些技术被自己的“主人”放弃很久之后,仍然有人愿意付出如此多的努力来保持或复兴这些技术呢?除了怀旧之外,也许还有一个主要原因:逃离如今令人疲惫不堪的数字环境。

原文链接:https://github.com/readme/featured/vintage-computing

作者:KLINT FINLEY  译者:弯月

出品 | CSDN(ID:CSDNnews)

2005 年,Morgan Aldridge 购买了一部  Apple Newton,这是在 iPhone 问世之前,苹果推出的一部掌上电脑,于 1993 年首次发售并于 1998 年停产。对于 Morgan Aldridge 来说,这部古老的设备是能够满足他的需求的最佳工具。
他解释道:“我使用过 Palm Pilots,那是当时最流行的数字设备,而且我知道这种设备存在同步问题。”此外,当时市场上的大多数其他手持设备都使用了廉价的 RAM 内存,如果断电,内存的数据就会丢失,需要从桌面备份中恢复。

Aldridge 的研究让他想到了 Apple Newton,这种设备使用的是固态存储,可以无限期地保存数据,就像现代智能手机一样。根据用户报告,有人将  Newton 设备扔在抽屉或壁橱里,多年以后打开电源时发现所有数据依然完好无损。此外,他发现 Newton 社区仍在积极地为该平台开发驱动程序和软件。因此,他买了一部 Newton Message Pad,直到进入智能手机时代,他还在使用这部旧设备。如今,Aldridge 使用 iPad 作为主要的数字设备,但他仍在积极参与维护 NewtonScript 资源网站(http://newtonscript.org/)和 United Network of Newton Archives(http://www.unna.org/)。

多亏了开源,任何技术只要社区继续支持就不会过时。你可以用电脑来更新 Newtons 和 Palm Pilots ,为早已停产的操作系统下载网络浏览器,或者通过 WiFi 将 Apple IIe 等老式计算机连接到现代互联网。每年,任天堂和 Game Boy 等老式视频游戏机都会推出新游戏卡。

人们在努力帮助旧软件和在线平台保持活力。Dreamwidth 团队在早期的社交网络 LiveJournal 旧版源代码的基础之上建立了分叉,并围绕它构建了一个社区。BBS 系统软件 WWIV (https://github.com/wwivbbs/wwiv)至今仍在维护,而且还有许多BBS的爱好者(https://www.telnetbbsguide.com/bbs/list/detail/)。另外,还有一些团队正在努力恢复 AOL 和 Prodigy 等早期在线服务。你仍然可以使用 Gopher,这是一种超文本协议,虽然只在上个世纪 90 年代初短暂地出现过,但它的规模比 Web 更大。

开发人员在这类项目上花费了大量时间,而且通常都不指望获得经济回报。那么,为什么在这些技术被自己的“主人”放弃很久之后,仍然有人愿意付出如此多的努力来保持或复兴这些技术呢?除了怀旧之外,也许还有一个主要原因:逃离如今令人疲惫不堪的数字环境。此外,这些老式技术非常有趣,可以帮助开发人员更好地了解计算机科学及其发展历史。我们可以从“旧方法”中吸取经验和教训。

与老式计算技术互动


老式计算技术承载了厚重的历史感。一方面,软件和数字内容是最容易保存的文化产出之一,因为复制和备份非常简单。但随着平台停产,实际运行这些软件将会成为一种挑战。

长期以来,模拟器为我们提供了一种在新平台上运行旧软件的方法,当我们很难找到一些停产的硬件和操作系统时,就可以考虑使用模拟器。你可以使用 MAME 或 RetroArch 玩复古游戏,使用 DOSBox 中最受欢迎的 Lotus Agenda 个人信息管理器管理联系人,或者在浏览器中运行旧的 Palm 应用程序。这些项目背后的开源社区努力尽可能准确地模拟必要的硬件和软件层。然而,网络软件本质上更难流传下来,因为它们不仅依赖本地软件,而且还依赖服务器端的软件。例如 LiveJournal 的后端代码在 2014 年之前都是开源的,因此不仅这些代码可以流传下来,而且还可以创建 Dreamwidth 这类的分支。Gopher 不是集中式服务,而是一种协议,很像 HTTP,因此创建现代 Gopher 客户端和服务器非常简单。但历史上流行过的一些很重要的大规模网络服务却依赖于专有软件,而运行这些软件的服务器早已关闭了。

早期的在线服务,比如 AOL/Quantumlink、Compuserve 和 Prodigy,鼎盛时期拥有数百万用户,不仅提供软件、游戏、艺术品,还有无数的在线讨论。在智能手机和无处不在的互联网出现之前,这些拨号服务提供了许多如今我们习以为常的数字体验,包括在线新闻、天气预报、体育赛事、股市行情、多人游戏、电子邮件、聊天,乃至在线百科全书。

虽然屏幕截图帮忙记录了这些服务的样子,但为了更好地了解这些服务及其在计算发展历史中的地位,我们最好能够实际浏览一下服务的菜单结构并与各种功能交互。

记者兼计算机历史学家 Benj Edwards 于 2014 年在《大西洋月刊》中发表的一篇关于恢复丢失的 Prodigy 内容的文章中写道,“当某个大规模的在线服务消失时,人类文明中的一部分文化结构也会随之消失。”

Prodigy 在计算发展史上具有特殊的意义。在那个其他在线服务都以文本为基础且很难使用的年代,Prodigy 不仅提供了图形界面,而且还开拓了数字广告、电子商务以及在线旅游预订等。早在亚马逊出现之前,Prodigy 就实现了在线购买衣服、家庭用品、电子产品,甚至杂货。Edwards 在他的文章中解释说,Prodigy 爱好者 Jim Carpenter 意识到这款服务没有很好的文档记录,甚至连截屏都很难获得。幸运的是,Carpenter 发现 Prodigy 在本地缓存文件中存储了大量内容,于是他从旧计算机中恢复许多图像。最近,一张 Prodigy 演示光盘被上传到 Internet Archive。虽然这段演示没有连接到服务器,但你可以通过浏览器探索一些功能。

2019 年,程序员 Phillip Heller 读到了 Edwards 的文章,并决定参与 Prodigy 保护项目。他想在离线演示的基础上更进一步,让用户实际使用 Prodigy。Heller 说:“Benj 和 Jim 认为重建 Prodigy 服务器是一个遥远而困难的目标,但我认为这是一个有趣的挑战。”

结果,他真的创建了一个可与 Prodigy 兼容的后端:Prodigy Reloaded(https://github.com/ProdigyReloaded)。Heller 使用在 DOSBox 中运行的 Prodigy 客户端的一个旧副本连接到 Prodigy Reloaded 服务器,并演示了新闻和天气服务等功能。Heller 从截屏中挑选了一些当年的新闻标题和天气预报来填充这些功能,但他希望将来能够添加实时新闻、天气预报和股票动态等功能。


研究老式计算技术的乐趣


Heller 说,保护这些老式计算技术只是他创建 Prodigy Reloaded 的原因之一。他表示:“研究老式计算技术很有趣,就像拼一个难度非常大的拼图,我只有一些边角块,没有中间的部分。我必须尝试各种形状,拼出图片的其余部分。”

乐趣和学习是最常见的尝试此类项目的原因之一。老式计算技术爱好者 Cameron Kaiser 表示:“我认为,很多人热衷于复古计算技术最主要的原因是,这些技术可以让你领略到那个时代计算机所做的一切”。他维护着 Floodgap,这台服务器和网站托管着最有名的现代 Gopher 服务器之一,以及 PowerPC 网络浏览器 TenFourFox 和许多其他项目。

Newton 模拟器 Einstein(https://github.com/pguyot/Einstein)的贡献者 Matthias Melcher 表示:“如今的计算机如此复杂,我们穷尽一生也无法完全掌握。Newton 或 Game Boy 是最后一个我们可以完整地理解的系统,从 CPU 到机器代码。”

游戏开发者 Rebecca Heineman 曾表示:“如果你真的想了解计算机,首先要从一台经典旧机器开始。只有真正了解指令集、栈、内存管理、硬件及其所有的交互,你才能真正明白计算机的局限性。”

事实上,许多计算机科学课程都使用 Game Boy 文档作为微处理器架构的教材,因为其架构小而简单,可以让学生们理解透彻。Game Boy 开源开发计划 gbdev 的领导者 Antonio Vivace 表示:“你可以通过 Game Boy 学习如何使用硬件和真实的输出,编写汇编代码以及低级编程。当尝试用 Game Boy 开发一些高级功能时,你将有机会学习一些很难掌握的计算机科学概念,让一些本来不怎么有趣的工作变得十分有趣。”

如今的高科技日益复杂,范围已从计算架构扩展到软件和网络。现代浏览器支持加密协议、JavaScript 渲染、各种多媒体格式等等。技术专家兼企业家 Jan Kammerath 认为:“你很难掌握浏览器中的一切。”而他也因此开始接触现代 Gopher。

Gopher 诞生于 1991 年,能提供类似于 Web 文本页面的体验。Gopher 服务器上的文件可以链接在一起,或链接到其他服务器的文件上。Gopher 甚至还有一个搜索引擎。这一切在当时都是十分前卫的。链接到别人的计算机是一件不可思议的事情,无论是 BBS 之类的拨号服务器还是互联网上的 FTP 服务器。更令人兴奋的是从一台服务器跳转到另一台服务器,通过一个链接跳转到其他链接,最后到达一个意想不到的地方。Gopher 让这个世界看到了如今网上的许多新事物。至少在理论上,任何人都可以托管自己的 Gopher 服务器,而且还可以托管任何内容,供其他人访问。

Gopher 平台曾一度大放异彩,但随着 HTTP 和 Web 浏览器逐渐发展强大,就逐渐消失了。近年来,Gopher 突然成功地卷土重来。Kaiser 的 Gopher 搜索引擎 Veronica-2 的活跃服务器的数量在 2017 年~2018 年间几乎翻了一番,从 133 台增加到 260 台。截至 2022 年 11 月 15 日,该引擎为 343 台 Gopher 服务器提供了索引服务,略低于 2020 年的峰值 395 台,但依然很强劲。

Kaiser 指出,数字化生活的挑战——从混乱的界面到被过量的信息淹没——是一些人转向 Gopher 和其他互联网旧平台的原因。Kaiser 表示:“很多人都在寻找现代网络的替代品,但我认为 Gopher 服务器数量激增包含很多原因,我认为这更像是一种网络效应。”也就是说,Gopher 的服务器越多,使用 Gopher 的人就越多;而使用 Gopher 的人越多,自己搭建 Gopher 服务器的人就越多。

Kaiser 的 Floodgap Gopher 服务器提供每日新闻提要、天气预报、到其他 Gopher 站点以及 Veronica-2 搜索引擎的链接。我们可以通过 Floodgap 一窥早期互联网的样子。Kammerath 对此很感兴趣,但他发现以现代标准来看,Gopherspace 的浏览体验有点繁琐。他说:“所以,我认为自己动手编写一个 Gopher 客户端是一个很有趣的小练习。”这就是 Gophie 的创建初衷,这是一个简单的跨平台 Gopher 客户端。

Kammerath 认为:“构建一个 Gopher 客户端,或者只是研究协议,对于人们了解网络工作原理的基础知识很有帮助。Gopher 比 HTTP/3(HTTP 的当前版本)更加简单,因此更容易理解不同层之间的交互方式。”

Gopher 不支持 cookie 和标头等许多现代 Web 功能,尝试 Gopher 还可以帮助开发人员理解为什么要添加这些功能。Kammerath 说:“如果花一些时间用旧工具开发旧平台,你会再次爱上现代工具。”


过去的教训


许多用户发现,研究老式计算技术的好处不仅限于学习。Alridge 于 2005 年购买了一台 Apple Newton,但并不是出于怀旧之情,也不是出于想要记录部分科技历史的冲动。他认为与市场上的其他数字设备相比,Apple Newton 更加适合他的需求。有时,旧技术能够提供当代技术所无法提供的价值。

Kaiser 表示:“我运行 Gopher 服务器不只是为了学习历史,我喜欢 Gopher,每天都在使用。有些事情确实不能通过 Gopher 完成,比如登录我的银行账户。但大多数时候,使用 Gopher 更方便,比如查看天气预报和阅读新闻。因为 Gopher非常简单,我几乎可以在任何设备上运行 Gopher 客户端,甚至是旧的或低功率的计算机。”

老式技术爱好者经常讨论,在这些旧设备的限制下工作,迫使他们更加认真地思考如何高效利用资源。Heller 表示:“Prodigy 开发人员可以用很少的资源完成大量工作。他们在不到 640 KB的内存上实现了两台虚拟机。邮件程序只有大约 5 KB。就效率提升而言,这真的是让我们大开眼界。”

相比之下,如今的硬件如此强大,所以人们也不会太在意软件的性能优化。有人说:“硬件很便宜,程序员很贵”。Kaiser 表示:“我理解这种观点。如今大多数人都不会手工编写汇编代码,但别忘了这才是我们从硬件中榨取更多能量的最佳方式。这是一个有效的权衡。”他指出,越来越强大的计算机不仅仅会导致处理能力和内存的使用效率低下。

他说:“如今的发展趋势是,我们添加的功能越来越多,因此导致软件界面越来越混乱,越来越难以使用。我认为,这加重了用户的认知。”Gopher 最大的吸引力就在于,基于文本的界面比当今许多 Web 应用程序都要简单许多。

硬件性能并不是旧时代的应用程序相对简单的唯一因素。旧设备可以显示的界面种类也会受到限制。Melcher 表示:“Newton 和 Palm 应用程序只能使用小型黑白或灰度屏幕,因此设计师必须认真思考究竟显示什么。”

Game Boy 游戏制造商 GB-Studio 的创始人 Chris Maltby 指出,最初的 Game Boy 是黑白游戏,必须在小屏幕上显示简单的图形界面和声音,尽管如此游戏本身依然很有趣。他认为:“在构建软件时,我的部分工作就是处理这些非常复杂的东西,并通过简单的方式与它们交互。Game Boy 编程让我成为了更好的开发者。”

全新适配鸿蒙生态,Cocos引擎助力3D应用开发
黑客窃取 4 亿 Twitter 用户记录,勒索马斯克破财消灾
Python 虽已登峰,但尚未造极!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存