Diary over Finite Fields

515ひかるの日記と雑文

この頃プログラミングをしていて思うこと

別に何かを思ってもしょうがないんだけど思っていることについて書く。

OSS の裏にいる企業

最近は OSS の主導者が企業である、ということが多い印象がある。皆さんがご存じの大企業である可能性も全く低くない、というか高いとさえ言っていい。

かつては大企業が OSS として製品を公開したら、それだけでどよめきが生まれるような時代があった。Microsoft が Visual Studio Code を発表したとき、そしてソースコードを公開したときのことを僕は今でも覚えている。それはビッグニュースだった。

今となってはどこどこって会社がなになにを OSS として公開、なんてニュースを見ても特に何も思わなくなった。いつしかそれは当たり前のことになったのだ。

Google, Apple, Facebook, Amazon, Microsoft などなど、名だたる大企業が OSS を作ったり、OSS コミュニティに貢献したりしている*1。そして同時に、OSS のユーザーたる我々は名だたる大企業の作ったものに飛びついていく。

それ自体は何も悪いことではない。物事の良し悪しなんてそう簡単に決まらない。

例えば、Python の型チェックツールがいま 4 種類くらいあって*2、ひとつは mypy で、これは PyCQA というコミュニティが作っているものだが、残りは全部大企業傘下のものだ*3

github.com

github.com

github.com

わたしは Python で仕事をしているのでもうひとつ Python の例を出すと、Django という Web フレームワークの(割とメジャーな)拡張で Django Restframework というものがある。これは Encode というイギリスの企業が作っている。

github.com

www.encode.io

OSS を開発して funding している企業だから一般的にイメージされる営利企業とはちょっと異なるとはいえ、一応企業がやっているものである。

OSS ユーザーとして感じること

何度書いても書きすぎることはないと思うのでもう一度書くけど、この現状自体は何も悪いことはない。物事の良し悪しは簡単にはきまらない。

上記のソフトウェアは全部 OSS だし、誰でも開発に参加できる。メンテナの意向が気に食わなければ Fork すればいい。知っている。

だけど、この現状を見つめる自分の心理として 2 つの懸念がある。ひとつはこれら(大)企業が作ったのを見つけたらそれ以上探さなくなること。そしてもうひとつは結局 OSS であるにもかかわらず「ベンダー製品のような安心感」を求めている自分がいることだ。

前者については自分は怠惰であるということの表明に他ならないような気もするけれど敢えて書いた。

後者について。今更言うまでもないけれど OSS というのは自己責任で使うものである。どの OSS ライセンスにもそう書いてある。だから「メンテナが大企業」というだけで安心でもなんでもない。サポートを受けることなんて当然できないし、バグを見つけて報告したからといって誰かが直す保証もなにもない。

ただユーザー人口が多ければそれだけバグが見つかる機会が増え、バグが直る可能性も高いという身もふたもない現実がある。そしてユーザー人口は個人がなんとなく作ってなんとなく公開したリポジトリよりも、大企業がその企業の名のもとに公開しているリポジトリのほうがユーザーは増えやすいしバグは洗い出されやすいというこれまた身もふたもない現実がある。ユーザーとしては安定して動作してほしいのだから、安定して動作しない可能性が高い個人のリポジトリをわざわざ引っ張って使ったりしないのだ*4

企業がメンテナである、ということそれ自体に価値を見出しているわけでは決してないのかもしれない。しかし一方で OSS であっても結局ある種の「他人頼み」で技術選定をしてしまっているのではないかと思ったりするわけ。

まとまらないまとめ

別にもっと個人開発の OSS を使おうよとか、業務でも全部内製するほうがいいとか言いたいわけではない。だけど OSS のプロバイダーが企業化していくことが嬉しいのかというと別に嬉しくはない。

それと、最近微妙だと感じるのは Visual Studio Code という OSS のエディタ*5の上に動く Python 拡張が必ずしも OSS ではない、ということがあったりする(Pylance)。なんというか微妙だ。微妙、以上に言語化できないんだけど。ただ同時に、別にベンダー製品が大嫌いというわけではないんだけど、いつの間にかベンダーロックインにかつてほどの抵抗がなくなっている自分にも驚く。

口が裂けても過去のあの頃のように、みたいなことは言わないつもりではいる。だけどどうにも、ありとあらゆるテック業界で起きたことがビッグテック周辺に収斂していく日常は、本当にそれが楽しくてプログラミング始めたんだっけなぁと遠い目をしてしまう自分がいたりする。

何が言いたいわけでもないし、何か言えるわけでもないし、なにもまとまらない思考の断片をなんとか意味が通りそうな日本語にしたらこの記事になった。休日を使って何してんだろう俺。

*1:AWS はちょっと前にいざこざがあったけどちょっとこの話と関係ないので脇に置いておく。

*2:なんでそんなにあるんや、という話には触れない。

*3:Google が Python 製、Facebook が OCaml 製、Microsoft が TypeScript 製で、その企業の中で型システムや漸進的型付けに詳しい人がどの言語を好んでいるのかが見え隠れしてちょっと面白いと勝手に思っている。

*4:僕も若い頃は OSS が壊れていると楽しんでデバッグしたものだけど、最近は全然デバッグなんかしてない。

*5:厳密には Visual Studio Code は OSS ではないのだけど、便宜上そう書いた。本題とは関係ない。