
17,642 文字

これは単純な理由だと本当に願っています。彼は単にOpenAIのGPT-4のクレジットを支払う余裕がないのです。GPT-4は非常に高価です。データ量も多くない2,000回のGPT-4リクエストだけで200ドル以上かかりました。これらの2,000件のリクエストに対してです。それはかなりの金額で、使うにはお金が足りないかもしれません。
さて、聞いたことがあるかどうかわかりませんが、コードを書く、あるいは実際にはコードを書かない新しい方法があります。「バイブコーディング」という用語です。確かに新しい方法があるのです。アンドレ・カーパシーが1ヶ月以上前に造語した言葉ですが、今ではもっと注目を集めている言葉でもあります。コーディングに対するアプローチで、プログラム、アプリケーション、ウェブサイト、モバイルアプリなど何でも構築することができます。
これは単なるノーコードです。また、この人の前に直接いることに気づきました。これは文字通り単なるノーコードです。「みんな、信じてくれ、実際にコードの書き方を知る必要はないんだ。誰でもコーディングできる。ただ小さなものを箱の中にドラッグするだけでいい。え?箱にドラッグするスキルがないって?それが今あるスキルなのか?」いま私たちはただそれを繰り返しているだけです。これはPRED TISSUESです。人気が出てきているようなので、私の考えを共有したいと思います。そして、なぜ私はたぶん近いうちにバイブコーディングをしないだろうという理由についてお話しします。
ちなみに、私の考えをすべてここで読むこともできます。この動画やエピソードの書き起こしではなく、実際の記事として、私のウェブサイトで公開されています。リンクも下にあります。念のため言っておきますが、まず第一に、バイブコーディングとは正確には何でしょうか?
チャットで「1」と押してください、もしバイブコーディングが何かわからなければ。実際に興味があります。もしバイブコーディングが何かわからなければチャットで「1」と押してください。バイブコーディングを知らない人がかなりいるようですね。馬鹿な岩の下に住んでいるのですか?まあ、これから分かりますね。それに加えて、私のチャットでバイブコーディングをしている人がどれくらいいるか知りたいです。バイブコーディングをしているなら「69」とチャットしてください。
ワオ、多くの人がまったく知りません。バイブコーディングをしているなら「69」とチャットしてください。バイブコーダーが何人かいますね。驚きましたが、バイブコーディングが人々に実際にコードを学ぶことを強制するかもしれないと言わなければなりません。そして、それは私を本当にワクワクさせます。「1」か「はい」「いいえ」でチャットしてください。バイブコーディングについて一つワクワクすることがあります。それは実際に人々にコードの書き方を学ばせるかもしれないということです。なぜなら、彼らは夢のアプリの75%まで到達し、そこで全てが崩壊して何もできなくなり、結局コードを学ぶしかなくなるからです。とてもワクワクします。
まだ聞いていない可能性が高い(私のXのバブルの中でみんなが話しているだけかもしれないので)バイブコーディングについて、アンドレの説明によると、「バイブを完全に受け入れ、指数関数的なものを受け入れ、コードが存在することさえ忘れる」コーディング方法だそうです。
ちなみに、「指数関数的なものを受け入れる」が文字通り何を意味するのか本当に分かりません。意地悪や変なことを言ったり、バカを装ったりしているわけではありません。誰も駆け引きはしていません。文字通りの意味でも、それが何を意味するのか本当に分かりません。あるいは何か他の意味があるのでしょうか。LLMがあなたよりもオーダーオブマグニチュード速く(10倍速く)コードを生成することが「指数関数的」だと言っているのだと思いますが、10倍は実際には全く指数関数的ではありません。
おそらくそれは可能です。なぜならCursorやComposerやSonnetなどのLLMの助けを借りて、あまりにも優れているからです。バイブコーディングの考え方は、CursorとSonnetやOpenAI O1、O3など何でも使って、Super Whisperのようなツールの助けを借りて、実際に話しかけてオーディオを自動的にテキストに変換できるようにするということです。もちろん、テキストを書くこともできますが、話す部分は重要ではありません。
彼らは本当にスタートレックを実現しようとしているんですね。「コンピューター、テオグレイホット」。私たちは本当にそこに向かっているのです。Super Whisperについて知らなかったのですが、今知ったことで興奮しています。これは私たちが皆欲していたスタートレックの未来を完全に実現したことを意味します。私はただコンピューターに叫ぶだけで、間違いなく私が言ったことを正確に実行してくれます。何も作り上げません。または、そこに到達します。素晴らしいことになるでしょう。ただ待てないんです。
考え方としては、生成されるコードを気にせず、キーボードに触れることなく話しかけるだけで済むということです。素晴らしいですね。「サイドバーのパディングを半分に減らして」のようなバカげたことを頼むこともできます。なぜなら、あなたが怠け者で正確に見つけるのが面倒だからです。そして、あなたに投げかけられるコードの変更をすべて受け入れるだけです。
つまり、これらのAIツールを助手として使用するのではなく、生成されるコードを検証したり分析したりしません。LLMをヘルプとして使用して、全体的なコードベースの一部を生成するのではありません。その考え方は、本当にLLM、つまりAIにすべてをさせて、生成されるものを気にしないということです。
ちなみに、私のDevonへの冒険を追っていない人のために、Devonによって生成されたコードについて(それがDevonによって生成されたと言うのは少し不公平かもしれません。なぜなら、それはClaude何かやGPTやその他のモデルかもしれないからです)、そのゲームコードをCaseyにレビューしてもらったとき、それは単一で最も狂ったコードでした。
更新前にレンダリングが時々行われ、移動すると実際に次のフレームで半分の動きが起こりますが、他の動きでは起こりません。そう、Chyはバイブコーディングをしていました。本当に、各ベクトル操作について、ベクトルが定義されておらず、ただ進ませました。ベクトルやそれらの操作を行う関数のアイデアを作らず、代わりにこれらの小さなものを作りました。XとYを持つJavaScriptオブジェクトを素のまま使用し、すべての計算を至るところでインラインで行いました。
これはバイブコーディングに対する藁人形的アプローチです。いいえ、それは文字通り100%バイブコーディングでした。それはプロンプトの問題でしたか?それが問題です。再びあなたはコードを気にしています。バイブコーディングの真の受け入れをしているならば、根底にある構造を気にしません。「私に物を作って」と言います。「Vector 2クラスを作成して、そのVector 2クラスでやりましょう」とは言いません。「さあ、リファクタリングを始めましょう」とは言いません。「リファクタリング」という言葉は口から出すな、マジで。それはクレイジーです。あなたはまだコーディングしています。ただ他の誰かにやらせているだけです。受け入れなければなりません。それを受け入れなければなりません。それがバイブコーディングであり、また恐ろしいものです。
これは馬鹿げていると言っている人がいます。どの部分が馬鹿げていますか?見てみましょう。実際に辞めたのでしょうか?バイブコーダーは実際にコードを書きます。これは最も真の受け入れではありません。気にしないのであれば。来てください。あなたの立場を少しでも守れますか?なぜなら、私はソースに行きます。この用語の実際のソース、あなたではなく、あなたでもなく、これでもなく、ソースに行き、見てみましょう。あなたの立場を少しでも守ることができますか?
「バイブコーディングという新しい種類のコーディングがあり、そこではバイブを完全に受け入れ、指数関数的なものを受け入れ、コードの存在さえ忘れる」というのが定義です。さて、もしあなたがローチ(ゴキブリ)のように逃げなければ、どうやってバイブコーダーが気にするという考えに至ったのかを理解したいと思います。私の予想では、彼はたぶんローチし、時間内につかまらなかったので、彼は完全にローチとして逃げました。
もう一人のローチがいます。絶対に臆病ものですね。「バイブを完全に受け入れる」と言います、そうやって。「diffさえ読まなくなり、生成されているものを理解しなくなる」のです。
前の議論に戻りますが、私が作った藁人形と、バイブコーディングを発明した人のどちらが正しい定義を与えているのでしょうか?彼は「diffさえ読まなくなる」と言っています。生成されるものを理解しません。エラーメッセージが出たら、コメントなしでそれをコピー&ペーストするだけです。AIに任せるだけです。
Cursorをより良くするのは、エラーメッセージが出た時、LSPができることと合わせて、より良いものを提案できることではないでしょうか?根本的により良いバイブコーディング体験を提供するのでは?
また、ほとんどの人はdiffを読まず、「良さそうだ」と言うだけだということも言いたいです。変数名が正しく命名されているかどうかをチェックするコメントの方が、実際のコード構造に関するコメントよりも多く受け取りました。そしてそれは通常、問題を解決します。本当に私の経験ではありません。
あなたはバイブコーディングに2時間失敗するのを見ることができます。「では、すべて受け入れて、npm startを実行しましょう。iOSシミュレーターで開きましょう。アクティブなミッションはありませんが、ここでエラーも出ています。最大更新深度を超えました。」これは実際にうまくいくと思っていました。以前よりは見た目が良くなっていますが、今は何も入力できません。入力するものをすべて上書きします。
このビデオとエピソードの下にリンクがありますが、後でそれに戻ります。コードは私の通常の理解を超えて成長しています。しばらく読まなければ本当に理解できません。より複雑になっていて、何が起こっているのかわかりません。時にはLLMがバグを修正できないことがあり、その場合は回避策を考えるか、ランダムな変更を求めます。
言い換えれば、「その機能は必要ないよ。代わりにこのように構築しよう。本当に欲しかったものではないけど、少なくとも機能する」というような感じです。または、ランダムなことを試して、何かがあなたの望む方法で動作するようになるまで試します。少なくとも私はこのように理解しています。エラーがなくなるまで。週末の使い捨てプロジェクトには悪くないですが、それでもかなり面白いです。
実際、アンドレは実際のプロジェクトではバイブコーディングをしないと言っていますが、私たちが皆持っているようなバカげた副プロジェクトに使うと言っています。これは効率的または良いアプローチなのでしょうか?Why Combinatorのポッドキャストでは、すべてのスタートアップ創業者が実際にバイブコーディングをしており、VCの人々がお金を入れているような実際のプロジェクトに使っていると言っています。
ほとんどの週末プロジェクトの目的は学ぶことではないですか?だから私はただ混乱しています。なぜなら、これは実際に、私はこの底半分を読んだことがないので混乱していますが、週末のプロジェクトをなぜ捨てて何も学ばないでしょうか?
多分新しいユーザーインターフェースを見るためかもしれません。ただ考えているだけで、週末のプロジェクトを捨てる目的は何でしょうか?何も学べないのに?多分あなたの仕事のためかもしれません。たぶん、実際に全パイプラインで動作するものを作るのが非常に面倒なので、「全パイプラインを取って、代わりに多くのクソコードを投げつけて、ウェブサイト全体でどう感じるかを見て、その後すべてを捨てよう」と言うかもしれません。アイデアの感触を得るためだけに。しかし、自分でやった方が簡単かもしれないという同じことに戻ります。
実際の目的について混乱しています。キャンバスにペンキを投げるようなものですが、週末全体がかかり、かなりイライラすることがあります。ただやらないこともできます。これはクレイジーに聞こえるかもしれませんが、あなたの手とあなたの脳もその能力を持っているかもしれません。
少なくとも私にとって、バイブコーディングはMVPにとって価値があるでしょうか?MVPが何の略かを覚えていてください。MVPは「今から本番環境でこれを維持します。なぜなら、人々にこれを配布するからです。したがって、私が生成したすべてと私のすべてのアイデアは今、私の肩の上の重みになるでしょう」という意味です。それがMVPの意味です。
MVPが何を意味するかを考え、それを自分に投げつけたいものとして使うのは、ひどいことのように聞こえます。プロトタイピングのためかもしれません。目的を本当に理解したいのですが、プロトタイプを作ったことがないからです。通常、プロトタイピングは最も簡単な部分です。私が扱うすべてのサービスで作業し、経験の少ないサードパーティのものと連携したいとき、それが時間の98%を占め、実際のプログラミング部分は2%だけです。
副プロジェクトを楽しむ部分は、コードに飛び込み、新しいライブラリ、フレームワーク、プログラミング言語、パターンを試して、スキルを磨き、向上させることです。しかし、もちろん誰にとってもそうである必要はありません。
「プロジェクトやウェブアプリを構築していますが、実際にはコーディングではありません。ただ物を見て、物を言って、物を実行して、物をコピー&ペーストするだけで、ほとんど機能します。」それがバイブコーディングです。これは超新しいものではなく、アンドレは2025年2月初めにこれを投稿しましたが、より注目を集めています。
より混乱する部分は、なぜWhy Combinatorがこれを良いアイデアだと言っているだけでなく、創業者も持っているかということです。Why Combinatorはあなたのアイデアからお金を稼ぐビジネスをしていることを考えてみてください。彼らはあなたに潜在的に非常にクレイジーな条件でフルタイムで働けるようにお金を渡します。例えば、6人の男性と一緒に家に住み、一緒に働くことができるようにします。それは実際にサンフランシスコで起こっています。
しかし、取引は、いつかそれが10億ドル相当になり、あなたが大金を稼げることを願うということです。つまり、Why Combinatorはあなたのアイデアからお金を稼ぐために存在しています。彼らはあなたがそれをできるようにお金を与え、あなたが経験する感情的な負担なしに利益を得ることができます。それが全体的な考え方です。
彼らは文字通り「バイブコーディングは私を100倍速くした」という言葉を言った人にお金を与えました。10倍速いとか、2倍速いとかではなく、100倍速いと言ったことに注目してください。彼らがお金を得たことにただ驚いています。クレイジーです。100倍速い?この人についてもっと知りたいです。100倍の改善を見るためにはどのようなエンジニアである必要がありますか?彼はif文が何か知っていますか?
もちろん、Peter Levelsがいます。彼はフライトシミュレーターを構築しました。ウェブベースのフライトシミュレーターです。ちなみに、これをフライトシミュレーターと呼ぶことさえできますか?それは適切ですか?フライトシミュレーターと呼べるとは思いません。それは飛行機のあるゲームです。シミュレーターは通常、実世界を取り、それをゲームに変えて、どのような感じかを理解できるようにしようとします。
バイブコーディングの方法のようです。彼はさまざまな投稿でこれを説明しており、基本的にはCursorを使用し、新機能やバグ修正などを要求し続けたと言っています。彼はJavaScriptと3JSでフライトシミュレーターを構築し、ブラウザで実行されます。
このフライトシミュレーターは見た目だけではなく、それは意図的な芸術的決断かもしれませんが、例えばクロスサイトスクリプティング攻撃の脆弱性が少なくとも1つ含まれていました。それが出荷されたとき、または追加機能と一緒に導入されたのかもしれませんが、一時点でそのような脆弱性が含まれていました。
それにもかかわらず、ゲーム全体を構築し、ホストし、人々にプレイさせ、彼のすべての評判とステータスのおかげで、人々に多額のお金を払わせることができるのは素晴らしいことです。レベルズよくやった!何のことか分かりますよね。人々が彼らの名前をゲームに入れるために月に数千ドルを支払うようになった。正直に言って、誰かが彼をノックできますか?Peter Levelsは惑星を所有するための広告で、ほとんどのインディーデベロッパーよりも多くのお金を稼いでいます。
私たちのほとんどがそれを達成できるかどうかは議論できます。私はそれがPeter Levelsがピーター・レベルズであることと、彼が持つほぼカルトのような追随者と彼の到達度によるものだと主張します。しかし、それはこのビデオのトピックではありません。
バイブコーディングは確かに存在します。このようなゲームへのバイブコーディングができます。Xで共有された他のゲーム、他のブラウザベースのゲームもありました。見た目は似ていましたが、バイブコーディング方式で作成されました。
ここで一つ言えることは、もちろん、これらのプロジェクトがすべて完全にバイブコーディングされているとは言えません。それらはコードの書き方を知っている人々によって作成された可能性があります。Peter Levelsの場合、それは間違いなくそうです。私の推測では、彼は彼が理解していることについて何度か介入しなければならなかったと思います。
AIの素晴らしい点の一つは、一つの分野で中級または専門家であり、AIを使用する際にかなりのドメイン転送ができることです。経験がないため、適切に構造化することはできないかもしれませんが、例えばゲームプログラミングの素人である私は、2つのものの間の角度を計算し、物事を得ることができるでしょう。
オブジェクトが周りを動き回るときに、それを指すガンをおそらく作ることができます。それらすべてのコードをすべて覚えることができません。ゲームプログラミングをしたのは10年以上前です。おそらくどこかにarctan 2があるでしょう。ベクトルを正規化する必要があるかもしれません。クエリアンを使いたいなら使えるでしょう。
クエリアンの数学を以前のように扱うことはもはやできません。一時点では私はそれができましたが、今は素人のようなものです。同時に、AIに効果的に私を通過させることができます。おそらく非効率的なアルゴリズムを使用し、おそらくすべての間違ったことをするでしょうが、合理的な時間内で以前よりもさらに進むことができるでしょう。
AIについてのその部分が好きです。なぜなら、私のソフトウェア組織化の専門知識を取り、別のドメインで最善を尽くし、合理的な時間内で以前よりもさらに進むことができるからです。しかし、それはすべて仮説です。結局、学ぶことに代わるものはないと思います。最終的には、学ぶことが重要です。
彼はUDPとTCPの違いを学び、以前は知らなかったジッタリーな問題を取り除きました。スピードラン体験です。UDPには独自の問題がありますが、それでもUDPというものがあり、ライブ更新ゲームにとって本当に素晴らしいことを彼は学びました。プレイヤーについて本当に気にしていないゲームにとっては。
彼はゲームのほとんどの部分をバイブコーディングしたかもしれませんが、すべてではないかもしれません。コードの書き方を知らない人にとってのバイブコーディングの問題は、それがゼロか100かのことだということです。すべてに使用するか、まったく使用しないかのどちらかです。90%の道のりに到達しても、残りの10%が重要で、それらを修正せずにゲームが実行されない場合、何も得られません。
もちろん、LLMは改善されるとも言えるでしょう。これは本当に良い点です。LLMがあなたを90%の道のりまでしか連れて行けないのであれば、実際には最も簡単な部分を行い、残りの10%には、LLMがその時点までに行ったすべての経験を集め、残りのことを運ぶ必要があります。
最初の90%は楽しい90%で、それをLLMに渡しています。第二の90%は楽しくない90%で、それをあなたがやることになります。それが私の主なポイントではありません。完全なアプリケーション、ゲーム、ウェブサイトなどへのバイブコーディングの道を歩むことができるかもしれません。しかし、それは私の経験ではありません。
私はバイブコーディングのアプローチでReact Nativeで非常にシンプルなモバイルアプリを試みるライブストリームをし、失敗しました。ひどい見た目でバグがありました。ライブストリーム全体または短縮バージョンを見ることができます。両方ともこのビデオとエピソードの下にリンクされています。バイブコーディングのアプローチを試みたとき、私は動作させることができませんでした。
実際にコードを書かず、ただ質問し続けましたが、欲しいものを得られませんでした。もちろん、もっと質問することもできました。2時間後に辞めました。すべてのことを修正しようとし、数時間後に欲しいアプリを手に入れた可能性もあります。
しかし、バイブコーディングの私の主な問題は、質問し続けたり、質問して問題を説明したりすることに数時間、あるいは多くの時間を費やしたくないということです。単にコードを書く方がはるかに生産的です。
問題を説明しようとするとき、各単語にどれだけのコンテキストを入れているかを覚えておく必要があります。一方、プログラムを書くとき、書くすべてのことは完璧に記述されます。間違いかもしれませんが、それでも完璧に記述されています。欠けたコンテキストはありません。
代替的に理解されることはありません。使用する言語の一つの理解しかありません。英語やその他の話し言葉を使用すると、比較的非常に不正確です。
私はコードの書き方を知っています。計画があります。書きたいコードを知っています。なぜ書きたいことをLLMに生成させるのでしょうか?完璧な世界と完璧なコードでは、LLMが私が書くよりも速く生成する方が良いかもしれませんが、ここで一つ言えることは、「書く」と言うとき、もちろんすべての文字を入力するという意味ではありません。AIがなかった時代から、すでに私たちはCursorやGitHubのCopilotなどの他のツールも含め、すべての文字を入力していたわけではありません。実際、Copilotを再び無効にしました。正直に言って、うんざりしました。Copilotはただのジャンクです。遅いし、50%の時間で間違っています。完全にジャンクです。最終的に「多分私が間違っているのかもしれない」と思い、試してみようと決めました。でもただのジャンクでした。
TJはSupermavenの方が良いと言い続けています。Supermavenを試してみるつもりですが、本当にひどかったです。その世界では、すべての文字を書いているわけではありません。開発者としても、そうしたことはありません。数文字を入力し、オートコンプリートを使います。今はAIで全体のブロックを自動補完できます。
正直なところ、この経験も比較的新しいものです。コーディングがFORTRANから存在したとすれば、それは1959年、間違っていなければ、簡単にするために1960年としましょう。1960年がコーディングの誕生とすると(Z1言語などが1930年代にあったことは知っていますが)、1960年から2000年までLSPはなく、2000年から2010年までLSPはなく、2010年から2015年までもLSPはありませんでした。すべての言語でどこでもオートコンプリートが自由に利用できるという考えも、プログラミングのほとんどの期間では存在しませんでした。オートコンプリートの考えも比較的新しい経験です。
LSPが登場しても、それが完全に採用されるまでにはさらに数年かかりました。比較的新しい概念です。Net BeansのようなエディターはJava用のオートコンプリートを早くから持っていました。PHPに対しても悪くない仕事をしました。いくつかの言語に対してかなり良い仕事をしました。それが2009年から2010年頃にNet Beansを使用した理由です。適切なオートコンプリートが得られたからです。
AIを助手として使用しています。それは素晴らしいです。確かに私の速度を上げますが、それでも私が指揮を取っています。何を書きたいか、どこに行きたいか、どのようなコードが欲しいかを知っています。そのため、両方の世界の最良のものを得ていると感じています。AI主導というよりも、私がAIを導きます。コードを書き始め、AIが手伝うようにします。AIがそのコードの一部を完成させます。
それらも頻繁に失敗することがあります。欲しくないコードなので受け入れたくない提案もありますが、必要なコードである機会は十分にあり、そのため私は間違いなく速くなっています。その点にさえ達していないかもしれません。新しい経験を試す時かもしれません。Cursorの経験をする時かもしれません。それが私を修正するかもしれません。Cursorが私を修正するかもしれませんが、今のところそのような経験はありません。
今のところ、AIの使用は自分でやるよりもとてつもなく遅いです。毎回それをする必要があるとき、そのコードをレビューしなければなりません。レビューするのは入力するよりも遅いです。彼らが構築したコンテキストを理解するのは、自分でコンテキストを構築するよりも遅いです。ゆっくりと積み上げていくような感じです。
ただ入力するよりも時間がかかります。速く入力できる場合、プログラミングは簡単です。そのようにして生産的になれます。もちろん、コードの書き方を知らなかったり、知らないプログラミング言語やライブラリでアプリケーションを構築しようとしたりすると、ずっと時間がかかるでしょう。その場合、バイブコーディングの方が速いかもしれませんが、質問を繰り返したり、問題を説明したりしなければならないとしたら、それでも狂ってしまうでしょう。
しかし、バイブコーディングの方が速いかもしれません。もちろん、その代替案は、新しい言語、新しいライブラリなど、何であれ単純に学ぶことです。もちろん、それには時間がかかるでしょう。
学ぶことへのアレルギーがあるのでしょうか?そこまで来てしまったのでしょうか?新しいことを学ぶことへの単純なアレルギー?
一般的に明らかなシフトがあり、自分自身でも感じることができます。便利さは本当に、私たちの文化では便利さに従うことがほぼ道徳的なものになっています。それは常にそうだったわけではありません。科学的知識を知識のために追求することについての多くの文献があります。人々が単に便利さを受け入れていたわけではないことは確かです。
私たちは不便なことをしなければならないとき、それが痛みのように感じるほど、便利さを完全に受け入れています。それは現在の私たちの状態とは異なる感じがします。
「プリム、それは便利さだけでなく、スピードについてもあることを理解していますよね?」
スピードの点については信じていません。なぜなら、それは「今払うか後で払うか」というようなものだからです。AIのコードベースをレビューするたびに、「ここで何が起こったのか」という多くのことがあります。これはプログラムするにはずっと難しい世界です。
100メートルをバイブで走ることができるかもしれませんが、まだ800メートルがあります。まだ700メートル残っており、その残りの700メートルは、必要以上にずっと難しくなるでしょう。
速く動くことが究極の目標かどうかはわかりません。私たちは、速く動くことや可能な限り早く何かを立ち上げることが、何らかの最高の善であるという奇妙な概念を作り出しました。速く動いて何かをできるだけ早く実現することが、それ自体で良いことかどうかは確信がありません。
構築しているものを理解することは良いことです。物事を外に出すことは良いことです。正しいものを構築していることを確認することは良いことです。何かをハックして構築し、「この感じが好きではない、これを変えよう、別の方法で構築してみよう」と学ぶことはたくさんあります。
それが私がHarpoonにたどり着いた方法です。Harpoonに到達する前に2〜3の異なる実験を試みました。速さは非常に重要でした。最初のバージョンは、何を作りたいかを理解したかったので、かなりひどいコードでした。何かを作りたいという欲求は理解していますが、まだ実際に何かにするという後半部分があります。
しかし、その知識を持っていれば、それは誰も奪えない資産です。次回、その言語やライブラリで何かを構築するとき、より速くなり、その後の次回はさらに速くなるでしょう。結局、バイブコーディングよりも速くなるポイントに達するでしょう。
人々は「それはビジネスが望むことだ」と言っています。これを単に商業的なもののせいにできるかどうかはわかりません。「これはビジネスが望むこと」という理由でできるとは思いません。外部に存在するものがあり、「まあ、男がそこにいるからそうするんだ」という考えは好きではありません。それが常に問題の原因だとは思いません。
常に外部の何かを指して、これが常に問題の原因だと言うのは好きではありません。常にマネージャーが望むのは、常に最速のものを出すことではありません。なぜなら、リファクタリングが必要になり、物事が遅くなり始めるとき、彼らも完全に仕事を失うからです。
悪いマネージャーがいることは理解しています。悪いマネージャーと素晴らしいマネージャーの両方と働いたことがあります。常に「これは正しいアイデアですか?実際に正しいことをしていますか?それとも私たちの尻を噛むようなものを構築していますか?」と質問する人々です。良いマネージャーはまだいます。たくさんの良いマネージャーに会いました。
これはRedditの結果だと言えるでしょう。曇った影のような人物が全員の脳を変形させているとするなら、インターネットは単一のカテゴリーのすべての人々を普遍的に一つの方法で描くという素晴らしい仕事をしています。それはクレイジーな発言であり、普通ならそのような発言はしないでしょう。
今や人々はすべてのマネージャーが効果的に愚かだと主張しています。これはちょっとクレイジーです。たくさんの良いマネージャーがいて、たくさんの悪いマネージャーがいます。同じ会社で両方に会いました。4つの異なる会社で働き、素晴らしいマネージャーと悪いマネージャーの両方を見てきました。
主に悪いとさえ言えません。「主に悪い」もまた、あなたの限られた視点では主に悪いかもしれませんが、私はほとんど幸運だったかもしれません。私は50/50くらいだと思います。さまざまな理由があり、働いている会社にも依存します。
あなたが働いている会社がお金を稼いでおらず、何かをする必要がある場合、彼らがショートカットを取る理由は理解できるでしょう。私たちは皆ショートカットを取ります。ショートカットがマネージャーが言うからだけ存在するという考えは、ただの嘘です。
将来のプロジェクトのために今日投資をしているので、もちろんバイブコーディングは、コードの書き方を知らない人々、コードの書き方を学びたくない人々、ただ一つのプロジェクトを構築したい人々にとって非常に価値があるかもしれません。そして、彼らは使用しなければならない基礎となる言語やライブラリを学ぶ投資をしたくありません。
そのような人々にとって非常に有効かもしれません。私もその理由でAIを使用したことがあります。やりたくないことがあります。TJは素晴らしい例を持っていました。彼はLuaのある特定のバインディングのために多くのタイプを生成しなければなりませんでした。それは彼に10時間ほどかかり、すべてを非常に細かく調べなければなりませんでした。
代わりに、LLMに尋ね、5分後にはあなたを85%の道のりまで連れて行く基本的なボイラープレートを手に入れ、時間が経つにつれて物事を修正できます。それは超クールです。そのように大ファンです。それは本当に輝く場所です。
バイブコーディングに対する他の問題として、生産性の問題以外にも、チェックしていないコード、理解していないかもしれないコードを出荷することに自信を持てないということがあります。
特に会社でお金がかかっている場合、想像してみてください。物事が間違った場合、特に会社で物事を出荷していて、単に信じられないようなセキュリティの脆弱性を出荷してしまった場合、それはかなり悪いことになるでしょう。
クロスサイトスクリプティング攻撃はおそらく心配の最小限のものです。それらは起こりますが、結果は最小限だと思います。もっと悪いことが起こる可能性があります。
セキュリティの問題やバグを導入することを排除することはできません。私たちは皆間違いを犯しますが、経験を持つ人間として、私のコードの特定の領域、構築している特定の機能について注意すべき場所を知っています。
例えば、ウェブサイトのユーザーによって直接または間接的に生成されるHTMLを出力する場合、そこにはクロスサイトスクリプティング攻撃の可能性があることを知っています。
認証を実装する際に従うべき特定のパターンがあることを知っています。クライアント側のコードに秘密を入れるべきではないことを知っています。例えば、OpenAI APIのAPIキーはクライアント側のコードにあるべきではありません。
AIもそのようなことを知っているかもしれませんが、常にそれを念頭に置いているとは限りません。コードベースが複雑になるほど、特定の機能だけを求めている場合、AIが特定の問題を含むコードを提供する可能性は確かにあります。
AIが修正方法を知っているかもしれませんが、そのコードを提供する時点では、それを念頭に置いていないか予測していないという問題です。それは確かに起こる可能性があり、ここではまだハルシネーションについて話していません。
GitHub上のコードの一定の割合にセキュリティの脆弱性が存在するという例に戻ると、あなたが書き始めたものや持っているものがそのセキュリティの脆弱性を持つ特定の割合と一致する可能性は何でしょうか?
AIが「漏らすべきか漏らすべきでないか」を判断するのではなく、単に「これだ」と判断するだけです。Firebaseを使用することを決めたらどうなるでしょう?Firebaseはあちこちにあります。Firebaseコードを書く可能性があり、人々が常にFirebaseを適切に保護しないため、他の人々が行ったことを生成し、それは安全でないFirebaseコードであり、「しまった」ということになります。
AIが悪い習慣や同様の問題でトレーニングされている可能性もあります。私はコントロールを持ちたいです。私のコードに責任を持ちたいです。出荷するものを知りたいです。理解していないコードや、チェックしていないコードを出荷することに自信を持てません。
他の人々は異なる感情を持つかもしれません。あなたは単に出荷し、エラーが発生したときに修正するというメンタリティを持つことはできますが、法的または財政的問題を引き起こす可能性のある深刻なエラーを出荷しないことを本当に願わなければなりません。
一度それをやったことがあります。幸運にも捕まえましたが、それでも言っておきます。あなたが何をしているか知っていても、偶然に複雑なバグを出荷してしまうことがあります。
セキュリティ専門家と2人の別々のソフトウェアエンジニアに見てもらいましたが、誰一人として問題を見つけませんでした。1年半後に偶然に問題を発見しました。誰も考えもしなかったため、何年もの間存在していた信じられないようなバグがありました。
おそらくあなたが気にしないことかもしれませんが、私は気にしています。それが私にとってオプションではない理由です。
バイブコーディングに対する最後の問題は、バイブコーディングの全体的な考え方が、流れに任せ、質問し続け、本当に計画を持たず、何かが機能しなくても気にせず、それを回避するか、ランダムなことを試すということです。
これは、計画が重要で、おそらくプロジェクトで一人で作業していない環境ではうまく機能しない可能性が非常に高いです。
同僚と一緒に作業していて、全員が流れに任せ、ランダムなことを試すなら、それは災害のレシピになるかもしれません。5人のエンジニアがいて、全員がLLMを激しく使用している場所で働くことを想像してみてください。そのコードベースが成長する速度を考えてみてください。
それには確かに何か非常に痛いことがあるかもしれません。成長する速度は全体的な問題です。複数のデバンが実行されているのを想像してみてください。すべてがそれを粉砕しています。
彼らのマントラを聞いたことがありますか?「バグを修正せず、ただ続ける」というものです。はい、それを見ました。彼らはそれを画像生成と比較しています。
画像生成は、コードを理解していない人々が言うことの完璧な例です。画像を生成していて、それが正確でないとき、同じプロンプトで何度もロールして欲しいものを得ようとするか、少し変更して欲しいものを得ようとします。
これは何度も何度も起こり、最終的に欲しいところに到達します。これは画像生成ではうまく機能します。なぜそうなのかは非常に単純ですが、それはとても目に見えない考え方です。
画像のクラス全体が問題に適合することができますが、プログラミングソリューションのクラス全体が何かに適合することはありません。プログラミングはそのように機能しません。
芸術では多くの異なるものを解釈することができ、完全におかしなピクセルがあっても気づかないかもしれません。それはプログラミングではうまくいきません。1ピクセル違っていても、それはバグです。画像全体を完全に正確に得る必要があります。
画像でロールを何度も行えば、最終的に欲しいものが得られるので、プログラミングでも機能するはずだと考えるかもしれませんが、それらは全く同じ種類の問題ではありません。同じクラスの問題ではありません。
会社で働いている場合、通常はプロジェクト計画があり、マイルストーンがあり、特定の機能が割り当てられます。ランダムなことを試して計画を気にしないというのは、そのような環境では素晴らしいアイデアではないかもしれません。
だから、バイブコーディングは私には向いていないのです。それがあなたに向いているかもしれません。AIがより良く、より信頼性が高くなるにつれて、それはより多くのものになるかもしれません。もしそれが未来であれば、見てみましょう。
生産性の問題のような一部のポイントはまだ有効かもしれませんが、未来が何をもたらすか見てみましょう。しかし、現在、そして恐らく予見可能な未来においても、バイブコーディングはあなたがあまり気にしないいくつかのプロジェクトには良いかもしれませんが、問題もあります。
バイブコーディングについてどう思いますか?試したことがありますか?私がそのモバイルアプリを構築しようとしたデモよりも良い結果を得ましたか?私はDevonでしか試していないので、結果は得られましたが、思っていた結果ではないかもしれません。
あなたの考えを教えてください。コメントで教えてください。ではPrimagen GitHubに行き、Chy 3を見てみましょう。このバックボーイを見てください。私たちはFlappy Birdを作りました。底に置くことができます。これは純粋にバイブコーディングされています。これがバイブコーディングです。
おっと、カッコいいサウンドトラックがないと言いましたか?
(音楽が流れる)
このゲームは凄いです!このゲームは本当に凄いです!これがFlappy Birdです。これは文字通り100%人間の介入なしで作成されました。良いですね?人間はプロンプトだけを与えました。これが得られました。私たちはそれをやりました。
皆さんがその経験を楽しんでくれることを願っています。私はプレグナントバナナになりませんが、それは技術的にはプレグナントバナナと見なされます。それはかなり良く見えると思うかもしれませんが、Chussy 2も見るべきです。
これはビデオゲームです。弾が角を曲がることができる方法が好きですか?それはホットアニメWFUです。それが動く方法が好きですか?このゲームの投影は本当に信じられません。そのやつを角の周りに動かしました。壁に入って、壁に入って。ホットアニメを殺しています。
ああ、ホットアニメWaiuが私に向かって来ています。ともかく、AAAゲームです。非常にホットです。最高の部分は、あなたが見たそれらの生き物は文字通りアニメWusと呼ばれていたことです。Chussはクラシックです。Chuss 2は熱病の夢です。本当にそうです。Chussは非常に革新的です。
まだCall of Dutyよりも良いです。それは間違いなくCall of Dutyよりもバグが少ないです。
コードガール、こんにちは!バイブコーディングは未来です。私の推測では、少なくとも当面の未来ではおそらくそうではありません。希望として、これらのことの終わりに、皆さんは多くの時間が残っていることに気づくでしょう。十分な時間があります。心配する必要はほとんどありません。
そして正直に言って、AIが仕事を奪うと思っているだけで人々を解雇するような十分にバカな会社で働いているなら、常にそれは何らかのビジョンを売られた上級管理職たちであることに注意してください。心配しないでください。1年後に彼らは「しまった」と言うでしょう。


コメント