
16,157 文字

ああこれはタイトルを見ただけで読みたくなる記事だ。というのも、また私の偏見を肯定してくれそうだから。先週は、タワーで一週間丸々過ごして、カーソルでバイブコーディングをしたり、普通にコーディングしたり、AIに文句を言ったり、タブを愛したりとかなり複雑な関係になっている。
ただ、ここで問題があるのは4月1日ということ。これが良い記事になるのか、それとも4月1日だから悲しくなるような記事になるのか、わからない。でも見てみよう。
要約すると、AIを手動で操作する方法を選んだのは、時間とともに能力が徐々に失われていくのを感じたからで、AIを業務フローの重要な部分にすることについては慎重になるべきだと皆さんにお勧めします。
私はまだAIに、何と言うか、エイプリルフールのジョークに引っかかるような気がする。いつか来るだろう。
2022年後半に初めてAIツールを使いました。2023年のChatGPTの最初のバージョンより前にです。コパイロットを初めて使った時のことをよく覚えています。いつも話すんですが、あれは魔法の瞬間でした。絶対に魔法の瞬間です。これまでに経験した中でも最高の瞬間の一つです。本当に魔法みたいでした。
2023年、開発のワークフローでAIベースのツールを使い始めました。最初はLLMの能力に非常に感銘を受けました。わけのわからないコンパイルエラーをC++のソースコードと一緒にコピー&ペーストして、エラーの場所を教えてもらえるというのは魔法のように感じました。そうですね、確かに魔法のように感じますね。だってC++のエラーはさておき、もし私が人生で一番嫌いなことがあるとしたら、それはターミナルにサインインすることですよ。それより嫌なことはほとんどありません。
GitHubのコパイロットがどんどん強力になるにつれて、使用頻度も増えていきました。エディタ内で様々なLLM統合を使い、AIをワークフローの一部として使っていました。ただ、GitHubのコパイロットはダメだと言いたいです。単にダメなんです。良くないです。良かったこともないし、今も良くないし、将来も良くなさそうです。気分も良くならないし、幸せにもなれません。ほとんど役に立たないです。数行しか予測できないし、大抵はひどいものです。間違っていることが多いです。
でも私は考えを変えました。以前から長い間言っていますが、最高のAIコーディングアシストは質問と回答を中心としたバイブコーディングアプローチではなく、本当に優れたオートコンプリートだと思います。バイブコーディングは単にひどいと思います。最高のアシストは本当に良いオートコンプリートです。
カーソルを使う前に、VSやVimで自分で小さなバージョンを作って、どんな感じか試してみました。「うん、これはなかなか良さそうだ」と思いました。でもカーソルを使ってみると、コパイロットのバージョンが本当に優れていることがわかりました。彼らのタブ機能は非常に優れていて、少なくとも試してみる価値は十分にあります。ただし、あなたのスキルはすぐに萎縮してしまうでしょう。これは常に何かを外部に委託する問題です。一度外部に委託してしまうと、もうそのことについて深く考えなくなるのです。
2024年後半、私はすべてのLLM統合をコードエディタから削除しました。今でも時々LLMを使用しますが、多くのプログラマーにとって非常に有益な方法でAIを使用できるとは思っていません。一般的には同意します。
では、なぜAIパワードのコード編集ツールを使わないのでしょうか?テスラのFSDについて。2019年から2021年までテスラを運転していました。ここでただ自分が乗っている車を自慢しているんですね。2019年のテスラ時代。あの頃はテスラが流行っていた時代です。同じ買い物はもう二度としないでしょう。政治的な理由ではなく、単に車の品質が低く、非常に高価で、修理やメンテナンスが地獄だからです。修理が大変だという話は聞いたことがあります。
ちなみにベイエリアにいた2014年、2015年、2019年頃は、テスラを持つことは自慢でした。テスラを手に入れた時、高速道路ではいつでもFSDを使っていました。高速道路でFSDをオンにして少し気を抜くのは気持ちが良かったです。車線変更は方向指示器を出すだけで車が勝手に変更してくれました。私の運転は、高速道路に乗って、FSDをオンにして、時々車線変更を指示して、音楽やポッドキャストを聴きながらぼんやりするだけでした。
車をよく運転する人なら、高速道路を運転している時、すべてが自動的に起こることを知っているでしょう。車を車線内に保ち、適切な速度を維持することは受動的な行動になります。本を読むような集中力は必要ありません。歩くのに必要な集中力と同じです。あなたの心の背景で起こります。確かにそうですね。ただ本当に面倒くさいです。
ここまで彼は自動運転車が欲しくなるような素晴らしい主張をしています。私は運転が大嫌いです。単に運転が嫌いなんです。運転は催眠術みたいなものです。
2019年から2021年の期間、長距離運転には専らテスラを使っていました。2021年以降、普通の車に戻りましたが、その切り替えは予想とはかなり異なるものでした。高速道路での運転は最初の1ヶ月ほど、完全な注意力を必要としました。車線の中央に車を保つことを考えずにできるようになるには再学習が必要でした。テスラのFSDに依存していたことで、自分の自動操縦能力が失われていたのです。
それは実際に興味深い議論です。彼が主張しようとしているのは、私たちが定期的に行うタスクは歩くのような背景タスクになるということです。あなたが気づかずに行っている隠れた多くのことや、体が自然に行う必要な計算があります。そしてその能力を取り上げると、かつて容易だった自然な簡単なことが難しくなります。これは良い議論の基盤を構築するための良い出発点だと思います。
これは文字通り筋肉の記憶ですね。実際には完全に公平に言えば、脊髄の記憶です。皆さんはそれについて話しますが、これは本当に素晴らしい議論の基盤だと思います。
AIパワードのコードエディタでの私の経験も似たようなものでした。最初はAIに支援されると作業をかなり速く完了できると感じました。ほとんどの場合、行っていた作業はそれほど複雑ではなく、AIはテスラをFSDに乗せるようなものでした。機械に仕事をさせるように指示するだけでよかったのです。
空き時間に、私の仕事用デバイスの個人アカウントでサイドプロジェクトに取り組み始めました。このアカウントではコパイロットやその他の高度なAIツールへのアクセス権がありませんでした。これはAIの使用がテスラのFSDの話に非常に似ていると感じ始めた時でした。
正直言って、1週間カーソルを使った後、時々ニオ・ヴィムに戻ってここで作業を始めると、「もう自動補完してくれよ」と思ってしまいます。スニペットはありますが、「number」と入力して、また「number」と入力して、また「number」と入力しなければならない…もう既に私が何を望んでいるかわかっているじゃないですか。私も何を望んでいるかわかっています。それを実現してほしいんです。コパイロットを使えばそれが戻ってくるでしょうが、コパイロットも他の場所では非常に煩わしいです。なぜならコパイロットは「実際には…」と言い出して、95%の時間で間違っていて、気が狂いそうになります。
使うのが本当に嫌いです。世界で最も迷惑な人とペアプログラミングをしているようなものです。常に彼らの思考が見えてしまうんです。
ともかく、私は以前より基本的にソフトウェア開発を行う能力が低下していると感じました。AIツールに頼るようになっていたことが明確になりました。これが悪いことだとは思いません。もっと考える必要がありますが、プログラミング自体が全てではないという確信はありません。
自分で入力しないと、何が起こっているのかについての鋭い感覚を多く失いますし、マスタリーや単にAPIとの馴染みなども失います。しかしLSP(言語サーバープロトコル)も同じようなことを引き起こすと主張することもできます。LSP自体も、本当に優れたプログラマーになるという点では、その質を失わせることがあります。それらは近いレベルにあると思います。まったく同じではないにしても、種類の違いではなく、程度の違いです。
関数を定義するたびに、AIツールが実装を書くのを待つためにエディタで一時停止しました。単体テストを手書きするための構文を思い出すのに少し努力が必要でした。ああ、そう、古いコパイロットの一時停止ですね。
これは、AIを定期的に使用している人にとっては本当の効果です。コパイロットなしで書いてみてください。コパイロットなしで書いてみると、単に停止して文字通り脳がオフになることに気づくでしょう。それは非常に煩わしいことで、「なぜいつも脳をオフにしているんだろう」と思うでしょう。
ところで、ナビゲーションのためのLSPは非常に優れています。それが好きです。
仕事でもAIは時間が経つにつれて役に立たなくなりました。楽しさが失われただけでなく、自分で実装の決定をすることに少し不安を感じるようになりました。興味深いですね。
決定をAIに委託する方が簡単に思えましたが、時にはAIは最高のプロンプトを使っても物事を解決できないこともありました。基本をよく練習しなかったため、より難しい部分でも能力が低下していることは明らかでした。
これは実際に、マイクロソフトとカーネギーメロン大学によるAIの使用と批判的思考のオフにすることの影響に関する論文で議論されていました。彼らは「難しいことをするためには、簡単なことを何百万回もする必要がある」という素晴らしい議論をしていました。
その論文の核心的な議論の一つは、簡単なことをやめることで、難しいことがより難しくなるということでした。これは実際にかなり興味深い議論です。その論文は文字通り30ページを費やして2つの文を言うのに使いました。読むのは本当に退屈でしたが、それは実際に古い議論で、ホワイトヘッドに由来しています。
簡単な小さな決断を千回もしなければ、一つの難しい決断をすることはできないという考え方があります。それがすべてです。彼はそれを言わずにそう言っているのだと思います。
指先の感覚(Fingerspitzengefühl)は直感的なひらめきや本能を意味するドイツ語で、英語に借用語として採用されています。それは素晴らしい状況認識と、最も適切かつ機転の利いた対応能力を描写しています。興味深いですね。
それは能力領域での筋肉の記憶のような形ですね。楽器を非常に速く演奏するには、時間をかけて繰り返し非常にゆっくりと演奏する以外に方法はありません。AIとプログラミングについてもよく考えます。興味深いですね。指先の感覚。私たちはこれを筋肉の記憶と呼んでいますが、NFLでは「タッチ」、そしてスポーツでは「技巧」と呼ぶかもしれません。
速く切るための唯一の方法は、ゆっくり切ることから始めることです。そのとおりです。
シニアの定義は非常に難しいことです。私の意見では、シニアであることの多くはソフトスキルにあります。技術的なハードスキルに関しては、多くは指先の感覚に帰着します。その言葉の発音の仕方さえ知りません。
言語、フレームワーク、コードベースで長く作業するほど、正しいアプローチが何かというこの種の直感を発達させます。それは全て真実だと思います。より大きなコードベースで作業している人なら誰でも、最初は謎めいていて大きく煩わしいものですが、時間が経つにつれて簡単になり、より良くなります。そして最終的には作業が容易になります。そして間もなく速く進むことができるようになります。これはただ知っているような、私たちがよく「部族の知識」と呼ぶようなものです。
人々は全てを文書化する必要があると言いますが、文書化にはある一定のレベルがあり、それを超えると機能しなくなります。もうその領域では機能しなくなるんです。直感ですね、それは良いことです。何かに熟達するというのは気持ちが良いものです。
何かがおかしいという直感が、これは私たちがすべきことだという感覚に徐々に変わっていきます。この発達した直感はアーキテクチャレベルだけではありません。低レベルの詳細にも大きな要素があります。ポインタをいつ使うか、どのタイプのポインタを使うか、アサートとチェックのどちらを使うか、複数のオプションがある場合に標準ライブラリから何を選ぶかなど。これらについてシニアC++プログラマーでさえ合意できないようです。
この直感は、AIツールに大きく頼るようになったときに徐々に失っていたものです。これはリード開発者からの意見です。
バイブコーディングについて多くの誇大宣伝を見ると、AIツールがダウンしたり高価になりすぎたりした時に、バイブコーディングのコードベースを維持し拡張するスキルをどこから得るつもりなのか、どうやってバイブコーディングでシニアになるつもりなのかと考えずにはいられません。
正直なところ、カーソルを1週間使った後で、時々ニル・ヴィムに戻ると、「もう自動補完してくれよ」と思うことがあります。プロンプトやコンテキストに関してもレベルの直感や指先の感覚、少しの技巧があると思いますし、プロンプトに関しても成長できると思います。私よりプロンプトが上手な人はいます。
さて、L take、それは常に安くなっています。最近、物事は安くなっていません。GPTなんて本当に高いです。サム・アルトマンは毎年10倍安くなると約束していたのに、それを言った6ヶ月後には100倍高くなりました。これは愚かなことです。10倍欲しいんです。サムは嘘をつくはずがないでしょう?彼は嘘をついたんです。彼は400億ドルの資金調達を終えたばかりです。だから今では「うわ、これめちゃくちゃ高いよ」とツイートしているはずです。「これらの問題を解決するためにたくさんのお金があるから心配しないで」と。卵の価格はほぼ10%上がりました。いや、10倍ですね。狂っていますね。
より大きなコンテキストウィンドウ、より多くの計算能力、推論モデル、エージェントがあっても、AIができないことはあるでしょう。時間とともにAIツールはますます強力になるでしょう。確かに。
しかし、「ウェブサイトは正常に動作していますが、アプリは本番環境でダウンしています。ローカルでは試したら動作していて、監視にも何も出ていません」というSlackメッセージを受け取った時、AIエージェントにこれを修正してもらう良運を祈ります。できるかもしれないし、できないかもしれません。AIエージェントが解決できない場合、「申し訳ありませんが、カーソルが理解できません。明日また試します」と返信するのでしょうか。
デイビッドのこの言葉は大好きです。「申し訳ありません、明日また試します」。これは本当に素晴らしいフレーズで、いつでも使いたいですね。「すみません、今日は創造的なプロンプトのエネルギーが切れてるんで、明日また試してみます」というような感じで。
これらのツールなしでも対処できます。確かにできます。「置いていかれている」と言う人たちは間違っていると思います。先週までタブやカーソルを使ったことがなかったのですが、使い始めてたった1時間半ほどで、タブがどのように機能するのか、なぜ機能するのか、いつ使うべきかについて専門家になりました。だから、「今利益を得ていなければ二度と利益を得られない」というような参入障壁はないと思います。
「彼らは常に良くなっていくだろう」と言っているわけですね。はい、彼らはもっと良くなるでしょう。もっと統合されるでしょう。3年後には完全に異なるものになるでしょう。では、今何を学んでいるのでしょうか?チェックメイト、無神論者!
これらのツールで対処できます。時々、AIを使わないと6ヶ月で仕事を失うように感じることがあります。この「3〜6ヶ月後」という話はもう2年以上聞いています。2019年にテスラを手に入れたとき、3〜6ヶ月以内に到着するはずの機能に6400ドル支払いましたが、5年以上経った今でも約束された形ではその機能は存在していません。
自動運転車は未来を見通す最高の例です。自動運転車は長い間約束されてきました。現在、大学のプロジェクトより大きなプロジェクトでAIにコーディング作業をさせることは可能性が低いです。レガシーシステムや企業の大規模プロジェクトで作業する場合、または私がUnreal Engineでやっているように多くの依存関係の内部を調べる必要がある場合、AIツールはしばしば物事を機能させることができません。
内部DSL、ツール、フレームワークを扱う必要がある場合、業界向けに役立つ出力をLLMに生成させるのは難しいでしょう。様々な理由でAIツールをまったく使用できない場合もあります。
まず後ろに戻りましょう。これは本当に重要です。もしあなたが完全にこれに依存しているなら、医療、金融、政府、銀行などの職に就けません。AIが許可されない業界がたくさんあります。時間とともに変わるでしょうが、今のところそれはあなたにとって閉ざされたドアです。認識しておくべきことです。
ゴールドマンはデベロッパー向けのAIツールに力を入れていますね。銀行でも変わる可能性がありますが、それがどのくらい速く変わるかはわかりません。
次に、これは本当に良いことです。この文から得られる最大の教訓は、DSLを作るのをやめることです。Luaを使いましょう。Luaは簡単で、DSLは難しいです。DSLを作るたびに悲しくなります。それだけです。
認証システムのようなものを実装する場合、AIに頼るべきではないものもあります。JWT署名やRBACなど。プロンプトに「セキュアにしてください」と追加しても、CVEを持つGitHubコードで訓練されていれば安全にはなりません。
ところで、ここには役に立たないif文があり、将来についての非常に興味深い部分があります。セキュリティは長い間必要とされる分野です。なぜなら、このコードはどこから来ているのかというと、GitHubから来ています。そしてセキュリティの問題はどこで発見されるのかというと、常にオープンソースのソフトウェアで発見されます。
なぜなら、セキュリティの問題はプログラミングの自然な一部だからです。すべてがこれで訓練されていると何が起こるかというと、単により多くの問題を作り出すことになります。統計的に見れば、セキュリティの問題を作り出しているんです。みんな私のひどいコードを盗んでいるんです。
セキュリティに関しては、責任を持ち完全に理解している人であるべきです。重要なシステムは人間によって書かれ、レビューされるべきです。
実際に素晴らしい例としては、NextJSの最新のセキュリティバグがあります。どのように機能するかというと、非常に単純です。基本的に認証をバイパスできる攻撃を可能にします。「信じてくれ」というヘッダーを追加すると、ミドルウェアがそれを見て「ああ、この要求に認証を実行する必要はない」と判断します。
このようなものが存在する理由は、HTTPリクエストが入ってきて、システムに入り、あなたが認証されているかどうかを確認するためにリクエストを行うミドルウェアがあるということです。その認証は別のリクエストを作成する必要があり、そのリクエストは再びミドルウェアを通過する必要があります。明らかにこれは人々がセットアップしている方法です。そうすると、これが永遠に繰り返されることになります。
彼らの解決策は「信じてくれヘッダー」で、そうするとミドルウェアを通過して進むことができます。あるいは認証ミドルウェアを通過するだけです。それはSSA(超安全な認証)でした。「信じてくれ、本当だよ」という感じです。
これは狂っていますね。つまり、それは存在するものです。それは今起こったばかりのことです。誰かがこの最適化を導入したとき、皆は拍手していました。誰かがこの再帰的なミドルウェアリクエストの問題を解決したとき、皆は拍手しました。素晴らしい、本当に素晴らしい。このタイプの攻撃の例は他にも10以上あります。それはどこにでも存在します。
これは1週間前にNext.jsで修正されたばかりです。つまり、AIがプログラミングでセキュリティを行っていると、何かが起こる可能性がゼロではないということです。知らず知らずのうちに、その蛇の尾を食べてしまうかもしれません。
セキュリティに関しては、責任を持ち完全に理解している人であるべきです。私はそうしてきましたし、セキュリティの問題も導入してきました。重要なシステムは人間によって書かれ、レビューされるべきです。そして、もし1つのAIエージェントがコードを書き、別のエージェントが自動生成されたPRをレビューし、別のAIエージェントがコードをデプロイするという状況に向かっているなら、セキュリティの問題が急増するのを見ることになるでしょう。絶対にそうなります。
ちなみに、これはNext.jsを批判しているわけではありません。気になる方のために言っておきますが、これはただ難しいという理由です。セキュリティは難しく、物事がどのように機能するかというコンテキストを持たない人にとっては合理的な解決策に見えるかもしれません。「わあ、それは合理的な解決策だね」と言うでしょう。
なぜなら、その変更をした人(仮にトッドとしましょう)を誰かがレビューして「いいアイデアだね、いい答えだよトッド」と言ったのでしょう。トッドは「俺は天才だ」と思い、他の誰かも「トッドは天才だ」と言ったのでしょう。これを通過させた人は複数いるはずです。
Next.jsユーザーとしては、Next.jsを批判すべきだという意見もありますが、そうではありません。単にセキュリティは難しいということです。
私が線を引くところ。私は今でも時々AIを使います。賢く使えば素晴らしいツールになると思います。私は統合の点で線を引きます。AIをコードエディタから完全に分離しています。
これは実は私の反対の意見です。AIを使うなら、エディタに入れた方がいいと思います。
私はすべてのコンテキストを手動で追加します。必要な努力を意図的に高く保つことで、自分を思いとどまらせています。興味深いですね。それはあなたが自分自身を助けられないからです。うん、それは理にかなっています。
仕事でAIを使用する例には以下が含まれます:これらのGoテストをstructからマップへのテストに変換する、この計算をSIMDに変換する、コンテンタイプがapplication/zlibの場合にはボディをデコードするなど。変更されたコードのみを提供し、追加するための指示を与えるためにカスタム指示を設定しています。このようにして、私はコードベースに変更を加える人間として残ります。gitのdiffを承認するだけでは十分ではありません。手動でコードを追加したいのです。そうすることでのみ、私はそれに署名し、責任を取る自信を持つことができます。
そうですね、gitのdiffで迷子になることはあります。それは公平な意見です。迷子になることはあります。それは起こります。コードレビューはGitHubでするほうが、自分のエディタでするよりも簡単だと思います。エディタでdiffを見る方法は知っていますし、そういったことはすべてできますが、GitHubにいるときとはただ見方が違うのです。私の思考プロセスが変わります。
ウェブサイト上にいるときにトレーニングしてきた非常に強い思考プロセスがあり、エディタにいるときよりもウェブサイトではなぜかレビューがうまくできるのです。エディタにいるときは同じようにレビューできません。なぜかは説明できません。UIの問題だとは思いません。それはメンタリティの問題だと思います。私にとっては、単に見るときに「レビューしている」というメンタリティを採用しているだけです。
高速道路を運転するようなものです。もう考えなくなりますが、それは自動的なプロセスのようなものです。それが良いとか悪いとかいうつもりはなく、ただそうなっているだけです。理解できます。
AIのもう一つの素晴らしい使用例は学習です。私はいくつかの非常にニッチな興味を持っているので、しばしばかなり珍しい質問をします。カスタムゲームエンジンにECSを使用してネットコードを追加することについては、あまり学習リソースがないことがわかります。
私にとって効果的だったのは、「このアセンブリコードを説明して」「このシェーダーは何をするのか説明して」「ゲームエンジンでのクライアントサーバーの非同期を解決する方法について詳しく書かれた本はどれか」といったコードの断片をAIに説明してもらうことです。AIはこれらに時々苦戦しているようで、結果はまちまちですが、それでも検索エンジンよりはるかに良い結果が得られます。
AIを検索エンジンとして使うのは好きです。グーグルよ安らかに眠れ…いや、むしろ糞の中で眠れといいましょうか。グーグルがまったく好きではありません。この記事のためにも使わないでしょう。
AIをこのように使用するもう一つの利点はコストです。不必要なAPI呼び出しがなく、コンテキストを手動で管理し、LLM設定をより制御できます。私はさまざまな異なるLLMにフックアップされたデスクトップアプリケーションを使用しています。過去3ヶ月ほど毎日使用してきましたが、合計で約4ドルのクレジットを消費しただけです。
個人的なウェブサイトに関してはもっと厳格です。AIで生成されたコンテンツ(テキストや画像)は使用していません。個人的にAIで生成された画像やアートが好きではありません。さまざまな理由があり、AIで生成されたテキストには個性が欠けていると思います。人間によって作成されたものは、AIによって作成されたものよりも価値があると思います。それは公平です。多くの人がそう感じていると思います。
AIがアーティストの仕事を奪っているというのは脳の腐敗だという意見もあります。そうは思いません。AIは確かにアーティストの仕事を奪うでしょう。特に小さなアイコンやゲーム用のポーションなど、たった一人で運営しているようなインディーズの場合、簡単に生成して済ませてしまう人がたくさんいます。特に一人だけで運営しているようなものでは、「良いアートを持つためにはアーティストが必要だ」という考え方だったものの多くが消費される可能性があると思います。
それは起こると思いますが、それはまた間違ったものを測定していると思います。結局のところ、それは出力を測定することです。私たちはタワーディフェンスゲームのすべてのタワー、タイル、土などを生成できましたが、代わりにAdam、素晴らしいピクセルアーティストであるUuniceに参加してもらいました。彼はそこにいて、話をし、アイデアを出し、素晴らしいアートを作りました。
すべてのアートの中で非常に一貫性があり、はるかに優れています。これは真空の中で作られたのではなく、一人の人から全体的に作られたからです。そのため、本当に素晴らしいテーマと感触があります。もちろん、ここでは著作権やライセンスなどの話題には触れていません。これは完全に…私はAIに関して今後5年間でいくつかの非常に深刻な問題が見られると思います。
Adamを彼のゲームのリリースから盗んだわけではありません。彼を使ったのは1週間か5日間だけで、非常に少なく、彼はすでにアメリカにいて、GDCのために旅行していましたから、それほど多くはありません。
AIには、多くの問題があると思います。それは盗みです。詐欺です。単純明快です。多くのAIの議論は技術的なものではなく、法的なものです。一部の人々や企業は杖でしか理解しません。
それが本当かどうかはわかりません。どれだけが法的か非法的かはわかりません。訓練できる十分なパブリックドメインの画像があると思います。また、アーティストがオプトインして自分のスタイルを提供するAIプログラムもあります。それは実際に人々がやっていることです。
これは私たちが直面しなければならない非常に興味深い議論だと思います。法的なことは中国にとって重要ではないということです。将来考えなければならないことがたくさんあります。今は沢山の法律や規則が生まれようとしていると思いますが、どこでどうアプローチするのかはわかりません。非常に興味深いテーマです。
効率と生産性以外にも考えるべきことがあることも注目に値します。自分が好きなことをすることも大切です。コーディングが好きなら、コンピュータの方が上手かもしれなくても、自分で続けてください。本当です。
そして製品を作るのが好きで、コーディングがあまり好きではないなら、コードを作ってくれるものを使う方が良いトレードオフかもしれません。1997年、ディープブルーは世界チャンピオンのガリー・カスパロフとのチェスの試合に勝ちました。それでも人々は依然としてチェスをプレイしています。
プログラミングに関しては、私は人々がまだチェスをプレイする同じ理由でプログラミングをしていると言えるでしょう。チェスとソフトウェア開発は非常に異なりますが、チェスの方がはるかに範囲が限られています。私はチェスを馬鹿にするのが好きです。
時には単に楽しむためにものごとをするということを心に留めておくことは良いことだと思います。これは良い声明だと思います。ただ好きだからこそやれることがあります。何かを貨幣化する結果である必要はありません。そして最高の部分は、時々最後に貨幣化が起こることです。最後に良いことが起こりますが、それが厳密な動機である必要はありません。
新しいプログラマーへのアドバイス:AIにすべての仕事をさせる永遠の初心者にならないでください。プログラマーになりたいなら、自分でプログラミングを学びましょう。好奇心を持ちましょう。時間と努力を費やして、物事が本当にどのように機能するかを学びましょう。それは本当に報われます。すべてがどのように機能するかを学び、それを使用することは素晴らしいです。学び続けてください。
プロンプトエンジニアにならないでください。それをエンジニアリングと呼んでも、信じてください、能力を持つ方が楽しいです。これはDHHの言葉です。DHH、そうです。事実です。能力を持つことはより楽しいのです。DHHに行きましょう!彼は事実を言っています。人生の事実です。能力を持つことはより楽しいのです。
AIがあなたよりも賢いかもしれませんが(私はそうだとは思いません)、「賢い」という言葉は使えません。それはより賢いわけでも愚かでもありません。AIの出力を盲目的に信頼しないでください。ワークフロー全体をそれを中心に構築しないでください。時には数日間それなしで作業してみてください。
飛行機テストが好きです。飛行機でできないプログラミングは知らないのと同じです。インターネットをオフにして、飛行機に座り、不快な状態で完全に職場から切り離され、小さなラップトップコンピュータで作業して効率的に仕事ができないなら、良いセットアップを持っているとは思いません。
プログラミングがうまくなればなるほど、より複雑な作業ではAIがあなたの邪魔になるでしょう。今コーディングを学ぶなら、AIにすべての重い作業をさせるのではなく、スキルを構築し続けてください。バイブコーディングが今作り出している混乱を修正する能力を持っています。
エリート主義的に聞こえたくはありませんが、バイブコーディング以上のことを学びたくないなら、おそらくコーディングはあなたに向いていません。なぜなら、バイブコーディングですべての作業ができるポジションは、AIがより強力になったときに最初に排除されるものだからです。また真実です。そこで良い賛同があります。
バイブコーディング、バイブコーダーはAIがより強力になるにつれて最初に排除されるでしょう。また、AIなしでコーディングできないなら、コーディングできないということも素晴らしい声明です。
飛行機のことを言うのは、何か非常に傲慢な意味ではなく、「プログラミングの仕方を理解していないんだ」というようなことではなく、あなたの最高の考えは制限されているときに浮かぶからです。ただそこに座っているだけで、誰も中断せず、誰もコードを書いてくれず、誰も何もしてくれず、ただあなたとコンピュータ、何かを試して考えて、また何かを試して考えているだけで、他のすべての気を散らすものから完全に解放されて、突然あなたの最高のアイデアが浮かびます。それは実際にインスピレーションが起こる時間を持ったからです。
常に中断されるとインスピレーションを得ることはできません。それは単に永遠に続く定数のようなものです。それは機能しません。正直に言うと、「構文がプログラミングを理解するための障壁なら」という議論が大嫌いでした。構文よりもセマンティクスの方がはるかに難しいのです。現代のすべての言語は、何かを誤るとすばらしい出力を提供します。
COBOLに対して厳しい批判ですね。だから現代と言ったんです。でも一人だけを厳しく批判したわけではなく、これは非常によくある意見です。人々は常に「構文について何か」と言います。そして構文が障壁だということに常に驚かされます。構文は障壁ではありません。難しくないのです。
とにかく、結論です。AIを使用しているとき、あなたは知識をスピードのために犠牲にしています。時にはそのトレードオフをする価値があります。そうですね、絶対にそうです。それをいつすべきか、いつすべきでないかを知るべきです。
この記事はいつそれをすべきか、すべきでないかについて少し厳しすぎると思います。結局のところ、何が一番好きか、なぜプログラミングをするのかの理由を自分で考える必要があると思います。結局のところ、しっかりとした答えはないと思います。
すべてをバイブコードする人を見下すわけではありませんが、彼らのプロジェクトでは働きたくないです。誰かが「1000ドルあげるから、このバグを直してくれない?」と言ったら、「いいえ」と言うでしょう。関わりたくないです。30分かけてプロンプトできるならやりますが、そうでなければあなたのコードには関わりたくありません。あなたのコードはゴミで、それに関わりたくないです。それだけです。
あなたのゴミに関わりたくないのです。私は物事の意味の側に立っています。最終的にコードが良く見え、良い仕事をしている限り、どのように作ったかは気にしません。ただし、世界最高のアスリートでも基本的なドリルを理由があってやっていることを覚えておくことが重要です。そうですね、そうです。これは良いことです。
同じことがソフトウェア開発にも当てはまります。上級の仕事をするためには基本を練習する必要があります。斧を鋭く保つ必要があるのです。AIが私たちの仕事を奪うまでにはまだ遠い道のりがあります。多くの企業がFOMO(Fear Of Missing Out)を販売戦術として作り出し、より多くの顧客を獲得しようとしています。そして/または、投資家にトラクションを示すために資金を調達し、次のモデルを生成するための次のラウンドの資金調達を得ようとしています。
AIはツールです。それ自体が良いか悪いかではありません。あなたがそれをどう使うかです。「ツールのサイズが問題なのではない」と言われています。パラメータのサイズが問題なのではありません。それがあなたのワークフローに依存していない限り、素晴らしいツールになると思います。
それなしでも効果的に作業できることを確認してください。完全に理解していないコードを本番環境にプッシュしないようにしてください。そしてAIをあなた自身の思考の代わりとして考えないでください。好奇心を持ち、学び続けてください。
これはカーソルが本当にうまくやったことの一つだと思います。デボンは大きな間違いを犯し、カーソルはその間違いを犯さなかったと思います。カーソルは「エンジニアは存在し続けるだろう。AIを使いやすくしよう」と言いました。デボンは「エンジニアは存在しなくなるだろう。彼らを置き換える。LLMを使いやすくする」と言いました。
これは2つの異なる考え方です。デボンのものはAIがこの本当に狂った速度で改善するという考えに基づいています。カーソルは便利さが増せばより多く使用するようになるが、あなたがまだコントロールしているという考えに基づいています。
最終的にデボンは成功しないと思います。ただし、LLMの力に大きな変化があり、すべての問題に対して均一にバイブコードすることが実際に可能になるか、または、カーソルが成功することになるでしょう。なぜなら、それは良いタブ機能を持ち、より良い統合を持ち、多くの人々が多くのコーディングにそれに頼ることになるからです。
皮肉なことに、デボンはAIに置き換えられました。デボンはAIに置き換えられました。
この記事が好きです。テスラの例と、小さなことをたくさん練習することが大きなことを上手にする方法についての強調が本当に良かったです。これは多くの人が見つけたいショートカットだと思います。
子供を育てたことがある人なら誰でも知っているように、多くの子供の問題の一つは、小さなことをやりたくないということです。大きなことをやりたいのです。大きなことをやれないのはなぜか、大きなことをリードできないのはなぜか、それができないのはなぜかと常に思いますが、「寿司の夢」を見れば、世界最高の寿司を作るのを手伝うために彼が連れてくる人たちは、3年間ご飯を作るだけです。
それだけです。なぜなら、プロセスを最も親密な方法で理解するには、何度も何度も何度も何度も同じことを繰り返す必要があるからです。それが完全に理解するまで。そうすると、それは完全に異なる理解になります。
だから多くの人には伝わらないメッセージです。なぜなら人々は知識にはレベルがあることを理解していないからです。単に物事を知るだけではなく、なぜそれが良いのかという深い理解があります。
プログラミングについて知っていることの中には、本に書けないことがあります。本に書くことはできません。それはあなたの中に存在するのです。そして書き留めようとしても、正確に表現することはできません。
それは直感という言葉を探していましたが、直感以上のものです。それは直感によって埋められるギャップを持つ順次論理的なジャンプのようなものです。単に「これはより良い」と思うのではなく、「次のことを考えるとこれが良い、次のことを考えるとこれが良い」というように、プログラミングの上でチェスをプレイするようなものです。それが最終的に良くなるのです。単純な一つのジャンプではなく、その間の多くのジャンプです。
とにかく、それは指先の感覚であり、フラグルです。その通りです。


コメント