🚀 VS Code で で入手しましょう!

ノートブックの成熟

2021 年 8 月 5 日 Chris Dias 著、@chrisdias

(それほど)新しくはない開発手法

テキスト、実行可能なコード、およびそのコードの出力を含むドキュメントであるノートブックは、開発を行うための興味深く、エキサイティングな新しい方法です。

An image of a notebook that analyzes data from the Titanic shipwreck

まあ、完全に新しいわけではありません。Donald Knuth は 1984 年にリテラシープログラミングの概念を紹介し、Wolfram Mathematica は 1988 年にカーネル駆動のノートブック UIを導入しました。

過去 10 年間で、特にデータサイエンスの台頭により、ノートブックの使用が爆発的に増加しているのを見てきました。Jupyter Notebooks のようなツールは、データサイエンスコミュニティで事実上のツールとなっています。仮想スクラッチパッド、データ準備タスク、複雑な機械学習モデル開発など、あらゆる用途で使用され、愛されています。

私たちが見てきた興味深いトレンドの 1 つは、データサイエンスと機械学習がチームスポーツになりつつあることです。開発者は、モデルトレーニング用のデータセットを準備したり、探索的なコードを本番環境で使用するためにリファクタリングしたり、モデル推論をコア製品に統合したりするために、データサイエンティストと協力することが増えています。私たち自身のチームは、毎日膨大な量の使用状況データを分析し、Jupyter Notebooksを使用して、仮説を追跡、分析、検証しています。私たちは、ドメイン固有のノートブック (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 ユーザーがノートブックとツールの残りの部分をどのように連携させているかを詳しく調べていくうちに、2 つのエクスペリエンスは異なるよりも類似している必要があることに気づきました。

VS Code のノートブックは、コードファイルを作成したり、Python で宇宙をモデル化するノートブックを作成したりする作業をシームレスに移動できるように、自然に感じられるはずです。これは、VS Code のノートブックが、可能な限り組み込みのメタファーと使い慣れたキーボードショートカットを活用することを意味します。

たとえば、コードセルでの書き込みは、使用する言語に関係なく、本格的なテキストエディターでコードを記述するのと同じように感じるはずです。設定はノートブックに固有であってはなりません。クイックフィックス、アウトライン、ソースアクション、リファクタリング、マルチカーソル、ワードラップ、選択範囲の縮小と拡大、列選択モード、大文字と小文字の変更、その他のエディターエクスペリエンスは同じである必要があります。Bracket Pair Colorizerやスニペットなど、お気に入りのエディター拡張機能はそのまま動作するはずです。ソースファイルの場合と同様に、ノートブックをグラフィカルに並べて比較できる必要があります。

エコシステム

さらに、ノートブックの豊富な拡張機能エコシステムを想定しています。テーマや新しい言語サポートを発見するのと同じように、マーケットプレイスでカーネルやカスタムビジュアライザーを検索できるはずです。当社の 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 チーム

ハッピーノートブッキング!