筆記本的成熟
2021 年 8 月 5 日 作者:Chris Dias,@chrisdias
一種(不算太)新的開發方式
筆記本—包含文字、可執行程式碼以及程式碼輸出的文件—是一種有趣且令人興奮的新開發方式。
好吧,它並非完全是新的概念。Donald Knuth 在 1984 年提出了文學程式設計的概念,而 Wolfram Mathematica 在 1988 年推出了由核心驅動的筆記本 UI。
在過去十年中,我們看到了筆記本使用量的爆炸性成長,尤其是在資料科學興起之後。Jupyter Notebooks 等工具已成為資料科學社群中事實上的工具。它們被廣泛使用且受人喜愛,從虛擬草稿紙、資料準備任務到複雜的機器學習模型開發,無所不能。
我們看到一個有趣的趨勢是,資料科學和機器學習正逐漸成為一項團隊運動:開發人員越來越多地與資料科學家協作,以準備用於模型訓練的資料集、重構用於生產環境的探索性程式碼,以及將模型推論整合到其核心產品中。我們自己的團隊每天分析大量的用量資料,並使用Jupyter 筆記本來追蹤、分析和驗證假設。我們使用特定領域的筆記本(GitHub Issues)來追蹤 GitHub 儲存庫中的問題和工作項目,深入了解每月發布 VS Code 的準備情況。筆記本現在對於我們運作 VS Code 專案至關重要。
全新 UI,沒有警告
我們一直努力不懈地將筆記本支援建置到 VS Code 的核心中,使其更快且更安全—並讓您最愛的 VS Code 擴充功能在其中運作。作為這項努力的一部分,我們也正在導入使用者體驗的變更,使筆記本感覺像是工具不可或缺的一部分,而不是像先前努力那樣的附加元件。
如果您使用的是 Insiders 組建,您就能夠隨著我們演進體驗而持續關注。在穩定版中,我們有 40% 的使用者使用新的筆記本體驗。意見回饋大致上是正面的。因此,就像 Nigel Tufnel 一樣,我們決定將音量調到 11,並將所有人向前推進到新的實作。
不幸的是,正如您很快讓我們知道的那樣,我們在幾乎沒有警告的情況下為您進行了轉換。您在那裡,使用 Jupyter Notebooks 進行工作,清理和分析那個龐大的資料集,以模擬宇宙的膨脹,然後我們讓您的世界天翻地覆。您拿起一杯咖啡,啟動 VS Code,然後「砰」一聲,您的筆記本體驗就...不一樣了。
雖然我們很高興在 VS Code 中導入新的體驗,但像這樣的驚喜並不是您早上啟動工具時所期望的。對此,我們深感抱歉。有更好的方式推出變更,讓所有人隨時了解正在發生的事情、原因和時間。
但它不一樣了!
VS Code 中筆記本的原始版本非常接近經典的 Jupyter Notebooks 體驗,看起來和行為幾乎相同。這是一個合理的起點,一種溫馨、舒適且熟悉的體驗。然而,隨著我們更深入了解 VS Code 使用者如何使用筆記本和工具的其餘部分,我們意識到這兩種體驗需要更相似而不是不同。
VS Code 中的筆記本應該感覺自然,以便您可以無縫地在撰寫程式碼檔案和在 Python 中模擬宇宙的筆記本之間移動。這表示 VS Code 中的筆記本應盡可能利用內建的隱喻和熟悉的鍵盤快速鍵。
例如,在程式碼儲存格中寫作應該感覺與在功能齊全的文字編輯器中寫作相同,無論您使用哪種語言。設定不應特定於筆記本。快速修復、大綱、來源動作、重構、多重游標、自動換行、縮小和展開選取範圍、欄選取模式、變更大小寫以及其他編輯器體驗應該是相同的。您最愛的編輯器擴充功能,例如 Bracket Pair Colorizer 和 Snippets 應該可以正常運作。您應該能夠並排圖形化比較筆記本,就像您今天對原始檔所做的那樣。
生態系統
此外,我們設想一個豐富的筆記本擴充功能生態系統。您應該能夠以與您發現佈景主題和新語言支援相同的方式,在 Marketplace 中搜尋核心或自訂視覺化工具。我們的 API 甚至支援為新領域建立自訂(非 Jupyter)筆記本。例如,REST Book 擴充功能可讓您撰寫和持久化 REST 呼叫,並為輸出提供自訂視覺化效果(例如,JSON、HTML 和自訂文件)。如先前所述,GitHub Issues 筆記本可讓您為您的儲存庫建立不同問題查詢的筆記本,以管理您的專案,就像我們所做的那樣。
未來一片光明
為了完成這個比喻,VS Code 中的筆記本已從那些尷尬的青少年時期成熟到(年輕)成年期,自信而堅強,擁有光明的前途。如果您是從 Jupyter 轉換過來,使用 VS Code 筆記本可能需要一點調整,但我們希望最終會是值得的。而且,正如我們始終努力做的那樣,您可以透過設定自訂體驗(在設定編輯器中搜尋 @tag:notebookLayout
)。
我們相信,擴展 VS Code 豐富的程式碼編寫體驗和生態系統,以包含全面的 Jupyter Notebook 支援,使其成為將強大的新見解帶入您日常開發的絕佳工具。我們在七月版本中推出了一些很棒的新體驗,請試用一下,並告訴我們您的想法(好的和壞的!)。您的意見回饋對於幫助我們打造最佳產品至關重要。
感謝!
Jim, Joe, Kai, Chris 和 VS Code 團隊
筆記本愉快!