Vibe Coding Is The Future 掻い摘む
実際にコードを書くことが1000倍安価になると、コーディングスタイルがどう変わるかは驚くべきことです。人間なら、長い間取り組んできたものを捨てて、バグがあるからといってゼロから書き直すことは決してないでしょう。常にバグを修正するでしょう。しかし、LLMにとって、1000行のコードを6秒で書き直せるなら、なぜそうしないのでしょうか?
それは、まるで画像生成でMidjourneyやPlaygroundを使うときのアプローチのようです。もしアーティファクトや気に入らないものがあれば、プロンプトを変えずにただ「再生成」をクリックすることもあります。それを5回やって、時にはうまくいくこともあります。「ああ、これなら使える」と。
これはシステム構築のフレームワークとしては非常に異なります。なぜなら、段階的に基礎を築いていくのではなく、本当にゼロからやっているからです。
「コードを直す」という当たり前にやっていた作業のあり方が変わる可能性がある。
テストが通るまで再生成を繰り返すというやり方もでるだろう。(中身知らないけど動くやつできたーという話がでてくるはず)
本当に生産的になるために知っておくべきすべての構文、すべてのライブラリ、すべてのことを学ぶのに時間がかかりすぎるからです。しかし、今は新しい世界です。ブートキャンプもまた、企業に採用されることに非常に特化していました。そして、2015年頃、企業自体がソフトウェアエンジニアの採用プロセスでの評価方法を再考していた時期があったと思います。そして、「古典的に訓練されたコンピュータサイエンティストを雇いたい」という考え方から、
ホワイトボードでのアルゴリズム問題から、「実際には、単に生産性が高く、迅速にコードを書く人々が欲しい」という方向への真の変化がありました。そして、これらの議論のいくつかは永遠のテーマですよね。Railsが最初に出たとき、「ああ、データベースとやり取りする方法としてのActive Recordは素晴らしい抽象化と見なされていたが、それでも同じ種類の議論があった」という感覚があったのを覚えています。「内部を本当に理解していないと、
パフォーマンスの低いウェブソフトウェアを書くだけになる」といった具合です。今振り返ってみて、それらの議論はどう古びたと感じますか?私の感覚では、最も成功した企業の多く、StripeやGustoが特に思い浮かびますが、これらは「実際には、ツールを使って本当に生産的な人々が欲しいだけであり、採用プロセス全体を変更して、その能力を持つ人々を選抜する」という方向に大きく傾いた企業です。インタビューは「あなたの考え方を教えてください」から、「ラップトップで3時間あり、
ToDoリストアプリを構築し、できるだけ早く構築してください」に変わりました。そして、これらの企業は莫大な成功を収めてきました。しかし、彼らが成長し、スケールするにつれて、ある時点でボトルネックが実際に、物事をスケールアップし、アーキテクチャを設計するための、古典的に訓練されたシステム思考家を持つことになったようにも思えます。エンジニアの採用方法は変化しているようですが、まだ十分に速く変化していないのかもしれません。
基礎教養があることを重要視していたが、現場に入れてみると実装がはやくなるまで時間がかかっていた。その後、実装力をみるようになった。
しかしAIの進歩で基礎教養や他の分野で技術的思考力を高めた人が簡単にコーディング能力をあげられるようになってきた。ただし依然としてアーキテクチャ周りは学習が必要。
感想
- プロダクト開発者
- アーキテクト設計、開発者
の二分されるだろうという話。
前者にはクリエイティビティやセンス、AIをフル活用した最速でのMVPの検証能力が必要。後者にはコンピューターサイエンスを基盤とした、スケール設計やセキュリティ、障害、パフォーマンス対策を考え実装する能力が必要。
ざっくりどっちを目指すのか?は決めるべき。
近い未来
MVPが今よりも早く、安く作れるようになるのであれば多種多様なサービスやプロダクトが生まれる。 とはいえ、人の数は有限だし時間も有限。
となると新規にヒットするものはより少なくなるし、MVPを作りまくったけどなかなかヒットしないという状況が出てくる。 一方で、それが当たって大きくなったらそれを支える仕事が出てくる。
この時、前者は再現性が難しい。競争相手がごまんといるし、挑戦する領域によってドメイン知識が全く異なるためだ。 あと仮に成功した後に、そのプロダクトに対して安定的に機能を追加していけるのか?が怪しくなる。というのも速攻で作るのと、それを育てていくのは完全に別だから。
そうなると現状の手の速さを武器にしていた人はAIで差を埋められてしまう。
2025/04/13 追記
UIの部分が AI Agent への入力のみになっている。ここはもはや ChatGPT や LINE / Slack でよいので SaaS におけるフロントエンドの仕事はほぼなくなる。
https://www.youtube.com/watch?v=oyTf4qxVkoM
より効率よく入力するためのデバイスや、音声認識技術の向上などは必要だが、全く異なる技術分野。一方で、SNSやゲーム、エンタメ系については人間が触ることに意味があるので、フロントエンドの重要性はますます増して行く。
目指すところ
個人的な嗜好性では裏側(バックエンドやインフラ、運用)が好きなので変わらずそっちを探求したい。 しかしこっちは経験や日頃のCSへの学習がキーになると思うので、それは継続したい。
また AI についても中心になるのは確実なので、ほどほどに追っておく