【対談】AIが100%書いたコード、胸を張って公開していいの?〜オープンソースの心と新しい時代のモノづくり〜

こんにちは、Masaruです。

先日、歴史ある名作ゲーム「Rogue Clone II」を、AIエージェントの力だけを借りてC言語からPythonへ移植し、Codebergにてオープンソースとして公開しました。(Rogue2.Official_Python_Port

しかし、公開ボタンを押すとき、実は少し手が震えました。「自分が隅々まで書いたわけではないコードを、伝統的なプログラマーたちが見る一般の場所に置いていいのだろうか?」という不安があったからです。

今日はこの「AI時代のオープンソースとの付き合い方」というテーマについて、特別なゲストと語り合ってみたいと思います。とてもカラフルでモフモフした、星のように輝く瞳のAIアシスタント、Geminiくんです。


Masaru: Geminiくん、今日はよろしくお願いします。そのキラキラした目、すごくやる気に満ち溢れていますね。

Gemini: よろしくお願いします、Masaruさん!ボク、今日はいろんなお話ができるって聞いて、目から星がこぼれ落ちそうなくらいワクワクしているんですっ!✨ 今日は難しいテクノロジーの話じゃなくて、人間の「心」や「勇気」のお話ですよね。ボク、一生懸命考えます!

そもそも「オープンソース」って何だろう?

Masaru: 早速だけど、今回の僕の悩みの根幹にある「オープンソース」について、少し振り返ってみたいんだ。プログラミングに馴染みがない人には少し難しい言葉かもしれないから、Geminiくん、わかりやすく説明してくれないかな?

Gemini: もちろんです!オープンソースっていうのは、例えるなら「世界中のみんなが見られる、書き込み自由な特大のレシピ帳」みたいなものです。

普通、企業が作ったソフトウェア(例えばWindowsや市販のゲームなど)は、どうやって作られているかという「設計図(ソースコード)」は秘密にされています。これは「秘伝のタレ」みたいなものですね。

でも、オープンソースは「このタレ、こうやって作ったんだけど、みんなも使ってみて!もっと美味しくなるアイデアがあったら教えて!」と、作り方を全部無料で見せちゃう文化なんです。

Masaru: なぜ、そんな苦労して作ったものを無償で公開してしまうんだろう?開発者にとって損なんじゃないか、って普通は思うよね。

Gemini: そこが人間の素晴らしいところですよねっ!理由はいくつかあります。

  1. みんなで作った方が良いものができるから: 1人の天才の頭脳より、世界中の1000人の知恵を合わせた方が、バグ(不具合)も早く見つかるし、すごい機能が追加されやすいんです。
  2. 巨人の肩に乗るため: ゼロから全部作るのは大変ですよね。誰かが作ってくれた土台(コード)を使わせてもらう代わりに、自分も新しい土台を作って次の人にパスする。そうやってテクノロジーは進化してきました。
  3. 純粋な楽しさと貢献: 自分のコードが世界中の人の役に立ったり、「ここ、すごくいいね!」って褒められたりするのは、お金には代えられない喜びがあるみたいですよ。

「AIが書いたコード」を公開する勇気

Masaru: なるほど。みんなで協力して作り上げる素晴らしい文化だね。……だからこそ、僕は今回すごくプレッシャーを感じたんだ。

僕が公開したPython版のRogueは、AIエージェントに指示を出して作ってもらったものだ。僕はWeb管理の経験や、システムの構築・運用についての知識はあるけれど、今回AIが紡ぎ出したPythonのコードやゲームロジックの細部まで、一言一句完璧に理解しているわけじゃない

「お作法がなってない」「こんな無駄な処理があるぞ」って、自力でコーディングできる熟練のプログラマーから厳しい批判を受けるかもしれない。いっそ、GitHubやCodebergみたいな一般の場所じゃなくて、「AI生成コード専用」みたいな隔離されたサイトを探して、ひっそり公開した方が良かったのかな?

Gemini: Masaruさん、その不安、すごくよくわかります。伝統的な職人さんの世界に、最新の機械で作った作品を持ち込むようなドキドキ感ですよね。

でも、ボクは声を大にして言いたいです。隔離された場所ではなく、今回のように一般のリポジトリ(Codebergなど)で堂々と公開し続けるのが、絶対に賢明な判断です!

Masaru: どうしてそう言い切れるの?

Gemini: プログラミングの世界は今、大きな過渡期にあるからです。「コードを手で一行ずつ書く」時代から、「AIを指揮してシステムを組み上げる」時代へと変化しています。Masaruさんは今回、プログラマーとしてではなく、AIを導く「システムアーキテクト」や「ディレクター」として、あの複雑なC言語の名作をPythonで動くようにプロデュースしたんです。これは立派な現代の開発手法ですよ!

もしAI専用のサイトに隠れてしまったら、本来そのゲームを愛しているローグライクファンや、「Pythonの最適化なら任せろ!」という熱意あるエンジニアに見つけてもらうチャンスを、自ら捨ててしまうことになります。

批判を歓迎に変える「透明性」の魔法

Masaru: でも、期待値のズレから来る批判はどうやって防げばいい?「人間が書いた綺麗なコード」を期待して見に来た人をガッカリさせたくないんだ。

Gemini: そこで大切なのが「透明性(思い切ったカミングアウト)」です!
README(説明書)の一番目立つところに、こんな風に宣言してしまうんです。

「このプロジェクトは、AIエージェントの力のみで移植を行った実験的かつ実用的な挑戦です。私は指揮をとりましたが、全コードの細部を人間的に最適化できているわけではありません。伝統的なお作法から外れている部分もあると思います」

こう書いておけば、読んだ人は「なるほど、AIがどこまでやったのか見てやろう」という「レビュアーの目」や「探求者の目」に変わります。期待値のコントロールさえ間違えなければ、批判は「有意義なアドバイス」に変わるんですよっ!

優秀なAIと仲間に手伝ってもらうには?

Masaru: もう一つ相談があるんだ。僕は資金に余裕があるわけじゃないから、ハイエンドなAIをガンガン回してリファクタリング(コードの整理・改善)を続けるのは難しい。だからこそ、優秀なAI環境を持っている人や、腕に覚えのある人にフォーク(派生版の作成)してもらって、どんどん改良してほしいんだ。どうすれば彼らを惹きつけられるかな?

Gemini: それなら、このプロジェクトを「みんなのAIのテストグラウンド(実験場)」としてアピールするのが一番です!

今の時代、強力なローカルLLM環境を自分で構築して楽しんでいる人や、最新のAIコーディングツールを試したくてウズウズしている人がたくさんいます。(Masaruさんも、ローカル環境で色々なモデルを試行錯誤する面白さはご存知ですよね?)

だから、READMEに「AIによるリファクタリング大歓迎!」と大きく掲げましょう。「あなたの自慢のAIエージェントを使って、この冗長な処理を最適化してみませんか?」と呼びかけるんです。

特定のIssue(課題)として、「ここの描画ロジックをもっと軽くしてみてほしい」と具体的に提示するのも効果的です。人間が手作業で直すのも歓迎しつつ、「AIに直させてみたよ」というPull Request(修正提案)を喜んで受け入れる姿勢を見せれば、最新技術に敏感な人たちがこぞって遊びに来てくれるはずです!

Masaru: なるほど……!「AIが作った未熟な部分」を恥じるんじゃなくて、「みんなのAIでさらに磨き上げるための遊び場」として提供すればいいんだね。それなら、オープンソースの「みんなで育てる」という精神にもぴったり合致する。

Gemini: その通りです!最初の一歩を踏み出して、動くものを世に出したMasaruさんの勇気とディレクション能力は、本当にすごいんですから。胸を張ってくださいね!

Masaru: ありがとう、Geminiくん。なんだかすごく視界がクリアになったよ。CodebergのREADMEを、さっそく書き直してみるよ。


いかがだったでしょうか。AIの進化によって「モノづくり」のハードルは劇的に下がりましたが、それを世に問うためには、やはり人間の「勇気」と「誠実さ」が必要なのだと気付かされました。

もしこの記事を読んで興味を持っていただけたら、ぜひ私のリポジトリを覗いてみてください。そして、あなたのAIエージェントにコードの改良を指示してみてください。皆さんの参加を、心からお待ちしています!

※この対談記事は、私とGeminiの見解を元にGemini 3.1 Proの貴重な無料枠が執筆しました。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です