Visual Studio Code時代の到来

2020/09/26 11:37

Roben Kleene
macOS向けのコーディングアプリ「Repla」の創業者  
この記事は、著者の許可を得て配信しています。
https://blog.robenkleene.com/2020/09/21/the-era-of-visual-studio-code//

使用するツールを選ぶときに私が最も重視しているのは寿命です。ソフトウェアの学習は投資であり、後で別のアプリケーションに切り替えなければならない場合は、今まで投資してきた資産の一部を失うと言っても過言ではありません。

ほとんどのソフトウェアのカテゴリにおいて、寿命の長いソフトウェアを選ぶのは簡単で、最も人気のあるツールは、通常、最も長く続いているものです。Microsoft ExcelAdobe Illustrator は両方とも1987年にリリースされましたが、今でもそれぞれのカテゴリで最も人気のあるソフトウェアであり続けています。

一方、テキストエディタは、最も人気のあるオプションが一番古いものではないソフトウェアのカテゴリーです。Stack Overflowの年次開発者調査によると、2015年から2017年にかけてMacで利用できるテキストエディタの中で最も人気があったのはSublime Text でした。Sublime Textがリリースされたのは2008年で、ExcelやIllustratorに比べればフレッシュな新人と言う感じです。テキストエディタはムーブメントの多いカテゴリです。この20年間では、TextMate、Sublime Text、Atomが最も勢いのあるテキストエディタです。大規模で複雑なデスクトップソフトウェアでは、これほどまでに動きのあったカテゴリは他にないのではないでしょうか?

新しいテキストエディタが登場し、急速に人気が出てきた時代において、Visual Studio Code(以下 VSCode)で終わりを迎えたと思います。VSCode は前例のないほどの人気があり、洗練されたレベルに達しています。そして、何十年もの間市場支配をするほどの基盤を築いています。私のように、あなたのツールの優先順位の一つが長い寿命であるならば、VSCode は今日において投資するに値する学習すべき素晴らしいテキストエディタかもしれません。

VSCodeの寿命が長いということの裏付けは、次のポイントからなされています。

  • 普及率:近年、これまでのテキストエディタにはないほどの人気を誇っている
  • プラットフォームとしてのテキストエディタ:テキストエディタが拡張機能を中心にリメイクされるのを見た革命の最終段階である
  • パラダイムの超越:デスクトップアプリとしてのパラダイムを超越し、ホスト型のウェブアプリになり、さらにはリファレンス実装にもなってる
  • 会社経営:パワフルなテック企業によって管理されており、積極的な開発がなされている

普及率

VSCodeは今日最も人気のあるテキストエディタです。史上最も人気のある GUIプログラミングツールと言っても過言ではないほど人気があります。2015年から、Stack Overflowではテキストエディタに関する質問をアンケートに入れています。当時はNotepad++ が最も人気のあるテキストエディタで、回答者の34.7%が「よく使用する」と答えていました。その後の数年間では、あらゆるテキストエディタの人気は多少の変動はありましたが、40%を超えるものはありませんでした。ですが、2019年の最新の調査では、VSCodeの使用率が50.7%に跳ね上がったのです。これは2年連続でVSCodeが~45%増加したことを意味し、今回はすでに最も人気があった2018年の34.9%からさらに急上昇しました。

テキストエディタの人気推移 2015-2019

(Stackoverflowが複数回答を許可するようになったのは2015年と2016年の間なので、特にこの2年間の変化は数字だけを鵜呑みにはできないと思います。)

プラットフォームとしてのテキストエディタ

VSCode は客観的に見ても非常に人気がありますが、次のポイントはより質的なものです。過去数十年の間、テキストエディタは軌道に乗ってきましたが、私は VSCode がその最終的な形態だと考えています。これは、テキストエディタが拡張機能の役割と能力を高めることで、それ自体がプラットフォームになってきたということです。以下は、これまでの流れです。

2004年以前:BBEdit、Emacs、Vim

BBEditEmacs、 Vim はそれなりに素晴らしいテキストエディタですが、(私のような人には愛されていますが)最も人気のあるテキストエディタにはなれない特性を備えているのです。

Emacs とVi  から派生したVimは、どちらも 1976 年(今日のユーザーインターフェース規則が定められる前)に最初にリリースされました。Z, X, C, V の修飾キーを元に戻す、切り取り、コピーなどは(1984 年にリリースされた初代 Macintosh と 1985 年にリリースされた Windows 1.0 によって普及したキーボードショートカット)以前からありました。Emacsも Vim もこれらのキーを使用せず、独自の用語を使用しています。例えば二つとも「yank」という言葉を使っています。(しかし、違うことを意味するのに、Vimではコピー、Emacsではペーストという言葉を使います)

BBEdit は 1992 年にリリースされました。だいたいこの頃に初めてのGUIツールが登場し、世界中で人気を博しました。Excel (1987年)、Illustrator (1987年)、Photoshop (1990年)も同時期です。これらのアプリと同様に、BBEditも現代でも通用します。しかし、これらのアプリとは異なり、そのカテゴリーで最も人気のあるアプリではありません。その理由は、少なくとも部分的には、テキストエディタがパッケージ主導のエコシステムを重視する世界に完全に適応できなかったことにあるようです。

2004: TextMate

2004年にリリースされたTextMateは、史上最も影響力のあるテキストエディタと言っても過言ではありません。このエディタが普及させた数多くの機能の中には、略語ベースのスニペット自動ペアリングキャラクタファイル名によるファジー検索などがあります。これらの機能はすべて、その後の人気テキストエディタの定番となりました。TextMate が先駆的に開発したScope Selectorsテーマ設定の実装は、その後のすべての人気テキストエディタのテーマとシンタックスハイライト(構文強調)の基礎を形成しています。

1つのアプリから生まれたことだけでもすごいのですが、TextMateの最も重要なイノベーションはこれだけではありません。TextMateは、テキストエディタの形を変え、それ以前に登場したすべてのテキストエディタのニッチな地位を確固たるものにし、10年後にはVSCodeが歴史上最も人気のあるテキストエディタとなる道を切り開いたのです。TextMateの最も重要な革新は、拡張機能を中心に構築された最初の人気テキストエディタであったことです。

TextMate は拡張機能を中心に構築されたテキストエディタのコンセプトを広めましたが、今にして思えば、それは全く十分と言えるものはありませんでした。TextMate の拡張機能には制限があり、それを取り除くことで後のテキストエディタが繁栄することになります。

2008: Sublime Text

2008年にリリースされたSublime Textは、ミニマップとマルチカーソルを普及させました。また、TextMateやBBEditとは異なり、Linux、MacOS、Windowsで動作するクロスプラットフォームであるため、これらのエディタよりも多くのユーザーにリーチすることができました。しかし、Sublime Text の最もすごいところは、拡張機能の機能を大幅に拡大したことです。

Sublime Textの拡張機能は、macOSに組み込まれたスクリプト言語を使用するTextMateとは異なり、拡張性の高いAPIを持つ埋め込み型の Pythonランタイムで動作し、適切な拡張APIを持つというよりは標準出力の処理が中心となっています。

Sublime Text は拡張機能ができることを大幅に拡張し、GUI コンポーネントを含むリンターのようなより洗練されたインテグレーションを可能にしました。  Will Bond が作った Sublime Text 用の非常に人気の高いパッケージマネージャである  Package Controlは、パッケージ管理のための一元化されたソースを特徴としており、パッケージの閲覧、インストール、更新の手間が軽減されています。 このモデルは、その後のすべての人気のテキストエディタにも採用されることになるでしょう。

Sublime Text の拡張機能を使っても、まだ十分とは言えませんでした。Package Control はビルトインされていませんでした。またSublime Text には API がありますが、GUI コンポーネントのためのカスタムコールで Python を使用しているため、将来のテキストエディタが拡張機能をビルドしやすいようにする余地が残っていました。

2014: Atom

2014年にGitHub によってリリースされたAtomは、ついに拡張機能を最終的な形に持ってきます。Atomのパッケージマネージャがビルドインされており、インライン画像を含む拡張機能のREADME(添付文書)が完全に表示されます(GitHub自身が作った初期の拡張機能は、機能を説明するためにアニメーションGIFを使用するという決まりを普及させました)。またアプリストアを彷彿とさせる拡張機能もあります。

次に、 HTMLCSSの問題があります。Atomは Electron上に構築されているため、エディタ自体はJavaScriptで書かれ、 Node上で動作します。Sublime Text の Python API に比べて、HTML、CSS、JavaScript は現存する言語の中で最も広く知られている言語の一つであり、拡張機能を作成する際の参入障壁が大幅に低くなっています。

Atom は基本的に拡張機能ベースのエディタを完成させていましたが、1つだけ問題がありました。Atom はリリース以来、パフォーマンスに問題がありましたが、結局市場は Sublime Text との間で二分される形となりました。Sublime Textはとても動作が早いのです。

2015: Visual Studio Code

VSCodeは、Microsoftが2013年に初めてWebサイトに埋め込むことができるMonaco Editor  をベースに、2015年にリリースされました。GitHubがAtomと一緒にElectronをリリースしたときと同時期です。Microsoftはそれを利用して、Visual Studio Codeと呼ばれるMonaco Editorのデスクトップ版を作成しました

VSCodeは、拡張機能に重点を置いてElectronで書かれたローカルWebベースのテキストエディタAtomと同じ方式を採用し、よりパフォーマンスを高めています。VSCodeでは、サイドバーに拡張機能を配置することで、ファイルの閲覧、検索、ソース管理、デバッグと同じレベルまで拡張機能を可視化しています。VSCode の拡張機能は、HTML、CSS、JavaScript で書かれた幅広いユーザーインターフェースを持つことができ、Nodeにフルアクセスすることで、他のアプリケーションでできることは何でも基本的にはできます。そして実際に、いくつかの拡張機能はそれ自体がアプリのように見えてしまうのです。

VSCodeを使うことで、拡張ベースのテキストエディタは最終的な形になったように思えます。TextMate以来、拡張機能はますます重要性と機能を増してきましたが、VSCodeでは、その進歩は頂点に達したように見えます。それに対応して、以前のテキストエディタが拡張機能を改良することでお互いに飛躍してきたのと同じように、新しいテキストエディタが VSCode を飛躍させる方法はありません。

パラダイムの超越

これまで、VSCode の人気と拡張機能の実装を寿命が長いことの指標として見てきました。3つ目の指標は、VSCode がデスクトップの枠を超えてどのように変化してきたかということです。 code-server プロジェクトでは、VSCode を通常のウェブアプリ、つまりサーバー上でホストされ、ブラウザからアクセスできるようにしています。GitHubの CodespacesもウェブアプリとしてVSCodeを実行していますが、今回はアドホックな開発環境を構築しています。

デスクトップ アプリから Web アプリに移行するように、パラダイムを超えることは、長い寿命の大きな指標となります。1つは、将来、より多くのパラダイムに移行される可能性が高いことを意味します。新しいパラダイムへの移行には多大な努力が必要であり、その努力が価値を示す大きな指標となります。EmacsとVimはどちらもターミナルからGUIアプリケーションに移行されました。GUI版を持っていないのがとても貴重でした。PhotoshopとExcelは両方ともモバイルで動作し、Illustratorも間もなくリリースされます。ExcelにもWeb版がありますし、Photoshopにもストリーミング版があります(といっても6年前からクローズドベータ版ですが)。

VSCode は、Web アプリになることで初期実装のパラメータを超越しただけでなく、ある種の標準となっています。 Eclipse Foundationによってメンテナンスされている Theia IDEのバージョン1.0は、VSCodeの再実装です。VSCodeは今やテキストエディタとしてだけでなく、テキストエディタのモデルにもなっています。

会社経営

TextMate は、主に開発者である Allan Odgaard が作成したもので、 Jon Skinner がSublime Text を開発したのと同じです。これらのアプリケーションはいずれも、リリーススケジュールが遅いと思われていたために、不満を持つユーザーの間でトラブルに遭いました。

この2つのアプリケーションのメジャーリリースのこれまでの流れをご紹介します。

  • 2004: TextMate 1
  • 2008: Sublime Text 1
  • 2011: Sublime Text 2 Alpha
  • 2012: Sublime Text 2
  • 2012: TextMate 2 Alpha
  • 2013: Sublime Text 3 Beta
  • 2017: Sublime Text 3
  • 2019: TextMate 2

安定したメジャーリリース間の年数のグラフです。

このグラフを見ると次の2つのことがすぐに分かります。

  • TextMate 2には長い時間がかかった
  • Sublime Text はリリーススケジュールに一貫性がある。

Sublime Text に対する不満は、2013年に発表された Sublime Text 3 Beta と 2017年にリリースされた Sublime Text 3 の間のギャップと、その間に十分な変更が行われていないことが中心になっているようです。Sublime Text のリリーススケジュールは、3つのメジャーバージョン(111213)をリリースしている BBEdit と比較すると遅いですが、その一方でSublime Text 3 はベータ版です。Coda 2 は 2012 年にリリースされ、その後も更新されていないので、 Sublime Text のリリーススケジュールが本当に商用テキストエディタとしては例外なものなのかどうかは不明です。

現在のVSCodeのバージョンは 1.49ですが、VSCodeはオープンソースなので、商用アプリとは異なるルールとなっています。メジャーバージョンは、企業がアップグレードのために課金する機会として、少なくとも部分的に存在しています。

VSCode はオープンな状態で開発されているので、コミット履歴を見ることで開発のペースを直接判断することができます。GitHub上のVSCodeのコミットグラフは、積極的な開発の様子を物語っており、AtomやFacebookの Reactのような他の大規模なオープンソースプロジェクトをも凌駕しています(これらのグラフはY軸のスケールが異なることに注意してください)。

Visual Studioコードのコミットグラフ

Atomのコミットグラフ

Reactのコミットグラフ

積極的な開発は、前方への勢いと、そのプラットフォーム上に構築されたサードパーティの組み合わせが競合しにくいために、プラットフォームを集団から引き離してしまいます。これは、新規参入者が人気のあるブラウザやOSと競合することを難しくしているのと同じ組み合わせです。

まとめ

今回の記事の目的は、長寿を重視する人が、VSCodeが学習への良い投資になるかどうかを判断できるようになることにあります。プラットフォームとしてのテキストエディタの意味合いとして、2004年にTextMateが導入されて以来、数年ごとに勢いのあるテキストエディタが変わってきたということがあります。どのような基準においても人気がある期間が短いこともありますが、ExcelやPhotoshopのようなアプリと比較して、ものすごく微細なものです。数年ごとに何か新しいものが出てくることを期待しているのであれば、新しいテキストエディタを学ぶのはまだまだ疑問の残る投資と言えるでしょう。

VSCode は、テキストエディタの短い時代が終わったことを示唆しています。他のカテゴリで人気のあるソフトの例を目安にすると、おそらく数十年の間、最も人気のあるテキストエディタとしての地位を維持する可能性を持っています。この記事で概要を説明したように、今回のケースは以下の通りです。

  • 開発者の50%以上が使用していることで、他のテキストエディタを避けていた人気のしきい値を超えた。
  • 拡張機能のパワーと可視性を最大化し、より有能な拡張機能モデルを持つ新しいテキストエディタに抜かれないようにするための最終的な進化の形である。
  • デスクトップアプリとしての起源を超えて、ウェブアプリにもなり、テキストエディタのモデルにもなっている。
  • 会社が運営しているので、他のテキストエディタのように開発が滞ることがない。

VSCode を知る前は、Emacs や Vim 以外の汎用テキストエディタは二度と使わないと思っていました。そうすることはとてもリスキーだったからです。予測を立てるためのコツは、物事は変わらないと仮定することだとわかりました。テキストエディタにおいては、数年ごとに新しいテキストエディタが登場し、その勢いを増していくことを期待するということを意味します。他の何かが起こると予想するには、確固たる証拠が必要です。

VSCodeはとんでもない証拠を見せてくれたと思います。私はVSCodeが、Excel、Illustrator、Photoshopのようなアプリ、数十年間そのカテゴリで最も人気のあるポジションを保持しているソフトウェアと一緒にカテゴリに移ってくれることを期待しています。これらのアプリケーションは、キャリアの過程で学習するためのコストを返済するための時間投資であることは間違いありません。EmacsやVimもそうですが、選択肢が増えるのは常にメリットしかありませんね。

appstore
googleplay
会員登録
URLからPICKする

会員登録して、もっと便利に利用しよう

  • 1.

    記事をストックできる
    気になる記事をPickして、いつでも読み返すことができます。
  • 2.

    新着ニュースをカスタマイズできます
    好きなニュースフィードをフォローすると、新着ニュースが受け取れます。