在 VS Code 中试用

Notebook 的发展成熟

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

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

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

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

好的,这并非全新。Donald Knuth 在 1984 年引入了文学化编程的概念,而 Wolfram Mathematica 在 1988 年推出了由内核驱动的 Notebook UI

在过去十年中,Notebook 的使用量呈爆炸式增长,尤其是在数据科学兴起之后。像 Jupyter Notebook 这样的工具已成为数据科学界的事实标准工具。它们被广泛使用并深受喜爱,涵盖从虚拟草稿本、数据准备任务到复杂的机器学习模型开发等所有方面。

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

新 UI,无预警

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

如果您使用的是 Insiders 构建版,您就已经能够跟随我们一起体验这一演变过程。在稳定版中,我们有 40% 的用户在使用新的 Notebook 体验。反馈普遍是积极的。因此,就像 Nigel Tufnel 一样,我们决定将音量调到 11,并让所有用户都过渡到新的实现。

不幸的是,正如您迅速告知我们的那样,我们在几乎没有任何预警的情况下进行了此次过渡。您当时正在使用 Jupyter Notebooks 进行工作,清理和分析庞大的数据集以模拟宇宙的膨胀,而我们却将您的世界颠覆了。您拿起一杯咖啡,启动 VS Code,然后“砰”的一声,您的 Notebook 体验变得……不一样了

虽然我们很高兴在 VS Code 中引入新的体验,但像这样的意外并不是您早上启动工具时所期望的。为此,我们想表示歉意。有更好的方式来推出更改,以让每个人都了解正在发生什么、为什么发生以及何时发生。

但这不一样!

VS Code 中最初版本的 Notebook 与经典的 Jupyter Notebooks 体验非常接近,它看起来和行为方式几乎相同。那是一个合理的起点,一种温馨、舒适且熟悉的体验。然而,随着我们对 VS Code 用户如何使用 Notebook 和工具其余部分了解得更多,我们意识到这两种体验需要更多相似之处而非不同。

VS Code 中的 Notebook 应该感觉自然,这样您就可以在编写代码文件和使用 Python 构建宇宙模型 Notebook 之间无缝切换。这意味着 VS Code 中的 Notebook 会尽可能利用内置的比喻和熟悉的键盘快捷键。

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

生态系统

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

未来一片光明

为了完成这个比喻,VS Code 中的 Notebook 已从那些尴尬的青少年时期成长为(年轻的)成年期,充满自信和力量,前途光明。如果您从 Jupyter 迁移过来,使用 VS Code Notebook 可能需要一些调整,但我们希望最终会觉得物有所值。而且,正如我们一贯努力的那样,您可以通过设置(在设置编辑器中搜索 @tag:notebookLayout)自定义体验。

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

谢谢!

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

祝您 Notebook 使用愉快!