编程语言与软件工程2016vpri.org
2015 年的楔形文字泥板
The Cuneiform Tablets of 2015
入门 · 约 30 分钟读完前置知识:虚拟机基础、数字保存、文件格式
导读
这篇论文(VPRI/Alan Kay 小组)讨论数字信息如何跨越数百年甚至上千年留存:硬件与软件不断过时,今天的数据很可能像无人能读的楔形文字一样失传。作者主张用极简、自描述的虚拟机与文档格式来保存,让未来的"考古学家"能花一个下午重建运行环境,再借助自检程序还原出完整系统。
HN 关注点:数字保存的现实困境与"依赖最古老技术以保证长期可读"这一反直觉但合理的设计取舍。
HN 评论精选
这几条评论里:支持 1 补充 2 亲历 1
支持论文思路与 ICFP 2006 通用机竞赛高度一致,那个竞赛是现成的实证案例和资料库。
论文描述的做法是:让一位考古学家用一个下午实现一台虚拟机,再让这台虚拟机运行一个自检程序,该程序逐步扩展成完整系统——这正是 2006 年 ICFP 竞赛参赛者(扮演考古学家)所做的事:http://www.boundvariable.org 。我最近又回去玩那个比赛,那里有大量有趣的东西,包括面向通用机的 ML 编译器。这么小的一群人能为一场编程竞赛做出这些,真令人惊叹。
cmaes查看英文原文
The approach described in this paper: having an archeologist implement a virtual machine in an afternoon, and then having that virtual machine run a self-checking program that expanded to a full system, is exactly what contestants/archeologists in ICFP 2006 did. http://www.boundvariable.org I've been returning to the contest recently. There's a treasure trove of interesting stuff, including the ML compiler that targets the universal machine. It's amazing that such a small group of people created all that for a programming contest.
补充版权限制复制,反而加剧了数字资料的失传风险。
永久版权的一个可悲后果是:人们不再复制有趣的东西,于是它们面临彻底失传的风险。
WalterBright查看英文原文
One of the sad consequences of perpetual copyrights is that copies of interesting items are not being made, and hence risk getting lost completely.
补充长期可读性与兼容性的取舍在当今工程实践中已有先例。
我这个不关心 80 年代专有镭射影碟、但关心 2016 年生产的软件的人觉得,"依赖仍在使用的最古老技术"是个有趣(而且不算糟糕)的设计选择。Python 关于通用 Linux 二进制包的 PEP 就建议在古老的 Fedora 版本上构建以保证 ABI 兼容。仔细想想,支持众多不同的部署目标有点像时间旅行。
awinter-py查看英文原文
As someone who doesn't care about proprietary 80s laserdiscs but does care about software produced in 2016, 'depend on the oldest still-used technology' is an interesting (non-horrible) design choice. The python PEP for universal linux binaries advises building on an ancient version of fedora for ABI compatibility. If you think about it, supporting many different deployment targets is kind of like time travel.
亲历亲历者讲述 Domesday 项目的数据采集,并惋惜其未能保存。
我 12 岁时参与过 Domesday 项目。它动员学校参与,在地理老师和班级的帮助下协助全国的数据采集。我从没见过成品,很遗憾它没有被妥善保存下来。我期待档案工作者们的工作!
triplesec查看英文原文
I worked on the Domesday project as a 12-year-old. It enlisted schools, with the help of geography teachers and their classes, to assist with data gathering around the country. I never saw the finished thing, and I'm sad it was never properly preserved. I look forward to the work of archivists!
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2016Hacker News 讨论帖18 分 · 2 评
- 2016Hacker News 讨论帖147 分 · 34 评
同领域还值得读
Google 的软件工程(2017)
Software Engineering at Google (2017)
介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…
编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选Peter Naur:编程作为理论构建 (1985)
Peter Naur – Programming as Theory Building (1985)
Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…
编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选SciPy 1.0:Python 科学计算的基础算法
SciPy 1.0: fundamental algorithms for scientific computing in Python
这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…
编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选Lisp 的历史(1979)
History of Lisp (1979)
这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…
编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选使用 NumPy 进行数组编程
Array Programming with NumPy
这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。
编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选