ビルディングブロック・エコノミー
ソフトウェアを作り、圧倒的な普及を得るための最も効果的な方法は、もはや高品質なメインラインアプリそのものではなく、他者が「質」より「量」を優先して次々と作れるように促すビルディングブロックを提供することです。1
- Ghostty、18ヶ月で:1日あたり100万件のmacOSアップデートチェック。
- libghostty、2ヶ月で:1日あたり数百万人のユーザー。2
他の「ビルディングブロック」的なテクノロジー、たとえば Pi Mono や Next.js、Tailwind などでも、同様の成長曲線が見られます。
これを自ら体験し、他のエコシステムでも目の当たりにしたことで、商用か非商用かといった目的の違いを超えて、プロダクト開発やソフトウェア開発という営みそのものに対する見方が根本から変わりました。
この記事はAIの力を借りず、手で書いています。私はAIが大好きで、日々存分に活用していますが、こうした文章に関しては一線を引いています。個人ブログには、自分の本心や素直な気持ちを映したいと思っているからです。
インポートは増加している
「ビルディングブロック」という言葉を使っているのは、今日の使われ方が、かつての何十年間とはまったく違う組み立て方をされているからです。「ライブラリ」や「フレームワーク」という言葉を使わないのは、その範囲が「アプリケーション」にまで及んでいるからです(たとえば Ghostty のGUIアプリは、これまでで最も多くのフォークが生まれ、それぞれにカスタムパッチが当てられています。素晴らしいことです)。
今日の工場はエージェント的(agentic)です3。これは感情の好き嫌いに関わらず、客観的な事実として言っています。工場から出てくるものの99%はまったくのクズだと主張することはできますが、出てくる量が膨大であることは否定できません。その数は、技術スタックや業界を問わずあらゆるところに現れており、否定しようがありません。
AIはゼロからすべてを作るのもそこそこ得意ですが、高品質で、ドキュメントが整い、実績のあるコンポーネントを組み合わせてつなぎ合わせるのは本当に得意です。しかも、明示的に別途指示しない限り、AIは可能なときは自らそうしようとします。これが今日のソフトウェアにおける「ビルディングブロック」的な性質です。私たちはかつてないほど、既製品のコンポーネントを棚から取り出し、貼り合わせて作っているのです。
もちろん、人間も昔から同じことをしてきました。私のキャリアを通じて、人間のソフトウェア開発者は実績あるプリミティブの上に構築することを好んできました。しかし、それぞれの部品を理解し、とりあえず組み合わせられるようになるまでに必要な参入障壁が、エコシステムの広がりを抑えるほど高かったのです。その障壁は、今やなくなりました。
エクスポートも増加している
もちろん、これらの工場から出てくるのはソフトウェアです。膨大な量のソフトウェアが。
これにはマイナス面もあります。マイナス面は十分に明らかだと思うので、ここで多くの時間を割くつもりはありませんが、存在することは認めておきたいと思います。セキュリティの脆弱性、不安定さ、そして基幹システムがどのように動いているのかについての理解不足などです。
しかし、プラス面も非常に多くあります。
品質のハードルが下がる。 幅広いユーザー層に使われるメインラインのアプリケーションは、すべての機能を互いに対して慎重に衡量しなければなりません。どのように相互作用するのか。長期的なビジョンに合致するのか。何百万人ものユーザーに向けて維持できるのか。一方で、1人から数百人を対象とする工場の生成物は、こうしたことを気にする必要がありません。その結果、より速く、より緩やかにリリースできるのです。
認知度が高まる。 メインラインのアプリケーションはすべてをこなすことはできません。通常、最も多くのユーザーが求め、利用するユースケースに最適化されます。一方、工場の生成物はごく小さなユーザー層に最適化でき、その結果、そのユーザー層がビルディングブロック自体を認知するようになります。Ghosttyでもこれを強く実感しています。非常にニッチなコミュニティにまでターミナルが届いているのです。
保守の負担が軽くなる。 機能要望に対して「結構です」と断ることが、これまでになく容易になりました。なぜなら、生産手段の重要な部分を提供しているからです。雑多な要望(slop requests)への対応に苦慮してきたことは公然の事実で、「no machine」を作ったほどですが、「断る」ことへの後ろめたさは日々薄れています。
研究開発が外部化される。 メンテナーとして、他者が何をしているかを見て、動くプロトタイプを確認し、どれをメインラインに取り込むかを決めることが、今は格段に容易です。口先の議論は減り、実際に動くものが増えました。そして他者が歩みを進める間に、最も良いアイデアだけを選りすぐることができます(これは公平な関係です。あなたはビルディングブロックを提供し、彼らはアイデアを提供しているのですから)。
影響
これは、ソフトウェアとプロダクト開発に対する私の見方を変えつつあります。
私は今、ビルディングブロックを作ること、そしてその上にアプリケーションやフォークが生まれることを促すことを、より意識的に行っています。それが、より幸せで、より大きなコミュニティにつながり、最終的にはより良いメインラインのソフトウェアを生んでいると感じています。
高品質なアプリケーションがなくなるわけではありません。ビルディングブロックの開発者が作る高品質なアプリケーションがなくなるわけでもありません。ほとんどのソフトウェアカテゴリにおいて、パーソナライズされた雑多なソフトウェアではなく、磨き込まれ、適切に保守され、しっかりサポートされたアプリケーションを求める多数派は、常に存在し続けると思います。
むしろ、ビルディングブロック経済のおかげで、メインラインのアプリケーションはより安定し、機能セットもより目的が明確になっていると考えています。安定性は、より大きく多様なユーザー層からもたらされます。機能セットは、外部化された膨大なR&Dのエコシステムから生まれます。メインラインのアプリケーションは今もなお、抑制が効き、高品質で、よく保守されています。ただ、それは特定の層に向けたものなのです。
部屋の中の象:商業化
次に当然浮かぶ疑問は、これが商業化にとって何を意味するのかということです。クローズドソースの商用ソフトウェアは、圧倒的に不利な立場にあるように見えます。実際、不利なのです。
エージェントは、クローズドで商用なものよりも、オープンで無料のソフトウェアをより積極的に選びます。この記事を書いている時点では、これは客観的な事実です。人気のあるモデルで実験を行っている独立系の研究機関は、さまざまな条件下でモデルが商用よりもオープンで無料の代替を選ぶことを繰り返し確認しています。少なくとも今のところは。
ただ、この点について私は明確な答えを持っていません。プロダクトやソフトウェア開発とは異なり、今まさに商業化可能なプロダクトを直接作っているわけではないからです。考えはありますし、他の難しい問題と同様に、答えは一筋縄ではいかないと思っています。しかし、権威ある口ぶりで語っているような錯覚を与えたくないので、ここでは深入りしません。実際に行動し、より多くを学んだときに、また共有したいと思います。
ここでも、この課題が明らかに存在することを、ただ認めておきたいと思います。
転換はすでに起きた
私たちは、ビルディングブロックとソフトウェア工場が身の回りのすべてを支配していることを受け入れ、その結果を内面化しなければなりません。
私たちは反対方向へ走り、それに抗う飛び地を作ることもできます。あるいは、完全にカオスに身を委ねることもできます。私を知る人は、私の行動がそうした極端さとは程遠く、文脈によって異なる意見を持っていることを知っているでしょう。
要点は、転換はすでに起きたということです。私たちはその中に生きているのです。
脚注
ただし、ビルディングブロック自体は通常、高品質で、堅牢で、十分に文書化されている必要があります。↩
正確な数値を得ることは当然ながら困難です。Ghosttyには実質的なトラッキングがないからです。macOSについてはアップデートファイルのチェック数の集計を見ることができます。Linuxについてはまったく可視性がありません。libghosttyにもトラッキングはありませんが、libghosttyを統合しているツール側でトラッキングがあり、集計を共有してくれたものがあります。↩
ここで「エージェント」という言葉は、単にツールへのアクセスを持ちループ内で動作する大規模言語モデルを意味するために使っています。マーケティング用語で誇張したり、気取ったりしようとしていると思われることもありますが、特定の、広く受け入れられた定義として使っています。↩
記事をランダムに読む