一句话:提出计算笔记本引擎 Multiverse Notebook,支持在状态隔离下时间旅行回溯并用新代码重启。
计算笔记本是数据科学编程的事实标准工具,却因允许对运行中程序进行无限制的动态打补丁而饱受软件工程界批评,被认为导致代码混乱且不一致。本文首先通过 Kaggle 上的观察揭示,动态打补丁是数据科学编程中的自然需求而非单纯的坏习惯。为此作者开发了 Multiverse Notebook,一个支持时间旅行探索的计算笔记本引擎:用户可以在状态隔离下回溯到任意历史状态,并用新代码从该状态重新启动执行。文中提出了高效实现这种时间旅行探索的方法。最后,作者在来自 Kaggle 的十个真实数据科学任务上进行实证评估,结果表明 Multiverse Notebook 上的时间旅行探索具有合理的效率。
Computational notebook environments are popular and de facto standard tools for programming in data science, whereas computational notebooks are notorious in software engineering. The criticism there stems from the characteristic of facilitating unrestricted dynamic patching of running programs, which makes exploratory coding quick but the resultant code messy and inconsistent. In this work, we first reveal that dynamic patching is a natural demand rather than a mere bad practice in data science programming on Kaggle. We then develop Multiverse Notebook, a computational notebook engine for time-traveling exploration. It enables users to time-travel to any past state and restart with new code from there under state isolation. We present an approach to efficiently implementing time-traveling exploration. We empirically evaluate Multiverse Notebook on ten real-world tasks from Kaggle. Our experiments show that time-traveling exploration on Multiverse Notebook is reasonably efficient.
@article{paperbot2521,
title = {Multiverse Notebook: Shifting Data Scientists to Time Travelers},
author = {Shigeyuki Sato and Tomoki Nakamaru},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {OOPSLA1},
year = {2024},
doi = {10.1145/3649838}
}