なぜ使う人は作り、作る人は無料で配るのか: Webバックエンドの静的型付けが映す、ソフトウェアの二つの才能

石川篤

Hatched by 石川篤

Jul 24, 2026

1 min read

74%

0

「作る」のに、なぜそんなに人格差があるのか

プロダクトを作る人には、ある種の分かりやすい報酬がある。画面ができる。ユーザーが触る。数字が動く。感想が返ってくる。手応えが見える。だから多くの人は、アプリや Web サービスを作ることに自然に惹かれる。

一方で、ライブラリやフレームワークを作る人は、もっと奇妙だ。自分が直接触る画面はない。ユーザーは多いのに顔は見えない。しかも苦労して作ったものを、しばしば無料で公開する。まるで、車を作らずにエンジンの設計図を先に配るようなものだ。

さらに驚くべきことに、Web バックエンドで強い静的型付けを求めると、現実には選択肢がかなり狭く見えてくる。Go、Rust、Scala。少なくとも「正気に強い」と感じる人が、このあたりに収束しがちだ。

この二つの感覚は、別々の話に見えて実は同じ問いに触れている。

ソフトウェアは、なぜ「触る快楽」を作る才能と、「触られない基盤」を作る才能に分かれるのか。

そして、その分岐は単なる好みではない。静的型付けのような設計思想が、開発者の快楽、認知負荷、長期的責任の分担まで含めて、ソフトウェアの「作り方の倫理」を露わにしている。


プロダクトは欲望で動き、基盤は信頼で動く

アプリや Web サービスを作るとき、報酬は即時的だ。ボタンを押せば反応がある。ログインできれば成功だ。売上や DAU が上がれば、努力が数字に変換される。ここでは、開発者は欲望の回路の上に立っている。使われること、評価されること、成長することが、そのままモチベーションになる。

しかしライブラリやフレームワークは違う。自分が目立つのではなく、他人が目立つための土台を作る。成功の証拠は、誰かが「この基盤を当然のように使っている」ことだが、それはしばしば静かで見えにくい。むしろ褒められるのは、その上に作られたアプリのほうだ。

ここで必要になるのは、欲望ではなく信頼である。あなたは「これが世界で広く使われ、なおかつ壊れない」と信じてもらうために、未来の責任を先払いする。API 設計、互換性、型の整合性、エラー設計、ドキュメント。どれも地味だが、後から取り返しがつかない。

だから基盤を作る人のモチベーションは、単なる奉仕精神では説明できない。むしろ彼らは、自己表現よりも世界の可搬性に魅力を感じている。自分の手元の成功より、自分が作った原理が他者の思考を短縮することに快感を覚える。これは聖人性というより、認知の性質の違いだ。

アプリは成果を見せる。ライブラリは思考のコストを削る。

この違いは大きい。前者は「何を作ったか」が中心で、後者は「どれだけ考えなくて済むようにしたか」が中心になる。人はしばしば前者に惹かれるが、文明を下支えするのは後者だ。


静的型付けは、コードのためのものではなく、人間のためのもの

静的型付けの話になると、よく「バグを減らす」「IDE が賢くなる」「リファクタリングしやすい」といった機能的な利点が語られる。もちろんそれは正しい。しかし本質はもっと深いところにある。

静的型付けは、コードに秩序を与えるというより、人間の認知に境界を引く技術である。大規模なバックエンドでは、全部を頭に入れることは不可能だ。だから型は、「ここまではこの概念、この先は別の概念」と明確に分ける。曖昧な自由を減らし、誤解の余地を減らし、共同作業を可能にする。

この点で、Go、Rust、Scala が強い理由は、それぞれの哲学が違っても、いずれも「認知負荷の分散」に真剣だからだ。Go はシンプルさで脳を軽くし、Rust は所有権で壊れ方を厳密にし、Scala は表現力で複雑な領域を型に載せる。どれも違う道だが、共通しているのは、人間の曖昧さを仕様に押し戻すことだ。

ここで重要なのは、強い静的型付けが「優秀な人だけの武器」ではないことだ。むしろ逆で、優秀な人ほど自分の頭脳に頼りがちだからこそ、未来の自分や他人の脳を守る仕組みが必要になる。型は、能力の不足を補うだけでなく、能力の過信を抑える。

例えば、バックエンドで決済、在庫、権限管理、監査ログが絡むとする。動的型付けでも実装はできる。だが、変更が増えるほど「この値は本当に存在するのか」「この関数は何を受け取り、何を返すのか」「この変換はどこで保証されるのか」が暗黙になりやすい。静的型は、その曖昧さをコードレビュー前に炙り出す。

つまり型は、コンパイラのための制約ではない。未来のチームに対する契約である。


生成する快楽と、制約する美学は、実は同じものかもしれない

一見すると、ユーザー向けアプリを作る楽しさと、基盤や型システムを磨く楽しさは正反対だ。前者は自由で、後者は制約的だ。前者は画面が変わり、後者は見えない。前者は成果が分かりやすく、後者は抽象度が高い。

しかし、ここにひとつの逆説がある。良いソフトウェアほど、自由を生むために強い制約を先に作る。

アプリの開発者は、ユーザーに自由な体験を提供したい。そのためには、内部では厳密な状態管理が必要だ。メニューは自由に選べても、注文処理は一意でなければならない。編集画面は柔軟でも、保存形式は揺らいではいけない。ユーザー体験の自由は、内部設計の不自由によって支えられている。

ライブラリやフレームワークの開発者は、その不自由をさらに一段深い層で引き受ける。彼らは「使う側が迷わないように、作る側が迷っておく」仕事をしている。だから、静的型付けの強さは単なる安全装置ではなく、迷いを事前に設計へ埋め込む装置だと言える。

ここで役立つ見方がある。それはソフトウェアを、次の三層で捉えることだ。

  1. 表層: ユーザーが触る部分。速さ、分かりやすさ、楽しさ。
  2. 中層: チームが触る部分。可読性、型、安全性、保守性。
  3. 深層: 他者が再利用する部分。抽象、互換性、契約、拡張性。

多くの人は表層で満足する。優れた基盤開発者は中層と深層に快感を見出す。そして静的型付けは、ちょうど中層から深層にかけて最も効く。なぜなら型は、単にミスを防ぐのではなく、共有される抽象の形を固定するからだ。

自由な体験は、厳密な内部からしか生まれない。

この視点に立つと、ライブラリを作る人の気持ちが少し分かる。彼らは車を作らずにエンジンの作り方を公開しているのではない。むしろ、誰もが自分の車を作れるように、エンジンの周りに再利用可能な秩序を置いているのだ。


「正気な人間なら Go, Rust, Scala」という感覚の正体

この一言が鋭いのは、単に言語機能の比較をしているからではない。そこには、認知負荷をどこまで言語に預けるかという実務上の哲学がある。

Go を選ぶ人は、複雑さを減らしたい。Rust を選ぶ人は、安全性を形式化したい。Scala を選ぶ人は、複雑な領域を型で表現したい。いずれも「人間が頑張れば何とかなる」ではなく、「人間の頑張りを仕様化したい」と考えている。

この感覚は、成熟したバックエンドほど強くなる。なぜなら、システムが成長するにつれて、問題はコード量ではなく境界の数で決まるからだ。サービス間境界、権限境界、データ境界、信頼境界。境界が増えるほど、暗黙知は事故に変わる。静的型付けは、その境界を明示するための最も強い道具のひとつになる。

ただし、ここで注意したいのは、「強い型があれば安心」ではないことだ。型は設計の代替ではない。悪い抽象を美しく固定してしまうこともある。だから本当に重要なのは、型をどう使うかではなく、どこを型で固定し、どこを意図的に緩くするかだ。

例えば、認証トークン、金額、状態遷移、外部 API のレスポンスは、型で厳密に固定する価値が高い。一方で、ログメッセージや UI 文言のような部分まで過剰に硬くすると、変更のたびに摩擦が増える。良い基盤は、全てを硬くしない。壊れて困る場所だけを硬くする。

その意味で、言語選択は単なる好みではなく、組織がどの種類の責任を自動化するかの宣言でもある。


Key Takeaways

  • アプリ開発と基盤開発は、報酬の種類が違う。 前者は結果が見える快楽、後者は他者の認知コストを下げる快楽に支えられている。
  • 静的型付けはコンパイラのためではなく、人間のための境界線。 チームの共通理解を、実行前に固定する役割がある。
  • 強い型は自由を奪うのではなく、自由を安全にする。 ユーザー体験の柔軟さは、内部の厳密さによって成立する。
  • Go, Rust, Scala が選ばれやすいのは、性能や流行だけではない。 認知負荷を仕様に押し込める設計思想が、バックエンドの現実に合っているから。
  • 型で硬くするべきなのは、壊れて困る境界だけ。 全部を硬くするのではなく、契約が重要な場所を選んで固定するのが賢い。

目立つプロダクトより、世界を軽くする基盤へ

私たちはつい、作ったものが見えるほど価値が高いと思ってしまう。画面があるもの、売上が立つもの、SNS で説明しやすいものが勝つ。しかしソフトウェアの本当の価値は、しばしば見えない場所にある。誰かの意思決定を一回減らすこと。誤解を一件減らすこと。変更の恐怖を一段減らすこと。

ライブラリやフレームワークを作る人は、派手な達成感よりも、世界の摩擦を減らす喜びに賭けている。そして強い静的型付けは、その仕事を最も露骨に支える道具の一つだ。型が厳しいほど開発は楽ではなくなることがあるが、その代わり、将来の迷いと損失は確実に減る。

だから本当に問うべきなのは、「どうしてそんなものを無料で作るのか」ではない。むしろ逆だ。

どうして私たちは、他人の思考を何年も支える基盤が、こんなにも高い価値を持つことを、もっと自然に尊敬しないのか。

アプリは人の欲望を満たす。基盤は人の思考を軽くする。どちらも必要だが、成熟したソフトウェア文化がどちらをどれだけ評価するかで、技術の未来は大きく変わる。次にコードを書くとき、画面の向こう側だけでなく、誰かの頭の中にある負荷まで減っているかを考えてみてほしい。それが、単なる実装から、長く残る設計への第一歩になる。

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣
なぜ使う人は作り、作る人は無料で配るのか: Webバックエンドの静的型付けが映す、ソフトウェアの二つの才能 | Glasp