|
6月16日、MicrosoftのプロジェクトマネージャーであるTim Heuer氏は、VSCode C#拡張機能のロードマップの更新を発表しました。新しいロードマップでは、VSCode C#拡張機能の基盤となる通信メカニズムとしてLanguage Server Protocol(LSP)を導入し、新しいC#拡張機能の基盤として「LSP Tools Host」コンポーネントを新たに作成することで、より実用的な機能を導入する予定です。しかし、Microsoftは発表の中で「LSP Tools Host」コンポーネントはオープンソース化しないと明言し、この決定は直ちに大きな批判を招きました。 8年前、OmniSharpチームは当時利用可能なAPIとプロトコルを使用して、VS Code用のC#拡張機能を開発しました。現在、言語サーバープロトコル(LSP)は、最新の開発ツール(エディター、IDEなど)間の通信における標準的なメカニズムとなっています。そこでMicrosoftは、C#拡張機能をLSPのみを使用するように切り替え、既存のOmniSharpコンポーネントもLSPを使用するように更新する予定です。 (ここで言及しておくべきことは、VSCode 用の C# 拡張機能を作成した OmniSharp チームには多くの Microsoft 社員がいますが、このチームはコミュニティ主導であり、Microsoft とは提携していないということです。言い換えれば、Microsoft がコミュニティで開発された C# 拡張機能を引き継ぎ、その開発パスを管理しているということです。)
つまり、LSP通信メカニズムを採用することで、この新しいLSP Tools Hostコンポーネントは、新しいC# for VS Code拡張機能のデフォルトの機能パッケージとなり、より多くの「すぐに使える」機能をバンドルすることになります。このコンポーネントはクローズドソースのモジュールを導入しているため、コミュニティユーザーが開発に協力することは可能ですが、オープンソース化することはできません。 この発表は間違いなく反発を招き、ユーザーからはなぜ新しいコンポーネントをオープンソースにできないのかという疑問の声が上がり、Microsoft は「昔の閉鎖的で営利を優先する姿に戻った」と非難された。 クローズドソースであることに対する一般の懐疑的な意見に応えて、Microsoft プロジェクト マネージャの Tim Heuer 氏は発表を更新し、「LSP Tools Host」コンポーネントがオープン ソースでない理由をさらに説明しました。
しかし、公平に言えば、この説明はあまり説得力がないようです。ロードマップには「LSP Tools Host」が C# の VS Code 拡張機能のデフォルト エクスペリエンスになると明記されており、現在は単に「ブリッジ」と呼ばれているからです... 過去からの教訓実際、C#拡張機能が登場する以前から、MicrosoftはVS Codeの言語拡張機能を既に引き継ぎ、クローズドソース化していました。ユーザーのPradyun Gedam氏は、VS CodeのPython拡張機能はオープンソースソリューションであるJediのサポートによって普及し、その後MicrosoftがJediを引き継いでLSPベースのクローズドソースPython拡張機能pylanceを開発し、より優れたユーザーエクスペリエンスを約束したと指摘しています。 その後、MicrosoftはクローズドソースのPylanceをVS CodeのPythonのデフォルト拡張機能とし(ユーザーへの切り替え通知も送信)、オープンソース部分へのリソース投資を継続的に削減しました。現在、Pylanceを使用するPython拡張機能はJediよりもはるかに多くの機能を提供しており、ユーザーはクローズドソースのPylance拡張機能を使用するしか選択肢がない状況になっています。 ユーザーのGerard Smit氏は、これを「受け入れ、拡張、そして消滅」と要約しています。この3つの言葉は、まずオープンソースを受け入れ、コミュニティに機能の充実を図らせ、次に機能を「拡張、拡大、改善」し、最後にソースを非公開にして新機能を「拡張」した後に強力に推進し、最後にコミュニティ主導のオープンソース機能を「消滅」させることを意味します。 |