現已釋出!閱讀關於 11 月新增功能和修復的內容。

Notebooks 的成熟

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

一種(並非全新)的開發方式

Notebooks(筆記本)——包含文字、可執行程式碼以及程式碼輸出的文件——是一種有趣且令人興奮的全新開發方式。

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

好吧,它並不完全是全新的。Donald Knuth 在 1984 年提出了 Literate Programming(文學化程式設計)的概念,而 Wolfram Mathematica 在 1988 年推出了由 Kernels(核心)驅動的 Notebook UI

在過去十年中,我們看到了 notebook 使用量的爆炸式增長,尤其是在資料科學興起之後。像 Jupyter Notebooks 這樣的工具已經成為資料科學社群事實上的標準工具。它們被廣泛使用和喜愛,用途從虛擬草稿本到資料準備任務,再到複雜的機器學習模型開發。

我們觀察到的一個有趣趨勢是,資料科學和機器學習正成為一項團隊運動:開發人員越來越多地與資料科學家協作,為模型訓練準備資料集,重構用於生產的探索性程式碼,並將模型推理整合到其核心產品中。我們自己的團隊每天分析大量的用法資料,並使用 Jupyter notebooks 來跟蹤、分析和驗證假設。我們使用特定領域的 notebook(GitHub Issues)來跟蹤 GitHub 倉庫中的問題和工作項,從而深入瞭解每月釋出 VS Code 的準備情況。Notebooks 現在對我們執行 VS Code 專案至關重要。

新的 UI,沒有警告

我們一直在努力將 notebook 支援構建到 VS Code 的核心中,以使其更快、更安全——並允許您喜愛的 VS Code 擴充套件在其中工作。作為這項工作的一部分,我們還對使用者體驗進行了更改,使 notebook 感覺像是該工具不可或缺的一部分,而不是像早期嘗試中那樣作為附加元件。

如果您使用的是 Insiders 版本,您可以一直跟蹤我們如何改進體驗。在 Stable 版本上,有 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。快速修復、大綱、源操作、重構、多游標、自動換行、收縮和展開選擇、列選擇模式、更改大小寫以及其他編輯器體驗都應該相同。您最喜歡的編輯器擴充套件,如 Bracket Pair Colorizer 和 Snippets 應該可以正常工作。您應該能夠像今天處理原始檔一樣,並排以圖形方式比較 notebook。

生態系統

此外,我們設想了一個豐富的 notebook 擴充套件生態系統。您應該能夠以發現主題和新語言支援的相同方式在 Marketplace 中搜索 Kernels 或自定義視覺化工具。我們的 API 甚至支援為新領域建立自定義(非 Jupyter)notebook。例如,REST Book 擴充套件允許您編寫和保留具有自定義輸出視覺化效果(例如 JSON、HTML 和自定義文件)的 REST 呼叫。如前所述,GitHub Issues Notebooks 允許您為您的倉庫建立不同問題查詢的 notebook 來管理您的專案,就像我們所做的那樣

未來一片光明

為了完成這個比喻,VS Code 中的 notebook 已經從那些笨拙的青少年時期成熟為(年輕)成年,自信而強大,未來一片光明。如果您是從 Jupyter 遷移過來的,使用 VS Code notebook 可能需要一些調整,但我們希望最終會值得。而且,正如我們一直努力做的那樣,您可以透過設定自定義體驗(在設定編輯器中搜索 @tag:notebookLayout)。

我們相信,擴充套件 VS Code 豐富的編碼體驗和生態系統以包括全面的 Jupyter Notebook 支援,可以為您帶來強大的新見解,融入您的日常開發中。 我們在七月版本中提供了一些很棒的新體驗,請嘗試一下,並告訴我們您的想法(無論是好的還是壞的!)。您的反饋對於幫助我們構建儘可能最好的產品至關重要。

謝謝!

Jim、Joe、Kai、Chris 和 VS Code 團隊

祝您 Notebooking 愉快!

© . This site is unofficial and not affiliated with Microsoft.