现已推出!阅读 10 月份的新功能和修复。

笔记本的成熟

2021 年 8 月 5 日,作者 Chris Dias,@chrisdias

一种(并非如此)新的开发方式

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

An image of a notebook that analyzes data from the Titanic shipwreck

好吧,它并不完全是全新的。Donald Knuth 在 1984 年提出了 文学编程 的概念,Wolfram Mathematica 在 1988 年引入了 由内核驱动的笔记本 UI

在过去十年中,我们见证了笔记本使用量的爆炸式增长,尤其是在数据科学兴起之后。Jupyter Notebook 等工具已成为数据科学界的事实标准工具。它们被用于并受到喜爱,从虚拟草稿板、数据准备任务到复杂机器学习模型开发,无所不包。

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

新 UI,没有警告

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

如果您使用的是 内部版本,您已经能够随着我们不断发展体验而紧跟其后。在稳定版中,我们有 40% 的用户使用新的笔记本体验。反馈总体上是积极的。因此,就像 Nigel Tufnel 一样,我们决定 将音量调到 11,并将每个人都迁移到新的实现。

不幸的是,正如您迅速告诉我们那样,我们几乎没有预兆地为您完成了过渡。您正在使用 Jupyter Notebook 工作,清理和分析那个庞大的数据集以模拟宇宙的膨胀,而我们却颠覆了您的世界。您拿了一杯咖啡,启动了 VS Code,然后“砰”地一声,您的笔记本体验就……不同了。

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

但它有所不同!

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

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

例如,在代码单元格中编写代码应该感觉与在成熟的文本编辑器中编写代码相同,无论您使用哪种语言。设置不应特定于笔记本。快速修复、大纲、源操作、重构、多光标、自动换行、缩小和展开选择、列选择模式、更改大小写以及其他编辑器体验应该相同。您最喜欢的编辑器扩展,例如 括号对颜色化 和代码片段,应该正常工作。您应该能够以图形方式并排比较笔记本,就像您今天对源文件所做的那样。

生态系统

此外,我们设想为笔记本提供一个丰富的扩展生态系统。您应该能够像发现主题和新的语言支持一样,在 Marketplace 中搜索内核或自定义可视化器。我们的 API 甚至支持为新域创建自定义(非 Jupyter)笔记本。例如,REST Book 扩展允许您编写和持久化 REST 调用,并提供针对输出的自定义可视化效果(例如 JSON、HTML 和自定义文档)。如前所述,GitHub 问题笔记本 允许您创建不同问题查询的笔记本,以管理您的项目,就像我们所做的那样

未来一片光明

为了完成隐喻,VS Code 中的笔记本已经从那些 令人尴尬的青少年时期 成长为(年轻)成年期,自信而强大,拥有光明的前途。如果您从 Jupyter 迁移到 VS Code 笔记本,可能需要进行一些调整,但我们希望最终它将是值得的。而且,正如我们一直努力做的那样,您可以通过设置自定义体验(在设置编辑器中搜索 @tag:notebookLayout)。

我们相信,将 VS Code 丰富的编码体验和生态系统扩展到包括全面的 Jupyter Notebook 支持,对于将强大的新见解融入您的日常开发来说是一个很棒的工具。我们在 7 月份的版本中提供了一些很棒的新体验,请试用一下,并告诉我们您的想法(好的和坏的!)。您的反馈对于帮助我们打造最好的产品至关重要。

谢谢!

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

祝您使用笔记本愉快!