笔记本的成熟时代
2021年8月5日,作者:Chris Dias,@chrisdias
一种(不那么)新的开发方式
Notebooks——包含文本、可执行代码以及代码输出的文档——是一种有趣且令人兴奋的新开发方式。
好的,这并不是全新的。Donald Knuth在1984年引入了文学编程的概念,而Wolfram Mathematica在1988年引入了由内核驱动的笔记本用户界面。
在过去的十年中,我们见证了笔记本使用的爆炸性增长,尤其是在数据科学领域的崛起。像Jupyter Notebooks这样的工具已经成为数据科学社区中的事实标准工具。它们被广泛使用并受到喜爱,从虚拟草稿本、数据准备任务到复杂的机器学习模型开发。
我们观察到一个有趣的趋势是,数据科学和机器学习正在成为一项团队运动:开发者越来越多地与数据科学家合作,为模型训练准备数据集,将探索性代码重构为生产用途,并将模型推理集成到他们的核心产品中。我们自己的团队每天分析大量的使用数据,并使用Jupyter notebooks来跟踪、分析和验证假设。我们使用特定领域的笔记本(GitHub Issues)来跟踪GitHub仓库中的问题和工作项,提供每月发布VS Code的准备情况的洞察。笔记本现在对我们运行VS Code项目至关重要。
新用户界面,无警告
我们一直在努力将笔记本支持构建到VS Code的核心中,以使它们更快、更安全,并允许您最喜欢的VS Code扩展在其中工作。作为这项工作的一部分,我们还在引入用户体验的更改,以使笔记本感觉像是工具的组成部分,而不是像早期工作中那样作为附加组件。
如果您使用的是Insiders builds,您已经能够跟随我们体验的演变。在稳定版中,我们有40%的用户在使用新的笔记本体验。反馈总体上是积极的。因此,像Nigel Tufnel一样,我们决定将音量调到11,并将所有人推进到新的实现中。
不幸的是,正如您迅速告知我们的那样,我们在几乎没有警告的情况下为您进行了转换。您正在使用Jupyter Notebooks进行工作,清理和分析那个庞大的数据集以模拟宇宙的扩展,而我们却颠覆了您的世界。您拿起一杯咖啡,启动了VS Code,然后“砰”的一声,您的笔记本体验变得...不同了。
虽然我们对在VS Code中引入新体验感到兴奋,但像这样的惊喜并不是你早上启动工具时所期望的。为此,我们深表歉意。有更好的方式来推出更改,让每个人都能了解发生了什么、为什么以及何时发生。
但这不一样!
VS Code 中笔记本的原始版本非常接近经典的 Jupyter Notebooks 体验,它的外观和行为几乎相同。这是一个合理的起点,一个温暖、舒适且熟悉的体验。然而,随着我们更多地了解 VS Code 用户如何使用笔记本以及工具的其余部分,我们意识到这两种体验需要更加相似而不是不同。
在VS Code中的Notebooks应该感觉自然,这样你就可以无缝地在编写代码文件和用Python建模宇宙的Notebook之间切换。这意味着VS Code中的Notebooks尽可能利用内置的隐喻和熟悉的键盘快捷键。
例如,在代码单元中编写代码应该与在成熟的文本编辑器中编写代码感觉相同,无论您使用哪种语言。设置不应特定于笔记本。快速修复、大纲、源操作、重构、多光标、自动换行、缩小和扩展选择、列选择模式、更改大小写以及其他编辑器体验应该相同。您最喜欢的编辑器扩展,如Bracket Pair Colorizer和Snippets应该可以正常工作。您应该能够像今天处理源文件一样,以图形方式并排比较笔记本。
生态系统
此外,我们设想了一个丰富的笔记本扩展生态系统。您应该能够像发现主题和新语言支持一样,在市场中搜索内核或自定义可视化工具。我们的API甚至支持为新领域创建自定义(非Jupyter)笔记本。例如,REST Book扩展允许您编写并持久化REST调用,并为输出提供自定义可视化(例如,JSON、HTML和自定义文档)。如前所述,GitHub Issues Notebooks允许您为您的仓库创建不同问题查询的笔记本,以管理您的项目,就像我们做的那样。
未来看起来光明
为了完成这个比喻,VS Code 中的笔记本已经从那些尴尬的青少年时期成熟到了(年轻的)成年期,自信而强大,未来光明。如果你从 Jupyter 迁移过来,使用 VS Code 笔记本可能需要一些调整,但我们希望最终会值得。而且,正如我们一直努力做的,你可以通过设置自定义体验(在设置编辑器中搜索 @tag:notebookLayout
)。
我们相信,将VS Code丰富的编码体验和生态系统扩展到包括全面的Jupyter Notebook支持,将成为一个强大的工具,为您日常开发带来新的洞察力。我们在7月发布中带来了一些很棒的新体验,请尝试并告诉我们您的想法(无论是好是坏!)。您的反馈对我们构建最佳产品至关重要。
谢谢!
吉姆、乔、凯、克里斯和VS Code团队
愉快的笔记本使用体验!