笔记本时代的到来

2021 年 8 月 5 日,克里斯·迪亚斯 (Chris Dias),@chrisdias

一种(不那么)新的开发方式

笔记本(包含文本、可执行代码以及该代码的输出的文档)是一种有趣且令人兴奋的新开发方式。

分析泰坦尼克号沉船数据的笔记本图像

好吧,这并不是全新的。Donald Knuth 于 1984 年提出了Literate Programming的概念,Wolfram Mathematica 则于 1988 年推出了由 Kernels 提供支持的 Notebook UI

在过去的十年中,我们看到笔记本电脑的使用呈爆炸式增长,尤其是随着数据科学的兴起。Jupyter Notebooks 等工具已成为数据科学社区事实上的工具。它们被广泛用于从虚拟暂存器、数据准备任务到复杂的机器学习模型开发等各个方面。

我们看到的一个有趣的趋势是,数据科学和机器学习正在成为一项团队运动:开发人员越来越多地与数据科学家合作,为模型训练准备数据集,重构用于生产的探索性代码,并将模型推理集成到他们的核心产品中。我们自己的团队每天分析大量的使用数据,并使用Jupyter 笔记本来跟踪、分析和验证假设。我们使用特定于域的笔记本 ( GitHub Issues ) 来跟踪 GitHub 存储库中的问题和工作项,从而深入了解每月发布 VS Code 的准备情况。笔记本现在对于我们运行 VS Code 项目至关重要。

新用户界面,无警告

我们一直在努力将笔记本支持构建到 VS Code 的核心中,以使它们更快、更安全,并允许您最喜欢的 VS Code 扩展在其中运行。作为这项工作的一部分,我们还对用户体验进行了更改,使笔记本感觉像是该工具的一个组成部分,而不是像早期工作那样是一个附加组件。

如果您使用Insiders 版本,您就能够跟随我们不断改进体验。在稳定版上,我们有 40% 的用户体验了新的笔记本电脑体验。反馈普遍是积极的。因此,像 Nigel Tufnel 一样,我们决定将音量调至 11,并让每个人都继续进行新的实施。

不幸的是,正如您很快告诉我们的那样,我们在几乎没有任何警告的情况下为您进行了转换。您正在使用 Jupyter Notebooks 进行工作,清理和分析海量数据集以模拟宇宙的膨胀,而我们则颠覆了您的世界。你喝了一杯咖啡,启动了 VS Code,然后“轰”地一声,你的笔记本体验变得……不同了

虽然我们很高兴在 VS Code 中引入新体验,但当您早上启动该工具时,这样的惊喜并不是您所期望的。对此,我们深表歉意。有更好的方法来推出变革,让每个人都了解正在发生的事情、原因和时间。

但不一样!

VS Code 中笔记本的原始版本非常接近经典的 Jupyter Notebooks 体验,它的外观和行为几乎相同。这是一个合理的起点,一种温暖、舒适、熟悉的体验。然而,当我们更多地了解 VS Code 用户如何使用笔记本和工具的其余部分时,我们意识到这两种体验需要更多相似而不是不同。

VS Code 中的笔记本应该感觉很自然,以便您可以在编写代码文件和使用 Python 建模宇宙的笔记本之间无缝切换。这意味着 VS Code 中的笔记本尽可能地利用内置隐喻和熟悉的键盘快捷键。

例如,无论您使用哪种语言,在代码单元中编写代码的感觉都应该与在成熟的文本编辑器中编写代码的感觉相同。设置不应特定于笔记本电脑。快速修复、大纲、源操作、重构、多光标、自动换行、缩小和展开选择、列选择模式、更改大小写和其他编辑器体验应该相同。您最喜欢的编辑器扩展(例如Bracket Pair Colorizer和 Snippets)应该可以正常工作。您应该能够以图形方式并排比较笔记本,就像今天处理源文件一样。

生态系统

此外,我们还为笔记本电脑设想了一个丰富的扩展生态系统。您应该能够像发现主题和新语言支持一样在 Marketplace 中搜索内核或自定义可视化工具。我们的 API 甚至支持为新域创建自定义(非 Jupyter)笔记本。例如,REST Book扩展允许您使用自定义输出可视化(例如 JSON、HTML 和自定义文档)编写和保留 REST 调用。如前所述,GitHub 问题笔记本允许您为存储库创建不同问题查询的笔记本来管理您的项目,就像我们一样

未来看起来一片光明

为了完成这个比喻,VS Code 中的笔记本已经从那些笨拙的青少年时期成熟到(年轻的)成年期,自信而坚强,拥有光明的未来。如果您从 Jupyter 迁移到 VS Code 笔记本,则使用 VS Code 笔记本可能需要一些调整,但我们希望最终是值得的。@tag:notebookLayout而且,正如我们一直尝试做的那样,您可以通过设置自定义体验(在设置编辑器中搜索)。

我们相信,扩展 VS Code 丰富的编码体验和生态系统以包含全面的 Jupyter Notebook 支持,将成为一个出色的工具,为您的日常开发带来强大的新见解。我们在 7 月版本中提供了一些很棒的新体验,请尝试一下并让我们知道您的想法(好的和坏的!)。您的反馈对于帮助我们打造最好的产品至关重要。

谢谢!

Jim、Joe、Kai、Chris 和 VS Code 团队

笔记本快乐!