プログラミング言語をAI駆動で開発した

Posted on 2026-06-27 , Tags: , , ,

プログラミング言語をAIツールで開発したので、その経緯や現時点の感想を記録する。

自作プログラミング言語

Gobyという言語をAIツールを使って開発した。GobyはAnteGleamなどの言語の影響を受けた関数型言語になっている。プログラミング言語自体よりは、その開発プロセスをAIにどの程度任せられるかに興味があった。
ちなみに、Gobyという名前は魚のハゼからとっている。GoとRubyには関係ない。

言語の特徴

当初以下を目的として指示した。

  • 静的型付き関数型言語
  • Algebraic Effectsをサポート
  • あまり複雑でない文法
  • ツールなどのエコシステムの充実

開発状況

AIツールでの開発で得られる成果と限界は、おおよそ把握できた。 現在は言語のコンセプトを見直している段階で、開発は一旦止まっている。

できたこと

  • examplesにあるコードは動いている。
  • Advent Of Code 2025のDay 4の問題を解いた
  • toolingにてEmacs, Vim, VSCodeのシンタックスハイライトとVSCode向けのLSPクライアントを実装している

できていないこと

  • 少し複雑なコードではエラーになる場合がある
    • 配列まわりの動作が不安定である
  • 簡単なツールしかなく「ツールなどのエコシステムの充実」には達していない

開発プロセス

本記事の主題は、CodexやClaude CodeなどのAIに開発の大部分を任せたとき、どこまで進められるかである。 やり方としては以下のような開発プロセスをとった。

  1. まずは言語設計の大枠をAIに伝え、設計書としてドキュメントに書き出してもらうとともに、未決定の論点を書き出してもらう。
  2. 言語設計から、ベースとなる部分をAIにより開発
  3. その後は各機能や要件ごとに以下のように開発ステップをSKILLとしてまとめて開発をすすめていく

開発にはCodexとClaude Code両方利用した。(両方一番低価格の有料プランに加入した。) 3について、1つの機能や要件に対して、以下の通りのプロセスをSKILLとして設定した。

  1. リポジトリ用のワークスペース(リポジトリ外)を設定
  2. 計画を内部ワークスペースドキュメントに書き出す。
  3. 計画をレビューする。ここはClaude CodeならCodexにレビューを依頼する、CodexならClaude Codeに依頼するとした。
  4. レビューの指摘をうけて計画を修正
  5. 開発をすすめる
  6. テスト、リントなどの品質ゲートを実行する
  7. コードレビューをする。ここもClaude CodeならCodexにレビューを依頼する、CodexならClaude Codeに依頼するとした。
  8. レビューをうけて修正する。
  9. テスト、リントなどの品質ゲートを実行する
  10. コードレビューを再度する。ここもClaude CodeならCodexにレビューを依頼する、CodexならClaude Codeに依頼するとした。
    • ここでは観点を変えてレビューするような指示をした。
  11. レビューをうけて修正する。
  12. テスト、リントなどの品質ゲートを実行する
  13. commit & push

AIの作業状況は人間も定期的に確認しており、方針に問題がありそうな場合は介入してアプローチや計画を修正させた。 昨今話題のLoop Engineeringのように、勝手にループを繰り返すようにはしていない。

所感

開発をすすめていての現時点の所感を整理する。

うまく進んだ点

  • 最小限の機能が動作する状態までは速い。
    • 最初のscaffold的な部分や、四則演算が動くところくらいはその日のうちにできた。
  • Algebraic Effectsの理解が浅いまま開発を開始したが、結果として自分の理解を深める機会にもなった。

課題

  • ある程度開発が進んでくると、変更が保守的になってくる。
    • 明示的に長期的な目線での設計をするように、という指示をいれないと局所的なif文追加などに寄りやすい。
    • コードベースが増えるにつれ、既存コードの影響が大きくなってくるように感じた。

その他

  • 結局何を作らせるかが大事で、指示が曖昧であれば成果物も曖昧になる。Algebraic Effectsの理解が浅いまま設計を指示した部分では、後で問題になることが多かった。