筆記本時代的來臨
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 組建,您就能夠追蹤我們的體驗演進過程。在 Stable 版本中,我們有 40% 的使用者使用新的筆記本體驗。回饋通常是正面的。因此,就像 Nigel Tufnel 一樣,我們決定將音量調到 11,並將所有人向前推進到新的實作。
不幸的是,正如您很快讓我們知道的那樣,我們在幾乎沒有警告的情況下為您完成了過渡。您當時正在使用 Jupyter Notebooks 進行工作,清理和分析龐大的資料集以模擬宇宙的膨脹,而我們卻顛倒了您的世界。您去喝了杯咖啡,啟動了 VS Code,然後「砰」的一聲,您的筆記本體驗就...不一樣了。
雖然我們很高興在 VS Code 中引入新的體驗,但像這樣的驚喜並不是您早上啟動工具時所期望的。對此,我們深感抱歉。有更好的方式來推出變更,讓每個人都了解正在發生的事情、原因和時間。
但它就是不一樣!
VS Code 中筆記本的原始版本非常接近經典的 Jupyter Notebooks 體驗,它看起來和行為幾乎相同。這是一個合理的起點,一個溫馨、舒適且熟悉的體驗。但是,隨著我們更深入地了解 VS Code 使用者如何使用筆記本和工具的其他部分,我們意識到這兩種體驗需要比以往更相似。
VS Code 中的筆記本應該感覺自然,以便您可以無縫地在編寫程式碼檔案和在 Python 中模擬宇宙的筆記本之間移動。這表示 VS Code 中的筆記本應盡可能利用內建的隱喻和熟悉的鍵盤快速鍵。
例如,在程式碼儲存格中寫作應該感覺與在功能齊全的文字編輯器中編寫程式碼相同,無論您使用哪種語言。設定不應特定於筆記本。快速修復、大綱、來源動作、重構、多重游標、自動換行、縮小和展開選取範圍、欄選取模式、變更大小寫以及其他編輯器體驗應該相同。您最喜歡的編輯器擴充功能,例如 Bracket Pair Colorizer 和程式碼片段應該可以直接運作。您應該能夠以圖形方式並排比較筆記本,就像您今天對原始檔所做的那樣。
生態系統
此外,我們設想為筆記本建立豐富的擴充功能生態系統。您應該能夠像探索佈景主題和新的語言支援一樣,在 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 團隊
祝您筆記愉快!