メインコンテンツまでスキップ

数週間の作業が20分で完了: Redis 生みの親が語る「手書きコーディングの時代は終わった」

数週間の作業が20分で完了: Redis 生みの親が語る「手書きコーディングの時代は終わった」

この記事の著者 antirez 氏は、有名なインメモリデータベース Redis の生みの親だ。氏のソフトウェアは世界中で数千万の企業の業務を支えている。かつて antirez 氏は AI の懐疑派だった -- AI 自動化が人間を置き換えることへの恐怖を綴った小説を書いたこともある。だが、最近の体験が証明した。プログラミングの現実は、永遠に変わったのだ。 antirez 氏のテストで、Claude Code は画期的な効率を示した。5分で700行の厳密かつ高性能な C コードを書き上げる。自律的に繰り返して Redis の巧妙なデッドロックやタイミングバグを再現・修正する。Redis Streams の複雑な内部構造の改修すらわずか20分で完了した。 antirez 氏は、現代のプログラマーは1行ずつコードを打ち出すことに執着するべきではないと考える。ほとんどの場面で、それはもはや合理的な選択ではないからだ。代わりに、AI の優れた協働者になることを学び、エネルギーを問題の定義とソリューションの設計に向けるべきだと語る。 すべての開発者に、今すぐ Claude Code の学習と深く使い始めることを勧めている。antirez 氏の言葉を借りれば:現実を直視することを拒否して未来を形作るチャンスを逃すな。数週間かけて新しいツールを試し、生産性を何倍にもする方法を見つけろ。 プログラミングの最も純粋な喜びは「作ること」であり、AI はより多く、より良く、より楽しく作ることを可能にする。

私はソフトウェアを書くのが好きだ。1行ずつ。キャリア全体が、クリーンでエレガントで洗練されたコードを書くことへの追求だったと言ってもいい。 正直なところ、AI が経済的に勝つことは望まなかった。現在の経済システムが AI によって破壊されることには関心がない -- もし莫大な富の再分配につながるなら、むしろ歓迎する。 だが、ソフトウェアや社会に対する自分の見解のために現実の存在をわざと見ないふりをすることは、自らの理性への裏切りだ。事実は事実だ。AI はコンピュータプログラミングを変えており、永久に変え続けるだろう。

2020年、私は退職して小説を書いた。AI、ユニバーサルベーシックインカム、そしてさまざまな困難の中で労働自動化に適応する社会についての物語だ。 2024年末、AI とそのプログラミングタスクへの活用、そしてもたらされるかもしれない影響について議論するチャンネルを始めた。 これらの変化が起きると早くから認識していたが、プログラミングが本当に再構築されるまでにはまだ数年あると思っていた。今はそう思わない。 今日の最先端の大規模言語モデルを使えば、明確な目標セットを与えれば、モデルが大きなサブタスク -- 甚至は中規模プロジェクト -- をほとんど自力で、人間の介入を最小限に抑えて完成させられる。 どれもうまくいくかは、どの種類のプログラミングをしているか(タスクが自己完結的でテキストで記述可能であればあるほど良い -- システムプログラミングは特に相性が良い)と、問題を明確に考え、モデルに正確に伝える能力に依存する。 だが全体として、今や明らかだ。純粋に楽しむためでない限り、ほとんどのプロジェクトで手書きコーディングはもはや最も合理的な選択ではない。

ここ1週間、私はほとんどの時間をプロンプトの執筆に費やし、時折コードをレビューして助言した。わずか数時間で、以下の4つのことを達成した -- 以前なら数週間かかっていた作業だ。

linenoise ライブラリを修正し、UTF-8 対応を実現した。 さらに、各キャラクセルの内容をレポートするシミュレートされたターミナルを備えた、ラインエディットのテストフレームワークも構築した。 これは前からやりたかったことだ。だが、テスト目的の小さなサブプロジェクトにこれだけの労力を投資するのは正当化が難しかった。 今はやりたいことを記述するだけでコードになる。状況は完全に変わった。

Redis テストスイートの断続的な失敗を修正した。 この種の作業は極めて面倒で、タイミング調整、TCP デッドロック、類似の問題が絡む。 Claude Code は継続的に繰り返し、問題を再現し、各プロセスの状態を検査し、何が起きているかを把握し、バグを修正するのに十分な時間をかけた。

昨日、BERT スタイルの埋め込みモデルで推論を実行できる純粋な C ライブラリが欲しかった。 Claude Code は5分で書き上げた。推論効率は PyTorch とほぼ同等で、わずか15%遅い程度だ。 ライブラリ全体はわずか700行の C コードだ。GTE-small モデルを変換する Python ユーティリティまで生成した。

ここ数週間、Redis Streams の内部構造を修正してきた。 そのための設計ドキュメントを書いた。 そのドキュメントを Claude Code に渡すと、約20分で作業をほぼ再実行してくれた。 時間がかかったのは、自分のレビューとコマンドの確認の部分だけだ。

今起きていることは、無視するのが不可能だ。 ほとんどの場面で、人間は自分でコードを書く必要がなくなっている。 より興味深いのは「何をすべきか」そして「どうやるべきか」を解明する部分になったことだ。 「どうやるべきか」の面では、大規模モデルは優れた協働者だ。 AI 企業が投資を回収できるか、株式市場が暴落するかは、長期的には重要ではない。 あるユニコーン企業の CEO がどんなに突飛なことを言っても、それもまた重要ではない。 いずれにせよ、プログラミングは永久に変わった。

私にとって、自分が書いたコードが大規模モデルの学習に使われたという事実は、素晴らしいことだ。 それは生涯の追求の延長と捉えている。コード、システム、知識の民主化 だ。 大規模言語モデルは、より良いソフトウェアをより速く書く手助けをしてくれる。 小規模チームに大企業と競争する力を与えてくれる。 1990年代のオープンソースソフトウェアと同じように。

プログラマーとして、今ほどオープンソースを書きたいと思ったことはない。 時間不足で棚上げしていたリポジトリをいくつか手に取り、改善したい。 自分の Redis ワークフローで AI に全力で取り組みたい。 まず Vector Sets の実装を改善し、次に他のデータ構造に移行する -- ちょうど今 Streams でやっているように。

だが、仕事を失う人々のことが心配だ。 具体的にどのような変化が展開されるかは、まだ不透明だ。 企業がより多くの人により多くのことをさせたいと思うかもしれない。 あるいはその逆が起きるかもしれない。給与コストを抑えるために、少数精鋭の AI に長けたプログラマーへ。 他の多くの業界でも、人間がほぼ完全に代替可能になることを懸念している。

プログラミングの方法については。 君にひとつだけ助言がある、友よ。 自分が「正しい」と信じることは、現実の否定によって影響を受けない。 AI を使わないという選択は、自分自身にもキャリアにもプラスにならない。 よく考えてほしい。 新しいツールを真剣に試してほしい。 数週間かけてほしい。既に信じていることを確認するだけの5分ではダメだ。 自分を何倍にする方法を見つけてほしい。 すぐに正しいアプローチが見つからなければ、数ヶ月後にまた試せばいい。

プログラミングを学ぶためにどれだけ苦労したか思い出すかもしれない。そして今、機械がコードを書いてくれる。 だが、プロジェクトが動き出すのを見ようと夜遅くまで起きていたあの炎 -- それは創造の喜びだった。 AI を効果的に使う正しい方法を見つけたなら、もっと多く、もっと良く創造できる。 喜びはまだそこにある。そのまま、すべて。