AI

2025.11.15 19:51

AIコーディングパーソナリティを理解することがバイブコーディング成功の鍵

AdobeStock

AdobeStock

今回のコラムでは、バイブコーディングに関する連載を続け、生成AIやLLMが採用するAIコーディングパーソナリティのタイプについて、その内部構造を知ることの重要性を検証する。もしこのAIコーディングスタイルの隠れた側面を認識していなければ、バイブコーディングを成功させる上で大きな挫折や障害に直面するだろう。

古い格言にあるように、悪魔は細部に宿る。

それについて話し合おう。

このAIブレークスルーの分析は、最新のAIに関する私のForbesコラム連載の一部であり、様々な影響力のあるAIの複雑さを特定し説明している(リンクはこちら)。

バイブコーディングがトレンドに

簡単な背景として、まずバイブコーディングの基本を説明しよう。バイブコーディングの詳細な解説については、こちらのリンクこちらのリンクを参照してほしい。

通常、プログラミングコードを作成するには、PythonやC++などの一般的なプログラミング言語を使用してソースコードを手書きする必要がある。現在では、生成AIとLLMは十分に高性能になり、AIを使ってコードを生成できるようになった。AIにストーリーを生成させたり質問に答えさせたりするのと同じように、AIがあなたの代わりにプログラミングコードを生成することができる。例えば、Pythonプログラム全体が数秒から数分で生成され、手書きでコードを書くと何時間、何日、あるいは何週間もかかっていたものが短時間で完成する。

これは、アプリを開発したい非技術系ユーザーが、単にAIに望むアプリの内容を伝えるだけで、AIが自動的にコードを出力してくれることを意味する。これが「バイブコーディング」と呼ばれる理由は、英語などの自然言語で実現したいことの「雰囲気(バイブ)」を表現するだけで、AIが必要なコードを生成するための重労働を担ってくれるからだ。

非技術系でも技術系でも、誰もが苦労してコードを書かなくても、アプリを作成して一躍有名になり、富を得ることができるようになった。

バイブコーダーたちの登場

バイブコーディングを行うユーザーは、カジュアルに「バイブコーダー」と呼ばれている。

ほぼ誰でも自分はバイブコーダーだと主張できる。そのため、このタイトルはやや曖昧で不確かなものとなっている。一部の人々は、適切なバイブコーディングができることを証明するための普遍的な認証やライセンスが必要であり、それを取得してはじめて自分がバイブコーダーであると誇らしく宣言できるべきだと強く信じている。同様に、バイブコーディングや一流のバイブコーダーになるための講座も登場している。

現在、バイブコーディングとバイブコーダーであることは、即興的で場当たり的な試みにすぎない。これがより形式化され学術的なものに成熟するかどうかは未解決の問題だ。大方の予想では、厳格な形式化は行われないだろう。基本的に、ほとんどのバイブコーディングは世界人口の「手を出さない」層によって行われ、主に即興的に実施されるという前提がある。おそらく最終的には、プロのバイブコーダーとアマチュアのバイブコーダーという2つのクラスに分かれ、プロのカテゴリーに入るバイブコーダーはごくわずかになるだろう。

時が教えてくれるだろう。

人間がコードを書く方法

バイブコーディングについてさらに深く掘り下げる前に、人間がコードを書く方法に関する重要な基礎について考えてみよう。

他人のコードを見たことがある人なら誰でも、プログラミングやコーディングスタイルには非常に多くの種類があることを知っている。これはソフトウェア開発者のコーディングパーソナリティとも呼ばれる。コードを作成する方法が、特定のスタイルやパーソナリティの特徴を反映しているという考え方だ。

一部のソフトウェア開発者は非常に正確で、簡潔で思慮深く構成されたコードを書く。ソースコードが理解しやすく、他の人がコードを見たときに、そのコードが何をしているのかを即座に理解できるように努める。コードは仕事をこなすのに十分な長さで、膨大になったり余分な荷物を抱えたりすることを避ける。このタイプのコーディングスタイルやプログラミングパーソナリティには称賛を送りたい。

一方で、乱雑で混乱を招くコードを作成するコーダーもいる。コードが適切に機能するかもしれないが、他の人がそのコードがどのように動作するかを理解するのはほぼ不可能だ。コードはスパゲッティのような形状で、ループと行き止まりが入り組んだビザンチン様式となり、コードのレビューを推理小説のようなパズルに変えてしまう。また、必要以上に長くなる可能性が高い。全体として、コーディングスタイルは最悪だ。

一般的に、コーディングスタイルは数種類または十数種類の主要なタイプに分類できるが、ある程度は大きく異なり、その人がどのようにコードを書くように訓練されたかによって影響を受ける可能性がある。さらに、ソフトウェアマネージャーが特定の方法でコードを書くように指示するなど、コードを作成する方法を明示的に要求する場合もある。

コーディングスタイルの実例

経験豊富なソフトウェア開発者であれば、キャリアの中で出会った他の人のコーディングスタイルについて、間違いなく多くの恐ろしい話を持っているだろう。

長年のソフトウェアエンジニアとしての経験から、ある会社が完全に依存するようになった大規模なプログラムを刷新するために雇われたことを忘れられない。その会社は窮地に立たされていた。彼らは外部の請負業者が彼らのために重要なプログラムを開発し、ソースコードを秘密にしていたと私に話した。これにより、会社はソフトウェア開発者の気まぐれに完全に左右される危険な状況に置かれた。

そのプログラマーは、ごく小さなコード変更に対しても法外な料金を要求していた。彼が休暇に行くと、トップエグゼクティブたちは、必要に応じてコードをデバッグしたり調整したりする方法を知っている人が他にいないことを心配した。会社はプログラムと怪しげなプログラマーに依存するようになってからずっと後になって初めて、自分たちがこの不快な立場に置かれていたことに気づいた。

私はサーバー上でソースコードを見つけ、それを調べた。

私を笑わせると同時に信じられないと頭を振らせた要素の一つは、コード内のすべての名前付き変数と定数がクラシック音楽家の名前を使用していたことだった。つまり、在庫数を表すはずの変数は「ベートーベン」と名付けられていた。日付を追跡する別の変数は「モーツァルト」と呼ばれていた。要するに、コード内のオブジェクトの命名によって、コードは表面上は理解不能だった。彼は簡単により代表的な名前を使用できたはずだが、代わりに全く関係のない命名規則に頼ることを選んだ。これは、そのコードが体現していた多くの落胆させ、不安にさせるコーディングスタイルの一つだった。

最終的に私はそのコードを理解し、書き直した。クライアントは、コードが他の人が維持し拡張するために容易に利用できるようになったことに安堵した。元のコーダーは意図的に不明瞭に書こうとしたのか、それとも単に彼の自然なコーディング方法だったのか?それは未解決の問題であり、幸いにも、もはやその会社を悩ませることはなくなった。

バイブコーディングと生成されたコード

バイブコーディングの問題に戻ると、最初に思いつくのは、AIがコードを生成するなら、もはやコードを視覚的に検査する必要はないということかもしれない。コードはコンピュータ上で実行されるだけだ。人間がコードを検査する必要はない。コードが見た目が良いか、ひどい混乱かは関係ない。以上、終わり。

待って、そう急がないでほしい。

生成されたコードが複雑で、苦痛なほど遅く実行されるとしよう。あなたが生成したアプリはナマケモノのように動作するだろう。プログラムのユーザーは満足しない。それはあなたにとっても、全体的にも悪いことだ。

コードはうまく実行されるかもしれないが、エラーチェックが含まれていないかもしれない。ユーザーが誤って年齢を225歳と入力し、実際には22歳と言うつもりだったとする。AIはエラーチェックを行うコードを提供していない。残りのコードはユーザーが実際に225歳であると仮定する。他にも連鎖的な問題が発生する。

問題の核心は、生成されたコードの性質が違いを生むということだ。コードが実行時にどのように動作するかに関連する懸念がある。他の側面には、コードが人間にとって理解可能かどうかが含まれる。

なぜ人間がAI生成コードを検査するのだろうか?

なぜなら、現代の一般的なLLMによって現在生成されているコードは、大部分が不完全であり、バグを含み、そしてそれ以外にも人間のソフトウェア開発者がコードをレビューし、堅牢にしようとする必要があるからだ。最終的にはAIがこれをあなたのために行うことが目標だ。それまでは、人間が読めるコードの必要性は高優先事項である。

既存のLLMの評価

「主要なLLMのコーディングパーソナリティ」と題された2025年10月のSonarによる最近の研究では、研究者たちは様々な人気のLLMを実験し、AI生成コードの長所と短所を評価した。以下がその主な発見である(抜粋):

  • 「大規模言語モデルのコード生成能力は、ソフトウェア開発におけるそれらの成長する応用にとって基本的なものである」
  • 「コーディングにおいてAIを効果的に活用するために、開発者はモデルの弱点を認識し、それを補うための準備が必要である」
  • 「我々の分析は2種類のモデルをカバーしている:5つの主要な『非推論型』LLM(AnthropicのClaude Sonnet 4と3.7、OpenAIのGPT-40、MetaのLlama 3.2 90B、オープンソースのOpenCoder-8B)と1つの新しい『推論型』モデルであるGPT-5」
  • 「直接的なリンゴ対リンゴの比較を作成するために、我々はGPT-5をその最小推論モードで評価した。これは同等のモデルの非推論アプローチに類似している」
  • 「一方では、構文的に正確なコードの生成から複雑なアルゴリズムの問題解決まで、強力な強みのセットを共有しており、これが彼らの出現を説得力のあるものにしている。他方では、彼らはすべて同じ盲点で構築されている:安全なコードを書く能力の一貫した欠如、エンジニアリング規律との闘争、そして技術的負債を生成する固有のバイアス」

上記のように、現在のコードを生成する一般的なLLMについての重要な懸念は、それらがしばしば脆弱で、サイバーセキュリティの侵入を受けやすく、真のプロフェッショナルな人間のソフトウェア開発者が生成するであろうものと比較して一般的に不十分なコードを生成することだ。

一方、残念ながら、AI生成コードを幸せに使用しているカジュアルなバイブコーダーたちは、彼らが作成しているアプリやプログラムにバグ、エラー、そして簡単にハッキング可能な脆弱性や露出に関連する時限爆弾が含まれている可能性があることを特に認識していない。

AI生成コーディングスタイルまたはパーソナリティの類型化

人間のソフトウェア開発者を何人か集めると、彼らのコードを検査して様々な種類の包括的なコーディングスタイルやパーソナリティにグループ化できる可能性が高い。そうすることで、どの開発者が特定の方法でコードを書くかを知る上で有利になる。

引用された研究は、検査するために選択したLLMのセットに対して同じことを行い、各AIのコーディングパーソナリティとスタイルを以下のように表現した:

  • ベースラインパフォーマー -- GPT-5-minimal
  • シニアアーキテクト -- Claude Sonnet 4
  • バランスの取れた前任者 -- Claude 3.7 Sonnet
  • 効率的なジェネラリスト -- GPT-4o
  • 未達の約束 -- Llama 3.2 90B
  • ラピッドプロトタイパー -- OpenCoder-8b

これらのLLMを使用している場合は、コーディングスタイルが生成したいアプリやプログラムに満足のいくコードを生成するかどうかを検討することが重要だ。

数多くの曲がり角

コードを生成する生成AIモデルの探索は、コードを生成するLLMの急速な変化のペースに左右される。

例えば、AIメーカーが舞台裏でAIがコードを生成する方法を微調整することを決定した場合、以前の前提はもはや当てはまらなくなる可能性がある。AIの新しいバージョンが登場した場合も同様だ。以前のバージョンは、新しいバージョンが何をするかの指標にはならないかもしれない。新しいバージョンは全く異なる方法でコードを生成する可能性がある。

もう一つの要因は、LLMが特にコードを生成できるようにカスタマイズまたは調整されているかどうかだ。本質的に、コードを生成するために一般的な生成AIを使用することができ、これはおそらく最も簡単な方法だが、コード生成のために意図的に形作られたLLMを利用することもできる。理論的には、カスタマイズされたものはコード生成のために考案または形作られたものであるため、コード生成においてより良い結果を出すことが期待される(もちろん、これはコード生成においてより優れているという絶対的な保証ではない)。

さらなる曲がり角が全体像に入ってくる。

AIメーカーは、人々がAIを使ってコードを生成したいと考えていることを認識している。これまで、ほとんどの一般的なLLMはサイドショーとしてそれを行っていた。AIメーカーがあまり注目していなかったことだ。厳格なコードを生成できるAIを使用することにユーザーが惹かれるという認識が、これらの能力を磨くための資金の蛇口を開いた。

おそらく、遅かれ早かれ、生成されるコードは自動的に堅実なエラーチェックを含み、バグの混入を防ぎ、プロのソフトウェア開発者のものに近い性能を発揮するようになるだろう。まだそこには到達していない。その虹の終わりには金の壺があり、AIメーカーはその方向に熱心に押し進めている。

あなたの切り札

最後に、適切な場合に検討して使用できる一つの策略は、どのような種類のコードを生成してほしいかをAIに伝えることだ。要点はこうだ。単にAIにプロンプトで給与計算プログラムやデーティングアプリを生成するコードが欲しいと平凡に伝えるだけなら、AIは間違いなく形作られたデフォルトのコード生成モードを使用するだろう。

AIのコーディングスタイルやコーディングパーソナリティを調整することは可能だ。

プロンプトでは、どのような種類のコードを生成してほしいかをAIに明示的に伝えることを確認しよう。より具体的であればあるほど、コードに既製の落とし穴や失敗がない可能性が高くなる。これが特効薬ではないことを警告しておく。AIに合理的で指示的な方法でコードを生成するよう伝えても、AIが言われた通りに行うことを保証するものではない。しかし、それは顕著なブースターになり得る。

今後の投稿では、適切にコードを生成するためにAIにプロンプトを与える方法を共有する予定だ。その投稿に注目してほしい。

最後に一言。

ベートーベンは有名にこう言った:「音楽は世界を変えることができる」。この心に響く引用を基に言えば、AIは世界を変えることができる、特にコードを生成するAIはそうだ。大きな変革が私たちに向かって来ており、世界は二度と同じではなくなるだろう。

もう音楽が聞こえてきているようだ。

forbes.com 原文

タグ:

advertisement

ForbesBrandVoice

人気記事