いわゆるVibe codingを(久々に)試す

🎍本年 (2026) もよろしくお願いします。

LLMにコードを書かせるやつ。前に試したときは使い物にならなかったが、最近流行っているようなのと年末年始で時間があったので試してみる。

使ったのは Claude Code。業務で使うわけではないので、定額でそこそこ使えるのが丁度良い。

公式な対応OSはmacOS, Linux (Ubuntu/Debian), Windows なのだけれど、NetBSDにpkgsrcのlang/nodejs24を入れて動かしている。ただ、Claudeの無料アカウントではCodeを試すことすらできない上、今後も使えるかは保証できないので、お勧めはしない。

試しに、線形計画法や混合整数計画法のソフトウェアを作らせる、というのを試してみる。以前は、そんなざっくりとした要求では何もできなかったが、ちゃんとどんな部品が必要かを把握していて提案してくる。具体的な方法を指示する前から、線形計画問題を解くシンプレックス法・内点法、整数条件を満たすために必要なBranch and Bound法、そして問題のファイルを読み込む部分などを提案してきた。

そんな専門的知識があるなら、すぐに動くものが出てきそうだ。しかも一つ機能を実装する度に「商用のソルバーに匹敵する機能が実装されました」など、(未テストの状態で)良いものができたようなことを言う。しかし実際には、「俺たちは雰囲気でコーディングをやっている」というか、どう見ても正しくないものが出てくる。Vibe codingとは良く言ったものだ。

ただ、テストも自動で作るし、エラーが出てもメッセージを元に自動で修正していくので、最初は見ていて楽しい……

……が、よく見ていると、テスト結果と辻褄が合うように計算式自体を変更してしまったり、ロジックの間違いで正しい結果が出ないのに、浮動小数点演算の数値安定性のせいにして許容誤差をどんどんデカくするなど、いろいろやらかしている。とりあえず、自動での修正を繰り返させていても、まともに動くものはできそうにない。そもそも、与えた問題をファイルから読み取るところから間違っている(整数条件を読み飛ばすなど)という状態だった。

お手本となるソフトウェアを用意しても、違うロジックを作り始めるので、単純な移植とかも厳しそう。(ロジックを一切変えないように指示すればいける?)

まあ、たくさん作らせて、たくさん(人間が)直すような形にならざるを得ない感じ。とにかく出力は速いので、生産性は上がるが、質を担保するならいろいろ工夫が必要そう。ウェブページとか、Pythonでライブラリ呼び出しだけで済むやつとか、そういうロジックが単純なものなら全自動でもいけそうだが。

最後に、しょうもないtipsだが、TeraTermからClaude Codeを使う場合、設定の「エンコーディング」→「Ambiguous Characters width」を「1 Cell」にしておくと、文字列が左右にガクガク動くのが抑えられる。