現代のコーディングエージェントでよみがえらせた古い数学アプリと新しく作ったアプリ
(terrytao.wordpress.com)- サポートが終了した Java 1.0 の数学アプレット約24本を、現代の AIコーディングエージェントで JavaScript に移植し、過去には実装できなかった可視化ツールまで完成させた
- 既存のアプレットは数時間で復元され、Besicovitch 集合のカラー表示といった グラフィック改善や、1999年に Allen Knutson と作った honeycomb アプレットの再実装も行われた
- 移植過程でエージェントが作ったバグはドラッグ処理に関する軽微な問題1件で、逆に既存コードの未確認バグ2件を見つけ、全体のコード品質は同程度に保たれた
- 複雑さのため1999年に断念した「Minkowski 空間の Inkscape」という構想を、数時間の バイブコーディングで特殊相対性理論の可視化アプリのアルファ版として実装し、Gilbreath 予想の可視化も新たに制作した
- 数学的論証の中核ではない 補助的な可視化では、LLM 生成コードのバグが及ぼすリスクは相対的に低く、今後の論文のインタラクティブな補足資料として活用できる
Java 1.0 アプレットの始まりと中断
- 1999年から、機械を使って数学を研究・教育する方法に関心を持ち、複素解析と線形代数の講義向けに 複数のアプレットを Java 1.0 で開発した
- 講義だけでなく、honeycomb や Besicovitch 集合をはじめとするさまざまな数学的対象の可視化にもアプレットを活用した
- ある程度の成果は得られたものの、自分でプログラミングするには多くの時間が必要で、Web標準がその Java バージョンをサポートしなくなったことで、アプレットが動作しなくなった
AIを活用した JavaScript への移植
- 既存のWebページとブログデータを保守しやすいリポジトリへ移す際に、現代的な AI支援を活用した
- 実験として、エージェントに既存アプレットを現在サポートされている言語へ移植するよう依頼し、最終的に JavaScript を選択した
- 約24本の既存アプレットが数時間で再び動作するようになり、一部のグラフィックも改善された
- Besicovitch 集合アプレットは、従来の単色画面からカラー画面に変わった
- 1999年に Allen Knutson と一緒に作り、手作業での実装が特に難しかった honeycomb アプレットも復元された
新たなバグと既存コードの誤りの発見
- LLMベースのコーディングエージェントは明白なものから微妙なものまでバグを作り得るが、今回の移植で新たに見つかった問題は 軽微なバグ1件だった
- 複素解析アプレットの1つで、主領域の外へドラッグしたときに意図しない動作が発生した
- 逆にエージェントは既存コードに潜んでいた 未確認バグ2件を見つけており、これを合わせて考えると全体のコード品質は同程度である
- これらのアプレットは数学的論証の中核要素ではなく補助的な視覚資料であるため、バグが発生してもそれに伴うリスクは相対的に低い
1999年に断念した特殊相対性理論ツール
- 既存アプリの移植が無理なく進んだため、新しいアプリの制作も試みた
- 1999年に特殊相対性理論の可視化ツールとして「Minkowski 空間の Inkscape」のような構想を立てたが、当時は Inkscape もまだリリース前だった
- Java コードの作成を始めたものの、複雑さを扱いきれずプロジェクトを断念した
- AIエージェントと数時間バイブコーディングした結果、当時の構想に沿った時空図アプレットを実装した
- 制作対話の要約も公開しており、反復的な技術実装の報告は編集過程で多く削除した
- 現在のアプリは一部のプレイテストを終えただけの アルファ版で、LLM生成コードの性質上、未解決のバグや粗い部分が残っている可能性があり、追加のフィードバックが必要である
Gilbreath 予想の可視化
- Gilbreath 予想の論文に関するブログ記事を書いた後、論文と投稿に添付する 可視化ツールもエージェントに依頼した
- 数時間の対話を経て、Gilbreath 予想の可視化を完成させた
- 制作過程の対話ログもあわせて公開しており、開発は大きな困難なく進んだ
論文のインタラクティブな補足資料としての活用
- 今後の論文に インタラクティブな可視化を補足資料として追加することを検討している
- こうした可視化は論文の核心部分に不可欠なものではないため、LLMエージェントとの誘導されたやり取りで生成したとしても、誤りによるリスクは許容できる水準である
1件のコメント
Hacker Newsのコメント
LLMで可視化資料を作ることで、コンピュータサイエンスの授業が大きく改善された: https://htmx.org/essays/universities-and-ai/#demos-visualiza...
ずっと欲しかったが時間がなくて作れなかった資料を、今では用意できるようになり、Claudeの助けを借りて既存の16ビット教育用コンピュータを補完するシンプルな8ビットコンピュータも数日で設計した: https://bdp.cs.montana.edu/
そのおかげで内容をより速く消化でき、以前より多くの論文を読めるようになった
教えた内容をもっと多くシミュレーションできればよいと思った。教育とは対象を構成要素に分解し、相互作用を見る過程なので、バイブコーディングしたシミュレーションは優れたツールになり得る
Terry Taoがコーディングエージェントでアプリを作るなら、フィールズ賞受賞者も我々と同じように、LLMにDockerコンテナがなぜ起動しないのかを尋ねるところまであと一歩だ
特に従来のソフトウェア分野の外には、潜在的なソフトウェア需要が事実上無限にある。LLMの進歩が今日止まったとしても、新たに生まれたソフトウェア作成能力をすべて活用するには10年はかかるだろうし、今回の事例はそれをよく示している
「LLMで作った対話型補助資料は論文の核心に必須ではないため、エージェントとの誘導された相互作用でこうした可視化を生成するリスクは受け入れられる」という結論はバランスが取れている
LLMは道具なので、向いている仕事とそうでない仕事があり、一般に結果をそのまま信じるべきではない
ハンマーは釘には信頼して使うが、ネジには使わない。だからといってハンマーを一般に信頼できないとは言わない。AIの難しさは、何が釘で何がネジなのかをまだ分かっていないことにある
単に信じるなと言うより、以前より計画・反復・レビューに多くの時間を使うべきであり、技術・文脈・サブエージェントの使い方を学び、まずは非本番・低リスクのプロジェクトで練習するよう案内するほうが有用だ。良いワークフローと適切な用途を理解しながら信頼を築くことを目標にすべきだ
Terry Tao がコーディングエージェントを使っている様子は、ミシュラン星付きシェフが電子レンジ用の即席食品を見つけて本気で興奮している場面のように見える
José Andrés も電子レンジのオムレツを最も失敗しにくい料理に挙げ、「人類史上最高のふわふわオムレツ」と呼んでいる: https://www.tasteofhome.com/article/jose-andres-microwave-om...
Tao のような巨匠たちは、技術がその治具を作れることを示し、機械製作者たちは宝石箱用の治具だけでなく、治具を作る機械を作るための治具まで作れることを段階的に証明している
数学・物理学分野の古い教育用 Java アプレットを動かすことは、WebAssembly を通じてブラウザ上で Java バイトコードを実行する CheerpJ Applet Runner の長年人気の用途だった
エージェントがきちんと現代化してこの問題を解決する状況を、どう受け止めればよいのか複雑な気持ちだ。学生が現代的でアクセシビリティの高い方法でコンテンツとやり取りできるのは明らかに良いことだが、商業的に重要でなくても教育分野での活用は常に誇りの源だった: https://chromewebstore.google.com/detail/cheerpj-applet-runn...
その分野の専門家が AI で自分の分野の何かを面白く作る記事はいつも楽しいが、常に趣味プロジェクトであって真剣な作業ではないように見える
https://terrytao.wordpress.com/tag/artificial-intelligence/, https://academy.openai.com/public/blogs/terence-tao-ai-is-re...
私は年齢も高く、必要ならぎりぎりながら明日引退することもできるが、まだ働かずに持ちこたえられる資産を築けていない25歳の甥のような若い開発者たちが心配だ。コードを直接書く仕事は、手で平方根を計算したり活字を鋳造したりする作業のように、ごく少数だけが行う専門領域になるだろう
AI コーディングの広範な活用は始まったばかりで、モデルも最近になってようやく真剣な作業が可能な水準に達した。すでに実際の活用例は見ているが、組織の方針・非公開コード・営業秘密のため、個人ブログで本番コードでの活用を公開しにくい理由も多い
「コードの複雑さが手に負えないほど大きくなり、プロジェクトを諦めた」というくだりで笑った。Terry Tao でさえ複雑すぎて書けないコードがあるのだ
特定分野では非常に賢いのにコーディングには入ってこられなかった多くの人まで、LLM がソフトウェア開発に参加させるようになることを大いに期待している
Claude で30年前の高校ドイツ語の Java アプレットゲームを JavaScript に移植し、偽の Git 履歴まで作った: https://github.com/bradfitz/koffer#der-verloren-koffe
オンラインでも実行できる: https://bradfitz.github.io/koffer/js/
約30年前のコードが再び動き出す様子は素晴らしい
文章のぎこちない最初の一文こそ、AI が書いたものではない証拠だ。「1999年に Java 1.0 で複素解析学と線形代数学の授業用アプレットを作り、ハチの巣構造や Besicovitch 集合のような数学的対象を可視化した頃から、機械の助けを借りて数学を研究し教える方法に関心を持ってきた」という文だ