🔖

短編: Vibe Codingについて個人的な考えを述べてみる

に公開

今回はVibe Codingについて個人的な考えをまとめてみようと思います。

まずは私の根本の考え方について!

結論から話すと、私個人としては「便利なので基本的にはどんどん使いたい。(ただし条件付き)」と思っている派です。条件付きという含みを持たせているのはずるい気がしますが考えをまとめてみます。

Vibe Codingが必要だと思う時はどんな時?

まずはVibe Codingを採用すべき時がどんな時かを考えてみます。

スピード感を重視する時

みなさんご存知の通り、Vibe Codingは爆速でコーディングをすることができます。生成AIのコーディング速度は正直人間によるコーディングを凌駕していると思うので、スピードを重視したい場合は採用するに越したことはないでしょう。また、自身がある程度熟知しているけれどもコーディングに一定の手間がかかってしまう場合に、ドラフトを生成さえて、その結果に対して人間が加筆修正していくような使い方はいいかなと思っています。

個人開発はあまり最近できていないので、業務の話になりますが、やはり私の業務でもGeminiをはじめとした生成AIの力を借りている部分はあります。しかし問題なのが、私が最近実装しているものについての知識を生成AIは対象コーパスとしておそらくあまり扱っていなかったのか、結果の70~80%は嘘の情報になっています。スピード感をあげたいから生成AI使いたいけど帰って低くしてしまう場面もあったりするので、いい塩梅を見つけるのは大変ですね、、、

学習に利用する

新たな領域を学習するときに、もちろん公式ドキュメントを確認して自分の力で進めるのも方法の一つです(というか、以前はみなさんそうだったはず)。生成AIがスタンダードになっている今は、初学者で生成AIの力を全くかりず学習している人の割合は減っているのではないでしょうか。もちろんハルシネーションの可能性もあるので公式ドキュメントやテックブログなどを参考にしながら正確な技術を身につけるのは必要ですが、サポートツールとして採用するのはいい利用方法だと思います。

他の実装方法があるか気になるとき

これは個人的によくあるんですが、自分が実装した内容が果たして効率的かどうかなどを知りたいときに、生成AIに考えてもらうことがよくあります。やはり自分で実装をしていると、そのコードをベースに物事を考えがちになり、知らないライブラリの利用などの検討などが大変と感じてしまいます。そういうときに生成AIの力を借りて他の選択肢をもらうことが最近とてもいいのでは?と感じています。

Vibe Codingが必要ないと思う時はどんな時?

次にVibe Codingが不要と感じる時はどんな時か考えてみます。

自分の力で実装したい時

これはそうだよねという感じだと思いますが、作りたいものがあった時に全て自分の今持っている知識だけで作れるか挑戦したい時は生成AIは使いません。生成AIが知っている知識は確かに価値がありますが、自分の知識の限界を試したい時に使うものではないと個人的に考えています。

また、実装する時に検索エンジンで調べることもあるかと思いますが、この時も生成AIを使わないようにする時があります。DeepResearchなどを使えば深いレベルでweb検索してくれますが、自分の目で情報を調べる方が適している状況もあると思っています。

またそもそも論として、生成AIの力の借り方を一歩間違えれば、人間はほとんど何も考えることなく何がしかが生成されるので、そうなると人間の存在意味がなくなる気しかしません。プロンプトエンジニアリングをうまくすることで生成AIの能力を引き出す必要があるから人間にもまだまだタスクは残っているという意見も理解はできますが、プロンプトエンジニアリングをするためにあなたは楽しいんですか?なりたかったエンジニアはそういうものだったんですか?と思うことが多いです。少なくとも自分は最低限のツール以上の使い方をしたいというモチベーションは低めな気がします。

その他の視点で、、、

モデルの成長を制御できない

GeminiやGPT、claudeなどのモデルは一般ユーザから提供されたデータで学習されることもあるのだとは思いますが、とは言いつつ一ユーザである我々がこうして欲しい!こういうタスクに直なって欲しい!といって強くなってくれるようなものではありません。また、Xなどでよく「最近モデルの性能下がってる」みたいな内容見ますが、我々が制御できないものに対してそのような結果になるのは致し方ないと思っています。私自身、モデルの性能が変わるたびにプロバイダを帰るという作業が極めて無駄な作業でしかなく、本質的にやりたいことにさく時間を減らすだけだと感じてしまうので、これはマイナス店だなと感じています。

環境破壊につながるという視点

生成AIはコンピューティングリソースをとても消費すると思います。つまりは、とても電気を食うということなので、結果として環境破壊につながるという考えです。これは生成AIに限らずクラウドサービスなどコンピューティングが関わる全ての対象について言えることですが、生成AIに対して特に言えることとしては、「なくても別に困らない」ことが多いということです。

例えばですが、「ヘルスチェックを実装するようなAPIサーバを実装する」というタスクがあったとします。この程度のタスクであれば手動でも何の問題もなくできると思いますが、わざわざこのレベルのタスクまで生成AIに実行させると、無駄に電気をくいます。地理も積もれば山となります、という考えで言うとVibe Codingのせいで環境に悪影響があると言ってもおかしくはないと思っています。

私は普段から環境についてとてもシビアに考えられているかというと残念ながらそうでないと思っていますが、こう言う話題が出た時は真っ先にこの件について話をしていると思います。Vibe Codingはあるに越したことはないかもしれないですが、なくても大きく困らないと思っています。なぜなら今まで様々なサービスが手動で開発されてきたので。。。

ジュニアエンジニアが育たない

これも色々な方が言及していますが、ジュニアエンジニアが技術を身につけるときに生成AIに頼りきりになった結果、いざそれがないと実装がままならないエンジニアが量産されていくのでは?という懸念があります。もちろんジュニアエンジニアが生成AIの力を利用して自身の成長を促進できればいいですが、あくまでサポートでありそれ自体が主軸になってはいけないと思います。

お金かかるしね、、、

言わずもがな、生成AIの利用にはお金がかかります。業務で利用するか個人で利用するか色々な選択肢はあるかと思いますが、無料プランで利用できる幅は小さく、基本的には課金することになるでしょう。私は基本的に定額使い放題を利用していますが、従量課金になると金額の管理も必要ですし、コーディング以外に考えないといけないことが多くて正直私の脳みそでは判断しきれないことがあります、、

そもそも利用できない時がある

プロジェクトによってはそもそも生成AIの利用が禁止されていたり、自分が普段好んで使っているモデルが利用できないことも多々あると思います。そのような場合に使い勝手が違うからといって生産性が下がったりするのはよろしくないと思っています。もちろんエンジニアリング力がある方であれば生成AIなしでも十分高速に実装できる方も多くいらっしゃると思いますが、先ほど言及したようなジュニアエンジニアになればなるほどハードルは上がる気がします。

まとめ

今回は個人的にVibe Codingに対して思うことを書いてみました。どちらかというとネガティブな方が多く書いてはいますが、使い方さえ間違えなければ圧倒的にポジティブよりになります。みなさんも利用するときはぜひなぜそのツールを使うべきなのか?本当に今使うべきか?など色々考えてみてください。

Discussion