← 最新の論文
💻 computer science

Jas: AI-Paired Engineering as a Revival of N-Version Programming

本論文は、精密な実行可能仕様に基づき、並行的なNバージョン実装を通じて検証されるAI併用エンジニアリングが、単一の開発者による約120時間での5つの異なるソフトウェアポートの作成を可能にし、1980年代のコスト的に困難であったNバージョンプログラミング手法を事実上復活させることを示すケーススタディを提示するものである。

原著者: Jason Hickey

公開日 2026-06-09
📖 1 分で読めます☕ さくっと読める

原著者: Jason Hickey

原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

想像してみてください。あなたは、複雑でハイエンドな描画アプリ(ミニ・アドビ・イラストレーターのようなもの)の異なる5つのバージョンを作りたいと考えています。昔であれば、これは、同じ家を設計するために、それぞれ異なる言語を話す5人の熟練した建築家を雇うようなものでした。それには何年もかかり、莫大な費用がかかったことでしょう。

ジェイソン・ヒッキーという一人の開発者は、全く異なる方法を取りました。彼は、夜間の時間だけを使って、わずか7週間でこのアプリの5つの動作バージョン(Rust、Swift、OCaml、Python、およびウェブブラウザ用)を構築したのです。彼はチームを雇ったのではありません。彼はAIをパートナーとして利用したのです。

その手法を、分かりやすく説明します。

1. 「マスター・ブループリント(基本設計図)」(実行可能な仕様書)

通常、異なるプラットフォーム向けにソフトウェアを構築する場合、プラットフォームごとにアプリのルールを一から書き直さなければなりません。カラーピッカーの仕組みを変更したい場合、5つの異なるコードベースすべてを更新する必要があります。

ヒッキーはそれとは逆のことをしました。彼はたった一つの「マスター・ブループリント」(YAMLと呼ばれる言語で書かれた23,000行のドキュメント)を作成しました。

  • 比喩: この設計図を、単なる静的なPDFではなく、**「生きたレシピ」**だと考えてください。それは単に「赤いボタンを作る」と言うだけではありません。「ボタンがどのように見え、クリックしたときにどのように反応し、次に何が起こるのか」を正確に記述しています。
  • 魔法のような仕組み: この設計図は「実行可能」です。コンピュータはこの一つのレシピを読み取り、5つの異なるアプリのためのユーザーインターフェースを自動的に構築します。もしヒッキーがルールを変更したいと思えば、一箇所を変更するだけで、即座に5つのアプリすべてに反映されます。

2. 「五頭のドラゴン」(Nバージョン・プログラミング)

1980年代、エンジニアたちは「Nバージョン・プログラミング」と呼ばれる手法を試みました。その考え方は、「もし独立して構築された5つの異なるバージョンのシステムがすべて一致すれば、それは正しいと言える。もし意見が食い違えば、何かが間違っていることが分かる」というものでした。

  • 問題点: しかし、それはコストがかかりすぎました。5つの異なるバージョンを書くために5つの異なるチームを雇うのは、お金の無駄だったのです。
  • AIによるひねり: ヒッキーは、AIを使ってこのアイデアを復活させました。AIが異なる言語のためのコード作成という重労働を担えるため、彼は一人でも5つのバージョンを構築することが可能になったのです。
  • セーフティネット: これら5つのバージョンは、**「5人の陪審員」**のように機能します。もし「Rust」版のアプリが色を赤に変えたのに、「Python」版が青に変えたとしたら、システムは即座に問題を検知します。彼らは互いに「差分テスト(differential testing)」を行います。もし意見が食い違えば、それはマスター・ブループリントが不明瞭であったか、あるいは一つのバージョンがミスをしたことを意味します。

3. 「エスケープ・ハッチ(脱出路)」

マスター・ブループリントは約90%の作業をカバーします。しかし、特定のコンピュータ・プラットフォーム(iPhoneやウェブブラウザなど)には、一般的な設計図では記述できない特別なテクニックが必要になることがあります。

  • 比喩: 設計図が標準的な家のプランだとしましょう。しかし、「Rust」の家は地面が岩だらけなので、特別な補強された地下室が必要です。設計図は全員に対して壁や屋根を扱いますが、「Rust」のチームは独自の特別な地下室を作る必要があります。
  • ヒッキーはこれを**「エスケープ・ハッチ」**と呼んでいます。これは、共有される部分のほかに、各プラットフォームごとに必要となる少量のカスタムコードのことです。

4. プロセスの流れ(ループ)

ヒッキーはただコードを打ち込んで期待するだけではありませんでした。彼は特定のループを使用していました。

  1. 設計: 平易な英語でプランを作成する。
  2. AIレビュー: AIにプランの欠陥を探させる(「何が足りないか? 何が紛らわしいか?」)。
  3. ブループリントの更新: AIのアドバイスに基づいてマスター・ブループリントを更新する。
  4. 構築とテスト: AIが5つのアプリのためのコードを生成する。
  5. 「人間の目」によるチェック: これが最も時間がかかる部分でした。ヒッキーは5つのアプリをすべて並べて手動で確認しました。もし一つでも見た目が変であれば、ブループリントを修正する必要があると判断しました。

結果

  • 時間: 約120時間の夜間作業(約7週間)。
  • 成果物: 一つのコア・ロジックを共有する、完全に機能する5つのアプリ。
  • コスト: 「複数の開発者による数年間」の代わりに、一人の人間が数ヶ月で行いました。

注意点(限界)

この論文は、これが何を行わないかについても正直に述べています。

  • 完成した製品ではない: これらのアプリには、プロ向けのツールに見られる高度な機能(複雑な3Dメッシュやプロフェッショナルな印刷機能など)が欠けています。これは「実質的なサブセット(一部)」であり、完璧なクローンではありません。
  • AIに依存している: もしAIが混乱したり、「ハルシネーション(幻覚/もっともらしい嘘)」を起こしたり(架空のコードを生成したり)した場合、5つのバージョンが食い違うことでシステムがそれを検知します。しかし、AIがある特定のタスクにおいて不得意な場合、プロセス全体が停滞します。
  • 人間を必要とする: タイピングはAIが行いましたが、結果を確認し、ロジックを修正し、AIが昨日決めたことを忘れないようにプロジェクトの「記憶」を管理するのは人間でした。

大きな教訓

この論文は、**「AIがソフトウェア・エンジニアリングの経済性を変えた」**と主張しています。
以前は、品質を確保するためにソフトウェアの複数のバージョンを構築することはコストがかかりすぎました。しかし今では、AIが反復的なコーディングを担うことで、一人の開発者が品質チェックのための「陪母審員」としての5つのアプリを構築できるのです。これにより、コストのために放棄された1980年代の手法が、今日では一人の人間にとって実用的なツールへと変わりました。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →