早在2022年12月12日,微軟就釋出了VS Code的多語言筆電擴充套件外掛 Polyglot Notebooks,所使用的引擎為. NET Interactive,目前支援包括C#、F#、PowerShell、JavaScript和SQL等多種語言。讓資料科學家能夠簡單執行跨語言任務,就像是使用SQL查詢SQL Server資料庫,並將表格結果共用至JavaScript和HTML,建立可互動視覺化的應用。
Notebooks是一種方便使用的互動式程式開發工具,可用於執行程式碼、視覺化資料、執行方程式,或是編寫純文字,Notebooks的特性是讓使用者能以增量的和分段的方式,執行單元格內的程式。最有名的Notebooks來自Jupyter專案,多數人會結合Python和Jupyter Notebooks一起使用,快速迭代程式碼,以建立具有文字和資料視覺化的內容,也可成為學習程式程式語言,或快速製作概念原型的工具。在2019年,微軟通過建立支援C#、F#、PowerShell等.NET語言的Jupyter核心,將.NET帶入Jupyter生態系統,而微軟所開發的Polyglot Notebooks,則進一步擴充套件Notebooks的優點,過去開發者要在Notebooks上使用多種語言非常麻煩,難以使用一般IDE語法高亮顯示和自動完成等功能。
Polyglot Notebooks擴充套件外掛使用.NET技術所開發的.NET Interactive引擎,由於該引擎可充當筆電中不同程式語言的核心,因此使得Polyglot Notebooks能夠順暢以多種語言進行開發,就像是連線SQL Server資料庫和Kusto叢集,並使用SQL或是KQL編寫和執行查詢。
開發者可在同一個筆電中使用多種語言,並獲得良好的開發體驗,而不需要在使用多種語言時,在不同的工具間切換,當以一種語言完成工作時,開發者便可以將需要的變數共用給另一種語言,繼續在同一個檔案裡進行開發。
安裝
Polyglot Notebooks是一個 Visual Studio code 擴充套件。要使用它,您需要:
安裝完畢之後,我們可以有兩種開啟方法:
增一個 ipynb 檔案:
現在我們已經可以看到讓我們編碼的單元格了,這樣就完成準備工作啦!首先當然要從 Hello world 開始啦,讓我們直接在單元格里面開寫:
單元格的右下角可以讓我們切換語言:
例如說我們可以來個 JavaScript:
當然我們並不是只有這一個小小的單元格能用,可以按下左上角的「+code」來新增程式碼單元格,或是把滑鼠移到單元格最底部,會出現執行之後幫你往下新增一格的按鈕:
現在我們可以同時放上兩個語言:
我們也可以針對某一格來執行,或是用滑鼠選擇指定的單元格,就可以選擇執行指定的單元格以上或以下的部份,如果有修改某一格,然後要從修改的部分重跑一次的時候還挺方便的。此外還有複製貼上單元格、合併單元格等等操作,可以在下圖右邊紅框的「...」找到,這邊就不再贅述。
眼尖的朋友應該發現了,上面新增單元格的地方除了「+ code」以外,還有「+Markdown」的選項,畢竟 Polyglot Notebooks 這東西還是一本「筆電」,只能貼 Code 不能寫筆記還算什麼筆電呢,對吧?
因此我們可以在程式碼區塊之間適當地加入 Markdown 區塊,來提供需要的資訊,或是紀錄需要的筆記。 讓我們編寫的過程可更有條理,之後回來閱讀也可以更快掌握內容。
除了在最底下新增單元格的做法以外,我們也可以對指定的區塊上下來插入新單元格:
我們很多情況並不會只用內建的語法就完成,通常還會安裝一些 Nuget 元件來直接幫我們解決問題,在 Polyglot Notebooks 裡面,我們要安裝 Nuget 元件,要使用 #r 「nuget:{套件名稱}」
的指令
例如我想要安裝 這個套件包Microsoft.SemanticKernel,我就可以這樣寫:
這篇記錄了 Polyglot Notebooks 的基本用法,能像 Python 的 Jupyter NoteBook 逐步對資料進行處理,又有 C# 的 Linq 能用,用這東西寫個爬蟲之類的小指令碼,邊跑隨改實在是舒適的體驗,用來學習演演算法之類的就很不錯了。
歡迎大家掃描下面二維條碼成為我的客戶,扶你上雲