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