日本語プログラミング言語「なでしこ3」の開発者が、9年の歳月をかけて開発してきた約3万行規模のコードを、Go言語でゼロから書き直し、わずか1週間でリリースした。企画からリリースまでわずか1週間で、主要な言語コアとライブラリに至っては、わずか1日で実装されたという。この背景には、AIの活用があった。
開発のきっかけはベッドの中でのAIとの会話
「なでしこ」は、日本語でプログラムを書くことができるプログラミング言語で、2004年に開発が始まった。「誰でも簡単プログラマー」を掲げ、現在までアクティブに開発が続けられている。現行の「なでしこ3」は、2017年にJavaScriptで書き直したコードベースが中心で、ブラウザ上で動くツールやゲームを開発できる。そのコア部分のコードの総行数は約3万行ある。
今回の書き直しのきっかけは、夜、ベッドの上でスマートフォンを開き、AIと会話したことだった。ChatGPTアプリのリモート画面を開き、「なでしこ3を作り直すとしたら…」という簡単なつぶやきを書き込んだところ、さまざまなプログラミング言語や実行環境で「なでしこ」を作り直した場合のメリットとデメリットが詳しく提示された。その内容に興味を持ち、質問を繰り返すうちに、実装計画までできあがってしまったという。
スマートフォン版のChatGPTアプリには「リモート」という機能があり、PC上で実行しているCodexに指示を与えたり、会話したりできる。ベッドの上でCodexと会話していると、アイデアがどんどん発展していった。Codexはローカルにある情報にもアクセスできるため、実際に現在のなでしこの実装を調べながら答えてくれたという。
ほぼ1日でコア機能が実装完了
その計画が良さそうに思えたため、翌朝起きて、「実装してみて」と一言書き込んだ。すると、その日の夜には、実行エンジンと基本ライブラリが完成していた。ほぼ1日で言語のコア機能が実装できてしまったのだ。FizzBuzz問題を解くプログラムが実行できるのはもちろん、ファイル操作のような定型処理や、データベースへのアクセス機能まで実装されていた。その後、1週間、仕事の合間にバグを直したり、機能をブラッシュアップしたりして、リリースに至った。
今回の開発で主に使ったのは、コーディングエージェントの定番である「Claude Code」と「ChatGPT/Codex」で、補助用として、GoogleのGeminiを搭載したAntigravityも所々で使われた。Claude CodeではOpus 5とSonnet 5を、CodexではGPT-5.6 Solを利用した。ただし、高性能なモデルばかり使っていると、あっという間に利用制限に達してしまうため、実装計画を立てる時にはOpus 5やGPT-5.6 Solを使い、実装やテストには、やや軽量なSonnet 5やGPT-5.6 Terraを使う、というように役割を分けた。
仕様の明確化が成功の鍵
プログラミング言語のような高度なソフトウェアを作るには、高性能なAIモデルが必要に違いないと思う人もいるかもしれない。しかし、プログラミング言語を実装するためのアルゴリズムは長年にわたって研究されており、さまざまな製品に応用されている。そのため、実装方針さえ明確になっていれば、必ずしも最上位のモデルを使わなくても、計画に沿って正しく実装することができた。ちなみにClaudeでは、Opus 5よりも性能の高いFable 5.1も提供されているが、今回、それほど高度なモデルを使いたくなる場面は一度もなかったという。
今回のリリースまでの経過を振り返ってみると、特にうまくいったのは、AIに対して仕様を明確に提示できたことだった。AIにアプリ開発を依頼する場合、指示が不明瞭だと、思ったようなアプリを作り上げることはできない。今回、これほど短期間に、たった一人で3万行を超える規模のプログラミング言語をリリースできたのは、すでに「なでしこ3」という既存の実装があり、それをGo言語で作り直すという、とても明確なゴールがあったからだと考えられている。
加えて、なでしこ3の開発が始まってから9年が経過しており、その間、ユーザーと一緒にコツコツと積み上げてきた膨大なWikiのドキュメントや、Web上で公開されている多数のサンプルプログラムがあったことも、大きな助けになった。そうした役に立ちそうな資料一式をプロジェクト内に配置しておいたところ、AIの実行ログを見ると、実装に迷った時には、現行版の挙動を確認したり、Wikiのドキュメントを参照したりしながら作業していることが分かったという。
AIを活用した開発手順とバグ発見
実際の開発は、次のような手順で進められた。まず、現行のなでしこ3の挙動を規定する仕様書やテストコードを大量に生成。次に、仕様書を基にして、AIが開発計画を立案し、大きな機能は人間もレビュー。そして、AIが実装を開始したら、小さな機能が完成するたびにテストし、別のAIにコードレビューするようにした。
なお、AIが実装を行う際、既存なでしこの実装にバグを見つけた場合には、バグチケットとして記録するよう指示していた。その結果、現行のJavaScript(TypeScript)版なでしこ3に残っていたバグも、かなりの数を修正することができた。これは、とても面白い発見だったという。AIに対して単に「バグを探して」と指示しても、なかなか問題を発見できないが、「この機能を作り直して」と指示すると、実装を詳しく調べる過程で、これまで気付かなかった問題が次々と見つかるのだ。
今回の経験を通して、AIで1日に実用レベルの数万行のコードを生成できることが分かった。また、自分自身がゼロから開発できるものなら、AIを使うことで、その開発速度を劇的に高められることも分かった。ただし、AIが生成した大量のコードが、間違っていることも多くあり、テストを用意し、レビューし、問題があれば修正するという、従来のソフトウェア開発で重要だった作業は、AI時代になっても変わらないという点も確認できた。AIによってコードを書く速度が劇的に上がったからこそ、「何を作るのか」「どのような仕様にするのか」「どうやって正しさを確認するのか」という、人間側の設計力がこれまで以上に重要になる。



