现已发布!阅读有关 11 月的新功能和修复的信息。

笔记本的成熟

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 Notebooks 之类的工具已成为数据科学社区事实上的工具。它们被广泛使用和喜爱,从虚拟草稿本、数据准备任务到复杂的机器学习模型开发。

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

新 UI,无警告

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

如果您使用的是 Insiders 版本,您就可以在体验演变过程中一路跟随我们。在 Stable 版本中,我们有 40% 的用户在使用新的笔记本体验。反馈总体上是积极的。因此,像 Nigel Tufnel 一样,我们决定将音量调到 11 并将每个人都迁移到新的实现。

不幸的是,正如您很快告诉我们的那样,我们在几乎没有警告的情况下为您进行了过渡。您当时正在使用 Jupyter Notebooks 进行工作,清理和分析大量数据集来建模宇宙的膨胀,而我们颠覆了您的世界。您喝了一杯咖啡,启动了 VS Code,然后“砰”的一声,您的笔记本体验就变得...不同了。

尽管我们很高兴在 VS Code 中引入新的体验,但是当您早上启动该工具时,诸如此类的意外并不是您所期望的。为此,我们深表歉意。有更好的方法来推出更改,让每个人都知道正在发生的事情、原因和时间。

但它有所不同!

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

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

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

生态系统

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

未来一片光明

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

我们相信,扩展 VS Code 的丰富编码体验和生态系统,使其包含全面的 Jupyter Notebook 支持,可以为您的日常开发带来强大的新见解。 我们在 7 月的发行版中提供了一些很棒的新体验,请尝试一下,并告诉我们您的想法(好的和坏的!)。您的反馈对于帮助我们构建尽可能好的产品至关重要。

谢谢!

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

笔记本愉快!