DUICUO

Microsoft は最近 Pylance をリリースしたが、これはオープンソースではないため、プログラマーの怒りを買っている。

最近、MicrosoftはPyLanceをリリースしました。これは、言語サービスプロトコル(LSP)パッケージ向けの新しいPython言語サポートであり、Visul Studio Codeで数年間使用されてきた現在のPython拡張機能を段階的に置き換えることを目的としています。以下はMicrosoftからの公式発表です。

Pylance の発表: Visual Studio Code での Python 向けの高速で機能豊富な言語サポート

しかし、多くの開発者は、この情報から、Microsoftがこのプロジェクトをオープンソース化する意図がないと主張していることにも気づいています。現在、PyLanceはGitHubにリポジトリを持っていますが、そこには問題レポートといくつかのガイダンスドキュメントしか含まれておらず、ソースコードは含まれていません。

この決定は明らかに一部の開発者の間で懸念を引き起こしました。開発者にはオープンソース化するかどうかを選択する自由がありますが、VSCodeとその広範なエコシステムはオープンソースの基盤の上に構築されています。

[[334866]]

かつては Python 拡張機能もオープンソースでしたが、なぜ今は態度が変わったのでしょうか?

この質問は、MicrosoftブログとGitHubの両方で読者から提起されました。GitHubでの議論はより広範囲に及んだものの、Microsoftは議論を続ける意思がなかったため、自らの立場を表明した上で問題をクローズしました。詳細については、以下のアドレスをご覧ください。

最終的に Pylance をオープンソースにする予定はありますか?

Microsoft の対応は注目に値する。

ご提案ありがとうございます。しかし、現時点ではPylanceをオープンソース化する予定はありません。Pylanceは、大幅な機能強化が施された全く新しい言語サーバー実装であり、プロプライエタリなサービスに組み込む予定です。Pylanceを動かすコードの大部分は、Pyright型チェッカーでオープンソースとして公開されています。

重要なポイント: 上記の記述は、クローズド ソースの性質の理由が、一部の人が推測しているように、プロジェクトが十分に成熟しておらず、準備に時間が必要であるためではないことを示しています (それを実証できることは、プロジェクトが一定レベルの成熟度を備えていることを示しています)。


むしろ、MicrosoftはVSCodeを自社のプロプライエタリサービスに組み込むことを望んでいます。技術的な観点から見ると、これは少々奇妙です。シンプルな言語サービスに、オープンソース化を妨げるようなプロプライエタリな要素が含まれているとは考えにくいからです。しかし、Microsoftのビジネス戦略を考えると、将来的にVSCodeがAzureやその他のMicrosoft製品向けのプロプライエタリサービスとしての側面を強め、無料およびオープンソース部分は「骨抜き」にされることは容易に想像できます。PyLanceのリリースは、このことを如実に示しています。

これがオープンソース愛好家たちの不満を招くことは容易に想像できます。ここ数日、インターネット上で開発者からの批判を目にしました。中には、マイクロソフトの悪名高い戦略、「包摂、拡張、破壊」に言及する人もいました。そして、同社は「決して変わっていない」と明言しています(これは丁寧な言い方ですが、端的に言えば、XXはXXを変えることができない、ということです…まあ、お分かりでしょう)。

個人的には、これにそれほど驚きはしません。Microsoftは近年オープンソースに非常に積極的で、多くの人がコミュニティの「良き一員」になったと考えているほどですし、私自身もVisual Studio Codeをかなり気に入っており、それに関する記事を数多く執筆してきました。しかし、Visual Studio Codeは最初から完全にオープンソースだったわけではないことは分かっています。Visual Studio Codeには、ユーザー情報を収集するコンポーネント(「テレメトリ」と呼ばれる)が含まれています。ユーザーの機密情報は収集しないと約束しているものの、具体的に何が収集されているのかはMicrosoft自身以外には誰も確信が持てません。そのため、この状況に不安を抱く開発者の中には、クリーンなバージョンを自分でコンパイルする人もいます。そこでVSCodiumが登場するのです。

[[334867]]

今年初め、VSCodeはリモート開発という大きな新機能を発表しました。この機能は、VSCodeを他のホスト型クラウド製品に組み込むための基盤となりますが、オープンソースではありません。この問題について具体的に分析した記事も執筆しました。

/blog/2020/04/vscode-remote-not-open-source

その頃から、Microsoft が VS Code を Azure やその他の商用製品ラインの一部としてクラウドに移行する可能性が高いことに気づきました。今後、主に以下の理由から、コアコンポーネントがクローズドソース開発へと移行していくことがますます増えていくでしょう。

商業上の理由から、Microsoft はこれらの機能の一部を、有料の「プレミアム機能」として価格設定する可能性があります。

もうひとつの可能性は、機能そのものは無料だが、Microsoft 製品専用のユニークな機能となり、オープンソース部分は必然的に「機能不全」のバージョンになるというものだ。

Microsoftは潜在的な競合相手を育成したくありません。これはリモート開発ライセンスに明記されており、これは私的使用のみを目的としており、他のパブリックプラットフォームに展開したり、製品の一部として提供したりすることはできません。


まだ始まったばかりですが、この傾向が続けば、VSCode がますます閉鎖的になることは避けられません。個人的には、技術的なハイライトがたくさんあるこのプロジェクトには非常に同情しています。今後の展開に期待しましょう。