VS CodeにおけるPolyglot Notebooks
ポリグロットプログラミングとは?
ポリグロットプログラミングとは、複数のプログラミング言語を使用し、それぞれの言語の強みを異なるタスクに活用する手法です。
ノートブックとは?
ノートブックは、実行可能なコード、視覚化、数式、および記述テキストを混在させることができるインタラクティブなファイルです。ノートブックは、コードの迅速な反復を容易にするコードセルで構成されています。オープンソースプロジェクトのJupyterによって普及し、Pythonデータサイエンスの事実上のツールとなり、新しいプログラミング言語の学習や教育、迅速なプロトタイピングのための優れたリソースとなっています。
Polyglot Notebooks
ポリグロットプログラミングとノートブックが融合すると、Polyglot Notebooksが誕生します!通常Pythonで使用される従来のノートブックとは異なり、Polyglot Notebooks拡張機能を使用すると、Visual Studio Codeで同じノートブック内で複数のプログラミング言語をネイティブにすべて使用できます!お気に入りの言語を同じノートブックで操作するために、ラッパーライブラリやマジックコマンドはもう必要ありません!
サポートされている言語
- C#
- F#
- PowerShell
- JavaScript
- HTML
- Mermaid
- SQL
- KQL (Kustoクエリ言語)
機能
上記の言語のコードを実行することに加えて、以下の利点があります。
-
Microsoft SQL ServerデータベースおよびKustoクラスターへの接続とクエリ。
-
IntelliSense、オートコンプリート、構文ハイライトなど、各言語の言語サーバーサポート。
-
ノートブック内での継続的なワークフローを保証する言語間の変数共有。(変数共有はHTMLおよびMermaidでは利用できません)
-
変数の状態と、変数が存在するサブカーネルをチェックするための変数エクスプローラー。
-
Jupyter/JupyterLab間の完全なポータビリティ.
すべての機能については、VS Code MarketplaceのPolyglot Notebooks拡張機能をご覧ください。
前提条件
VS CodeでPolyglot Notebooksを使用するには、以下が必要です。
なぜ.NET SDKが必要なのですか?
Polyglot Notebooks拡張機能は、.NET Interactiveを搭載しています。これは、複数の言語を実行し、それらの間で変数を共有できる.NETテクノロジーに基づいて構築された最先端で革新的なエンジンです。Polyglot Notebooksでは、このエンジンがノートブックのカーネルとして機能するため、.NET 9 SDKが必要となります。
はじめに
-
最初のポリグロットノートブックを作成するには、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を開き、Polyglot Notebooks: Create new blank notebookを選択し、
.ipynb
を選択してから、開始したい言語を選択します。新しいファイルを作成し、拡張子を
.ipynb
とすることでノートブックを作成することもできます。この場合、右上のノートブックのカーネルとして.NET Interactiveが選択されていることを確認してください。 -
デフォルトでは、追加されたセルは上のセルと同じ言語になります。言語を変更するには、セルの右下にある言語ピッカーを選択します。
-
コーディングを始めましょう!
データの操作
Microsoft SQL ServerデータベースおよびKustoクラスターに接続してクエリを実行します。
データソースへの接続と操作に関するより詳細な手順については、「Working with Data」ドキュメントをご覧ください。
言語サーバーのサポート
Polyglot Notebooksの各言語は、オートコンプリート、構文ハイライト、シグネチャヘルプなどの言語サーバーサポートにより、ファーストクラスの編集体験が得られます。
変数の共有と変数エクスプローラー
#!set
コマンドを使用して言語間で変数を共有し、変数エクスプローラーを使用して各言語の変数の値を確認します。以前に#!share
コマンドを使用していた場合でも、引き続き機能することに注意してください。グローバルツールバーの変数アイコンを選択して、変数エクスプローラーを開きます。
変数共有の詳細については、「Variable Sharing」ドキュメントをご覧ください。
機能のリクエストとフィードバック
Polyglot Notebooks拡張機能は.NET Interactiveを搭載しており、フィードバックを提供したり、.NET Interactive GitHubリポジトリで問題を報告したりできます。