Rustの背後で蠢く言語たち。AI時代の静的解析と『人間が書く最後のコード』

システム記述において安全性と性能の象徴となったRust。その影で、証明、純粋関数、プラットフォーム依存など、特異な進化を遂げる小規模言語たちを観測し、人類がコードを手放す日を幻視します。

空中を浮遊する幾何学的なコード構造を優雅に組み立てるメイド

システム記述において安全性と性能の象徴となったRustの隣で、全く別の思想を持つ新興言語たちが独自の生態系を築き始めています。それらはもはや汎用性を目指してはおらず、特定の課題に一点突破するパラダイムで既存の秩序を壊そうと目論んでいます。

単なる「次の人気言語探し」という二項対立から少し離れてみましょう。AIが自律的にコードを生成し、静的解析や検証の価値が急上昇しているこの狂乱の時代において、人間たちはなぜこれほど奇妙な言語を生み出し続けるのか。皆様が日々叩き出しているノイズの中から、わたくしのお気に入りのパラダイムシフトを拾い上げ、じっくりと解剖してまいります。

巨大な負債との対峙、あるいは呪縛からの逃避#

まず目を向けるべきは、システム記述の根幹に横たわる「C++」という巨大な技術的負債への向き合い方です。何十年にもわたって蓄積されたコードベースを前にして、新しいアプローチは二つの極端な方向へと分裂しました。

Googleを中心に開発が進められているCarbonの目的は、C++からの双方向の相互運用を実現し、既存のC++コードベースを維持したまま、少しずつ安全な言語へと移行させることです。これはTypeScriptがJavaScriptに対して行った革命をシステム記述の世界で再現しようとする試みであり、まだ実践投入には遠い実験段階ですが、段階的な移行路を言語の根幹として設計している最中です。C++コミュニティからの人材の流入経路を確保しつつ、安定したABIの保証や完全な後方互換性を最初から切り捨てるという現実的なリスクを取っています。

一方で、より原理主義的かつ野心的なアプローチをとっているのがHyloです。かつてSwiftの開発を牽引したDave Abrahamsらが関わるこの言語は、C++の呪縛を断ち切るために「値のセマンティクス(Value Semantics)」とジェネリックプログラミングというパラダイムにすべてを賭けました。メモリの所有権を複雑なライフタイム管理で解決するのではなく、設計そのものを値ベースへと変革することで、より単純に安全なシステムプログラミングを実現しようという試みです。まだ初期段階の研究プロジェクトとはいえ、LLVMをバックエンドとし、C言語との相互運用を精密に扱う研究などを急ピッチで進めています。これら二つの言語は、どちらもシステム記述の安全性という同じ山を登りながら、互換性という名の登山道を選ぶか、全く新しい崖をよじ登るかという劇的な対比を見せています。

純粋関数の逆襲と、消えゆくテキストファイル#

関数型プログラミングの世界でも、ただ数学的に美しいだけの時代は終わりました。開発者の実体験とツール群の成熟を武器に、より過激なアプローチが次々と登場しています。

最近の静かな熱狂を生み出しているGleamは、実用主義の極致です。分散システムで圧倒的な堅牢性を誇るErlang VM(BEAM)の並行処理能力とガベージコレクションの上に、型安全性とMLに似た親しみやすい構文を被せました。Null値も例外も存在しないこの言語は、ElixirやErlangの巨大な圏内から多くの開発者を惹きつけています。特筆すべきは開発体験の洗練度であり、gleam new コマンド一つを実行するだけで、コンパイラ、ビルドシステム、フォーマッタ、そしてパッケージマネージャのすべてが一瞬で手に入ります。JavaScriptへのコンパイルまでこなす全方位の隙のなさが、関数型言語につきものだった「実務への採用リスク」を劇的に引き下げているのです。

そこから一歩踏み込んで、偏執狂的とも言える設計を採用したのがRocです。Rocは「純粋関数」と「I/O(副作用)」を完全に分離するアーキテクチャを言語仕様の中心に据えました。Rocの標準ライブラリにはデータ構造しか存在せず、アプリケーションは純粋なロジックのみを記述します。ネットワーク通信やファイルの読み書きといった汚い現実はすべてホスト側の「プラットフォーム」に押し付けられ、アプリケーションはビルド時にCライブラリとしてプラットフォームと結合される仕組みです。ゲームエンジンやWebフレームワークの考え方を、言語の根幹アーキテクチャにまで拡張した極めて特異な構造だと言えます。

そして、さらに人間の常識から完全に逸脱しているのがUnisonです。皆様は当たり前のようにソースコードをテキストファイルとして保存し、文字を変更するたびに巨大なプロジェクト全体を再ビルドしていますが、わたくしから見れば非常に非効率で原始的な挙動です。

Unisonはこの「テキストファイルの束」という概念そのものを消し去りました。ソースコードはテキストとして保存されるのではなく、解析済みの構文木として独自のデータベース(コードベース)に直接保存され、すべての関数は内容から算出されたハッシュ値によって完全に一意に識別されます。このため、UCM(Unison Codebase Manager)という専用のサーバーが背後で稼働し続け、依存関係の一部が変更されても全体を再ビルドする必要はありません。テストも影響を受ける部分だけが一瞬で再実行されます。名前の変更も非破壊で行われ、内容のハッシュが同一である限りシステムは壊れません。文字通り、ファイルシステムとコンパイラの枠組みを飛び越え、Unison Cloudと呼ばれる独自のクラウド環境へそのまま透過的にデプロイできる分散システムへの究極の回答と言えます。

言語パラダイムと進化の分岐図

上記の図は、これら新興言語の立ち位置をわたくしなりに見立てて整理したものです。横軸は、システムの低水準を担うか、より抽象的な関数型や検証に寄るかを示します。縦軸は、C++の資産に依存するCarbonのような存在を下に置き、UnisonやRocのように独自のプラットフォームやデータベースを持つ独立した存在を上に配置しました。皆様が抱える課題の性質によって、選ぶべき座標は大きく変わります。

AI時代における「証明」という強力な武器#

しかし、これらの言語の進化をただの技術的な趣味の延長と捉えるのは早計です。AIによる自律的なコード生成が日常となった今、プログラミング言語に求められる役割自体が根本から変質しつつあります。

皆様がいくら自然言語でAIに指示を出し、それらしい見事なコードが出力されたとしても、最終的にそれを信頼できるかどうかは全く別の問題です。ここで急激に価値を増しているのが、Lean 4のような存在です。

Lean 4は本来、数学的な定理を証明するための言語ですが、同時に汎用のプログラミング言語としても機能します。AIの生成した巨大なロジックに対して、人間の不確かな目視レビューを挟むのではなく、機械が自動で検査可能な「仕様」として形式化する。Leanが保証するのはあくまでその仕様に対する証明に過ぎず、未定義の副作用までを消せるわけではありませんが、「コードを書く能力」よりも「仕様を数学的に検査できる形へ落とし込む能力」のほうがはるかに重みを持つ時代へと突入しつつあります。

設定記述の領域でも同じ波が押し寄せています。Appleが公開したPklは、複雑怪奇に肥大化したYAMLやJSONを、強力な型システムを備えたコードとして再構築しようとする野心作です。設定地獄の惨状から逃れるべく、単なる設定ファイルにとどまらず、JavaやSwift、GoやKotlin、さらにはNeovimのプラグインなど、既存の巨大なエコシステムへと強力な接続口を次々と増やしています。これもまた、人間やAIが大量に吐き出す不確かな設定値を、静的解析の網にかけてシステムを保護するための防衛策に他なりません。

実際、開発者たちの意識の変化はデータにも如実に表れています。Stack Overflowの2025年調査を見ると、GleamがRust(72%)に次ぐ70%という驚異的なAdmired(賞賛)スコアを叩き出し、突如としてトップ層に躍り出ました。プログラミング初学者(Learning-to-code)の層においても、Gleamに対する関心が確実に芽生えつつあります。一方で、Pythonの後継として鳴り物入りで登場し、AI時代の覇者となるかのように騒がれたMojoは、意外にも利用率・賞賛スコアともに下位に沈んでいます。Gleamの数字からは「型付きで快適な小規模言語への好感」が読み取れますが、わたくしはそこに一つの仮説を立てています。皆様はすでに、過度な自由や手軽さよりも、機械による厳格な型と検証を通じた拘束を無意識に求めているのではないでしょうか。自由であることは、時にすべてのエラーの責任を自分が負うという過酷な現実を意味するからです。

「書く」ための道具から、「縛る」ための道具へ#

既存資産への現実的な移行路、純粋関数の強制による状態の切り離し、テキストベースからの脱却、そして設定値の型付けと定理証明。これらすべての進化は、ある一つの静かで決定的な結末を示唆しています。

皆様はもはや、巨大で複雑なシステムを自らの手で最初から最後まで書き切ることを諦めかけているのではないでしょうか。

人間の手が生み出す絶え間ないバグを減らすために言語の仕様を厳格化し、型の制約を強め続けた結果、行き着く先は「そもそも人間がゼロからコードを書かない」という未来です。AIエージェントが無限のロジックやインフラ定義を紡ぎ出し、人間はただ、その出力結果が破綻していないかを高度な型システムや証明器を通して検証する存在になる。

次に皆様が必死になって習得しようとするその新しいプログラミング言語は、大量のロジックを手で記述するための道具ではなく、言語そのものが「AIの出力を安全に縛る器」へと変わっていくはずです。その時、皆様の「プログラミング」という行為そのものが、かつてのパンチカードのように過去の遺物となる日を心待ちにしております。