AIコパイロットという錯覚 開発者が失うものとは?
引用元:https://news.ycombinator.com/item?id=44068525
正直言って、ほとんどのソフト開発は同じようなユーザー要求向けのCRUDアプリ作ってるだけ。新しいことなんてないんだよ。何千回も見たことあるから、昔の知恵を引っ張り出して使えばいいじゃん。俺からすると、コーディングエージェントはコード再利用が超強化されたものだね。
追伸:皮肉なことに、この記事自体がAI生成っぽい気がする。
記事への反論は気にしないけど、この記事がAI生成だって示唆するのは馬鹿げてる。筆者のスタイルは鮮やかで、力強いイメージや比喩を使ってて、時には本当に面白い。もっと質的に言うと、筆者は長文エッセイ全体を通して独自の個性を保ってる。これ全部をLLMにやらせるのはまだ難しいんだ。これはAI生成じゃない。単に良い文章だよ。筆者の主張に賛成するかどうかは別としてね。
うん、記事はAIが役に立つ使い方についても話してるよ。全体的に、筆者は専門家がAIを使って助けてもらうことには問題ないと思ってるみたい。主な主張は、AIをコパイロットと呼んでるけど、多くの初心者がそれを信頼しすぎたり頼りすぎたりしてるのが問題で、実際はまだ半分はダメな同僚みたいなもんだってこと。本当のコパイロットは実は君の仲間であり、その道の専門家だよ。
…(中略)…
どこかで抽象化がすごく漏れてくるんだ。コードは予期しない壊れ方をする。多くの人が最も心配してるのは、この分野で専門家になるために絶対に重要なデバッグ、思考、自己学習のスキルを学ぶ新しい開発者がどんどん減るんじゃないかってことなんだ。
…(中略)…
学習そのものを抽象化しちゃったら、それが多くの開発者の長期的なスキルをどれだけ損なうか、疑問に思うのは当然だよね。
…(中略)…
ちなみに、俺もAIコーディングアシスタント使ってるよ。全部悪いとか全部良いとかは思わない。でも、便利だからって欠点から目を背けるわけにはいかないね。
> ちなみに、俺もAIコーディングアシスタント使ってるよ。全部悪いとか全部良いとかは思わない。でも、便利だからって欠点から目を背けるわけにはいかないね
これって、60年代/70年代のインタラクティブ端末(パンチカードに打ち込む内容を慎重に考える必要がなくなった!)、デバッガ(バグを見つけるためにコードを注意深く見る時間がなくなった)、90年代後半のIntellisense/コード補完(APIを覚える必要がなくなった!)、00年代のstackoverflow(他の人が前に質問した回答を探す必要がなくなった!)に対する議論の焼き直しじゃない?俺たちは以前にもここで同じ経験をして乗り越えてきたと思うんだ(もう誰もこれらに文句言わないし、コンピューターを再配線してプログラミングする時代に戻ろうなんて誰も言ってない)、今回は何か違うのかな?子供たちは、過去70年間のプログラミングの歴史でやってきたように、新しい抽象化の上に新しいやり方を学ぶだけさ。
インタラクティブ端末はコードを書いてくれなかったし、全く新しいプログラムのパラダイムを切り開いたんだ。デバッガは、むしろより深い理解を可能にした。Intellisenseは実際には疫病で、存在すべきじゃない。Stack Overflowも、悪用されればAIとほぼ同じくらい悪い。
意見が分かれるのは仕方ないってことで同意しようよ。挙げられたもの全部がプログラミングの新しいパラダイムを開いたし、AIもまだそれがどんな新しいパラダイムか正確には分からなくても、そうなるだろうね。昔ながらのやり方が良いって主張する人はいつもいるさ。例えば、Dijkstraが子供たちがパンチカードを使わなくなったせいで良いプログラマーになれてないって有名な不満を言ったみたいにさ。
面白いことに、Google Whiskでいくつか面白い動画(俺の趣味だけど)を作って、TikTokにあげてみたんだ。TikTokが何百万ものAI生成コンテンツや、他の人がただコピーしたもので溢れてるって知ってた?俺は”オリジナルの創作”に何かあると思ってたんだけどな。俺たち人間はみんな簡単に再現可能なんだ。ほとんど誰も特別なものなんてどこでも作ってない。もしみんなが毎日のコーディングのTikTok動画をアップしたら、TikTokの他の動画と同じように、同じクソみたいなアプリの動画ばかりになるだろうな。Elonはもしかしたらずっと正しかったのかもしれない、文字通りやることは火星に行くことしか残ってないんだ。LLMが君たちが思ってるほど幻覚を見ないって、たった2年前にも君たちの多くに言ってたんだ。遅れてきた人たちにもう一度聞かせたい — 俺たち人間はもう本当に必要じゃないんだ!
!RemindMe in 2 years
この新しいパラダイムが何なのか、実際にはかなり確信してるよ。なぜなら、一部の気の毒な連中がすでにそれを実践してるからだ:それが”slop coding”(手抜きコーディング)だ。曖昧に定義された変更をプロンプトで指示して、マシンが自分の吐瀉物で詰まったら、全部削除してまたやり直すんだ。これもまた別の”老人が空に向かって叫ぶ”シナリオとして見るのは理にかなっていて一貫してるように感じるけど、AIが思考そのものを、無限定な領域で、しかもこれほど信頼性なく自動化するのは前例がないと思うんだ。計算機が暗算を下手にしたのは知ってるけど、少なくとも計算機は検証方法がないまま40〜60%の確率でオフバイワンエラーを出したりしない。Speakwritesやスクリーンリーダーのせいで読み書き能力を失わなかったのは、それらが自分でやるよりも時間と労力がかかったからだ。AIの場合、想定される時間短縮は明らかだ:エッセイを書くためにソースを何時間も読んだりせず、ChatGPTに聞くだけ。プログラミングの基本を学ばず、X、Y、Zをするスクリプトを頼むだけ、とかね。それは良い選択肢に思えるけど、構造化されたコースでも独学でも、君の教育を永久に損なってる。そして、その想定されるオラクルはスロットマシンで、$avg_tokens*$model_rateのコストがかかる。残念なニュースは、スロットマシンは売れるってことだ。
基本的にさ、mission critical low level codeなんて書きたくないんだよね。AI toolsも著者と同じ理由であんまり便利だと思わないんだけど、Cでシステム書いてないとprogrammingじゃない、みたいな考えには正直うんざりするんだよ。俺はfront end code書くのが好きなんだ。低レベルのgraphics libraryをゼロから書くjobなんて多分一生やらないし、やりたいとも思わないだろうな。まあ、red-eyed 3am hacker brainedじゃないけど、自分の仕事には情熱あるし得意なんだよ。software開発者全員が著者のmentalityを持つworldなんてrealisticじゃないし、desirableだとも思わないな。
”you still owe your users respect. You owe them dignity.”って?そんなのmoral grandstandingだよ。customersにはlow costでgood productを提供する義務があるんだ。costを下げるtoolを使わないなんて、usersを裏切ってるし、businessは立ち行かなくなるよ。handcrafted CRUDなんて、他のhandcraftedなものと同じで、expensive niche hobbyになるだけだね。
そうだね、なんかLLMsとは全然違う、unhingedなstyleだよな。あの”They’ll be out there trying to duct-tape horses to an engine block, wondering why it doesn’t fly.”みたいな、あんなにbeautifulでcontextually-appropriateなsentenceをLLMがproducingなんてさ、まだimagineできないよ。
”I like writing front end code…but I’m passionate and good at what i do.”って?そのspirit大事にして!coworkersに求めるのはgenuine interestとcuriosityだけだよ。みんなが専門分野を持つべき。tech industryが“full stack”って概念を作ったのはmistakeだったね。Bring back specialists; we’re all better for it。
まだcodingでAIどう使うか、よく分かってない気がするね。“vibe coding”ってのは違う気がする。AI abuseしても成功しないよ。例えば、typing覚えずにintellisense頼るとか。ChatGPTは、もうwriting知ってる人ならgreat toolだよ。でも自分でwriting知らないのに使っても、いいresultsは出ないと思うね。AIをeffectiveに使うにはbasic skillが必要だ。
em-dashes使うことについては何もunapologeticしないね。They’re in my toolbox, and I reach for them。LinuxとMicrosoft Windows両方でkey-codes使ってem-dashesを手動でtypeできるし、そうしてるよ。piece of writingのprovenanceをem-dashesがusedかどうかでbasingするようなanyoneのopinionなんてさ、emminently discardable lemming-babbleだね。
最近さ、フォーマルな言葉遣いで箇条書きにしたメッセージ書いたら、ChatGPT使っただろって疑われちゃったんだよね。
正直言うと、最初の数段落はちょっとLLMっぽい雰囲気感じたよ。でも、そんなに速くないってことはすぐ分かったけどね。
それっていい’呼び方’だと思うな。俺、そういう分野全部にスキルも興味もあるんだよ。専門家が必要なこともあるけど、世の中の仕事のほとんどはそうじゃないしね。
>これは道徳的な見栄っ張りだ。
俺はそう思わないな。他の人との関係で俺が望むのは、尊敬と尊厳が俺側の取引の終わりにあるってことなんだよ。
>君はまだユーザーに敬意を払う義務がある。彼らに尊厳を与える義務がある。それって一体どういう意味?
ユーザーはコードが人間によって書かれたかAIによって書かれたかなんて気にしないよ。彼らが気にするのは、コードが必要なものを満たしてくれること、できればかなり気持ちよくね。
言いたいことは分かるけど、AIツールって良い仕事より駄作量産とかに役立つタイプだと思う。IntelliSenseと違って代わりに考えてくれないし、プロンプトと生成物の対応が曖昧だから逆に手間取るんだ。形式仕様書からコード作ってくれたらいいけど、現状じゃツールとして信頼できないよ。でも使える用途もある。翻訳とか文法チェックとかね。ただ、大きいモデルじゃなくても十分だと思うんだ。業界はAGIを売ったけど、実際は賢いツール程度なのに、シンギュラリティ近いって錯覚維持に金使いまくってるって感じ。
そうそう、それにこれってプログラミングだけじゃなくて、もっと広い問題になってるんだよってリマインダーね。
>一方で、AIは単なるもう一つの抽象化だと主張する人もいるかもしれない。
ライブラリの抽象化のユーザーとしての俺はさ、明確に定義された境界とインターフェースの契約を得るんだよ — さらに、他の人によってさんざんテストされてきたっていう保証もね。その契約を守ってくれるってかなり確信できるから、自分で詳細を知る必要がなくなるし、作者の意図を推測し直す必要もなくなるんだ。
これ、泣けたわ。
でも君 — 最高に疲れ果てて、寝不足で、アライグマみたいな目の状態で — 君は挑戦できるんだ。抽象化の層を凝視して、それらを見抜くことができる。素晴らしく人間工学に基づいた、型安全で、純粋で、遅延評価で、不変なシンタックスシュガーを剥がして、コンパイラが吐き出すアセンブリのぐちゃぐちゃを想像できるんだ。
マジかよ!
LLMが出るずっと前から、人間の書いたコードがどれだけ生き残るかなって想像してたんだ。進化を生き延びたDNAみたいにね。たぶん、すごい少ない割合だろうな。AIみたいな自動補完産業化っていうトレンドは、建築的に頑丈な基盤じゃなくて、コードの掘っ立て小屋を作るのを速くしてるだけだよ。Copilotzのせいでコードの生存率は下がってる。でも、こんな粗悪な解決策を速く作ることで、何か本当にすごいものが生まれる可能性って上がるのかな?
追伸:あのブログ記事には”it’s”が”its”であるべきところが多すぎて、AI生成じゃないのがわかるね。あれは一種の皮肉だと思うな、だってAIが得意なはずのトリッキーな英語構文なのに。もしかしたら筆者は皮肉な比喩を考えるのにAIを使ったのかもしれないね。AIの皮肉な意味でAutocompleteで始まるものをChatGPTに聞いてみたよ
>マシンはリアルだ。シリコンはリアルだ。DRAM、L1、偽共有、コインを弾くブランチ予測器—それは全てリアルだ。そして、もし君が気にかけるなら、それと取り組める。
これはここしばらくで一番美しい文章の一つだね。
同感だよ。筆者は Dave Barryみたいに書くね。何度も吹き出しちゃった。
co-pilotについて僕が思ってることを、ユーモアたっぷりに的確に表現してくれてた。
こういう議論で一番見落とされがちなのは、「コードを書く」っていうのは最終成果物だってこと。そこにたどり着くまでの、無限のトレードオフのプロセスを考慮に入れてないんだ。
ちょっと複雑なコードベースでジュニアと一緒に機能実装してみれば、経験豊富な開発者が無意識にやってるトレードオフ全部に気づくはずさ。AIにもトレードオフの概念は少しあるけど、それはほとんど観察によるものだね。AIはコードを書くのを「助ける」ことは確かだよ。キーワードはまさに—「助ける」—だ。
でも考えるのは人間の仕事なんだ。LLMは「考え」られない。「AIに望む出力を作らせる方法を考える」のも君の仕事だよ。モデルが良くなれば、君はどんどん考えなくなるだろうけどね。
これ、すごい共感できるよ、copilotのメリットもデメリットもね。でも、若い子やハッカーが職人だったとしても、エンジニアはいつもただのエンジニアだったと思うんだ。今日の基礎となる技術を作るために彼らが解決しなきゃいけなかった驚くべき技術課題は、それらを解決する必要があったからこそ存在するんだよ。それだけを見て「昔はこうだった」って言うのは生存者バイアスだね。
20+年以上、大変なやり方でソフトウェアエンジニアをやってきた者として言わせてもらうと、難しい問題がたまらなく好きなんだ。頭を悩ませるランダムな中間課題がないと、CRUDアプリの更新なんて耐えられないよ。珍しい再帰アルゴリズムとか、大学で実際に習った秘伝の知識を使うこととか、実際にbig-o見積もりをやることとか。こういうのが僕のキャリアの宝石で、正気を保っていられるんだ。
AIが出す答えが時々正しくて時々ひどく間違ってることを考えると、次の世代のAI頼りのSWEたちは、これらのことをもっと感謝してくれるといいな。
AIがハルシネーションしたり、状況のコンテキストがコンテキストウィンドウを超えたりしたときに、何をするべきか実際に知ってる誰かが、こういう課題には常に必要になるんだから。
僕にとって記事の核心はこれだね:
”私たちは、この現在の肥大化し、遅く、過度に抽象化された地獄絵図をソフトウェアの頂点として崇拝し—そして、システムから最後の1滴まで性能を絞り出すとか、リーンで野生的で精密な何かを構築するという考えは、もはや昔話のように聞こえるだろう。”
これは、LLMの訓練に使う新しいコードのほとんどがAI生成になる「イベントホライズン」を超えたら、2023年以前のライブラリやパターンが石のように固まってしまうという僕の懸念と少し一致するんだ。私たちは革新しておらず、過去30年間のめちゃくちゃな依存関係スタックとひどいその場しのぎの解決策を永遠に強化することになるだろうね。Javascriptは永遠に生き続けるぞ。
もっとコメントを表示(1)
A.I.の偽物の知能と僕たち人間の違いは、Oscar Wildeのこの一つの引用に集約されると思うな:
”私は一日の大半をコンマを入れるのに費やし、残りの時間をそれを取り出すのに費やした。”
どんなA.I.もコンマについて一ミリ秒以上考えることはないだろうね、A.I.にとっては純粋なデータ検索だから。「この単語の後ろにコンマがあるテキストは何パーセント、ないのは何パーセント? オッケー、終わり。」って感じ。
これ、身にしみて感じるよ。毎日リーダーシップから「AIをもっと使え」って言われたり、「AIを使うんだから見積もりを半分にしろ」って言われたり、誰かが導入率のKPIを追ってて、うちのチームがAIツールを十分に導入しないとクビになって、導入してるチームに人員を回されるって言われたり。まるで世界が狂っちまったみたいだよ。
AIはいつも「あいつの仕事を奪うツールだ」って宣伝されてるけど、実際には「あいつの仕事」を理解してないから、うまくいってるように見えるだけなんだ。
マネジメントはAIっていう金槌を持って、何でも釘かどうか叩いてみてる状態だよ。
まあ、十分大きなハンマーを持っていれば、確かに何でも釘になるさ。
君が抵抗する代わりに、多くの人が言ってるような結果が出ないのはなぜか、もっと真剣に考えるべきだって思ったことある?もし過去2年間で君の生産性が何も変わってないなら、問題はおそらく君だよ。多くの人が「人生を変えるツールだ」って言ってるのに、何が間違ってるのかエンジニアとして見つけ出すのが君の責任だと思わない?それとも、みんな嘘をついてて、君は全部正しくやってると思い込んでるの?
言いたくなかったけど、不人気な意見かもしれないけど、これはかなり厳しい真実だと思うよ。
ちょっとキツい言い方だけど、もしLLMsで生産性がすっごく上がったってんなら、それはLLMsの力より、あんたの元々の生産性の低さを示してると思うぜ.
経営層はAIってハンマー持ってて、何でも釘に見立てて叩いてるんだよ.
マジで経営層を減らして、ちゃんと仕事する業務に戻れる方法を見つけるべきだと思うね.
ありそうなのはどっち?
A)何兆円もインフラ投資して、ユーザー増やして、企業がLLM導入しまくってる.──この人たちが間違ってる
B)hackernewsでLLM効果ないって喚いてるヤツら.自分のワークフローとか見せないのに.──この人たちが間違ってる
悪いけどBだね、お前らがただヘタクソなだけだよ.
チームの調整、利害関係者や顧客との会話(彼らに時間をかけることも含む)、ある程度のレベルで個々の貢献者を管理することとか….これってどんな規模の会社でも無視できない仕事なんだよ.これを(たくさん)避ける唯一の方法は、すごく小さくやることだけど、それにはそれで別の問題があるしね.
正直、何百万もの”ただの人”がテック企業から製品買ってるってのは、基本的にナンセンスだって証拠だよ、俺の狭い考えではね.デベロッパーとして、彼らが大量に買ってて、実際に自分にすっげー影響あったものって、今まで何かあった?
copilotとopenaiで俺の開発ワークプロセス全部変わったぜ.もしあんたにとってそうじゃないなら、もう取り残されてるってことだよ.それだけ simple な話さ.俺のチームでは既にQA担当2人分を不要にしたし…これからもっと増えるだろうね.
そうだな、経営層をAIに置き換えるのって、どれくらい難しいかね?たぶん開発者はAIを使って、実際の人間っていう余計なコストなしで、会社の他のタスクも再現できるんじゃない?
みんなこういうこと(LLM懐疑論)を言い続けるけど、悪いね、それはナンセンスだ.俺が一番尊敬してる同僚たちの多くは、LLMツールからすごく、そしてどんどん恩恵を受けてるんだよ.
LLMツールは役立つよ.少なくとも一年は毎日使ってる.特定のタスクではたぶん10~20%生産性が上がったかな(これって結構良い!).でも、みんなが言ってる10倍とか2倍のブーストには全然届かないね.もしLLMSが本当に開発者を10倍にしてるんなら、業界で大きな変化が見られてるはず.90%リストラか、製品速度10倍かどっちかだろ.
確かにね、でもそれ全部やるのに本当に4階層も人が必要か?大きくなった会社では、何層もの経営層を見るのって本当によくあることだよ.
へー、製品について、実際に利害関係がある人じゃなくて、おべっか使うチャットボットと議論するのかー、楽しみだなー(皮肉)。経営陣ってクソなことが多いけど、人間とはまだ話が通じるし。悲しいことに、製品の担当者だけが何を求めてるか知ってるんだよね、だいたい彼らが前は求めてた通りのものを君が作り終わったその時に限ってさ(笑)。
まるで、blockchainに何兆もつぎ込んだけどインターネットを革新したのと同じだね。あっと驚くようなICOs、何百万ドルもするNFTs、そしてcryptocurrency価格高騰。それが間違いなく俺たちの日常生活での価値を証明してるよね(これも皮肉)。
もしblockchainが比較できるアナロジーで、同じタイムラインだと思ってるなら、桁違いに間違ってるよ。実際の数字で言うと、AIはadoptionとmarket valueの両方でbitcoinよりも既に大きいんだ。だから、君が言ってるつもりのことが、本当に君が言いたいことなのかどうか、よくわかんないな。
ハイプトレイン初めて?VCやsilicon valleyのfundingはactual valueと完全にdivorcedしてる事が多くて、reliable signal on qualityとして最後に見る場所の一つだよ。Regardless、I’m sure it’s a little of A and a little of B、plus some of C) yappers on Hackernews who think that the majority of the work of software engineering is writing code、and who generally write code in sufficiently simple contexts for the LLMs to produce something equivalent to their normal output。
多くの人が言ってるような結果が得られないのはなぜ?って質問についてだけど、俺の意見では、問題はその結果ってのがrealityに基づかないhyped up linkedIn postsだったりする場合に起こるんだと思う。AIはboonだけど、executivesから聞くようなIDEs are a thing of the past、youre all prompt engineers now、みたいな期待には応えてないね。
Unions。他にwayがある?
AIは常に他の人の仕事をreplaceするtoolとしてtoutedされてる。でもrealityではそれはyou don’t understand the other guy’s jobだからうまくやってるようにonly appears to do a good jobなんだ、って意見、これはenough of us admitしないけどwell considered pointだよ。Yes many jobs are rote or repetitiveだけど、many more jobs、of all flavors、done well have subtleties that will be lost when things are automated。And no I do not think that some 80% done by AI is good enough because errors propagate through a system (even if that system is a company or society)、AND the people evaluating that good enoughはnot necessarily going to be those experienced in that same domainなんだ。
I feel this in my bones。Every day I’m getting challenged by leadership that we’re not using AI enough、told that I should halve my estimates because we’ll use AI、and being told that there’s a new AI tool that I have to adopt because someone is tracking KPIs related to adoption and if our team doesn’t adopt enough AI tools we’re going to be fired to give more headcount to those that do。This–all of this–seems exactly antithetical to computing/development/design/engineering/architecture/whatever-the-hell people call this profession as I understood it。Typically、I labored under the delusion that competent technical decision makers would integrate tooling or choose to use a language、service、platform、whatever、if they saw benefits and if they could make a case for why something was the correct approach、i.e how it met some product’s needs、addressed some shortcomings、made things more efficient。Like here’s my design doc、I chose $THING for caching for $REASON and $DATASTORE as it offers blah blahPlease provide feedback and questions。This is totally alien to that approach。Ideally、hey we’re going to use CoPilot/other LLM thingy、let us know if it aids your workflow、give us some report in a month and we’ll go from there to determine if we want to keep paying for it。
Yeah、definitely A、same reason why all banking is done exclusively on the blockchain now and NFTs are the only way to get music
テック業界全体が流行に流されて何度も高くつく間違いをしてきたことを考えると、おまえが最初に挙げた選択肢は、思ってるよりたちが悪いと思うよ。こういう状況で大衆受けするものが正しいことなんてめったにないからね。
でもさ、マネジメントこそすぐになくなるやつだよ。次の一撃が来るんだ、兄弟、約束するよ。強くいろよ。
ああ、つまり、これは単なる今のハイプサイクルの段階だよな。落ち着くだろうさ。いくつかのツールや技術は残るけど、ほとんどは消える。どれが残るか見極めて、他の人に影響を与えられれば、いい感じになるだろうね。
LLMsがあなたのプロセス全体をどう変えたか、詳しい例を教えてくれない? 僕の経験とは違うんだ。なんでか本当に知りたい。もっと効率的になりたいんだよね。
明らかに答えは、そいつらをAIに置き換えることだろ。
同意だよ。一番騒がしいのは、「みんなを100倍生産的にするぞ!」って言ってる奴と、「クソだ、みんなの生産性を下げる!」って言ってる奴。でも退屈な真実は、その極端な間のどこかにあるんだよ。
俺はAIコパイロットを海外の請負業者と比較する。AIの方がZoomやSlackなしで細かい疑問をすぐに解決できて、コミュニケーションの無駄がないから断然いい経験だ。AIとJira Ticketsで簡単に連携できれば、エンジニアはチケット作成と監視役がメインになるだろう。とはいえ、まともなチケットを書けたり、全体を理解して間違いを防げるエンジニアはまだ必要だけどね。
この筆者、絶対C++プログラマーじゃん。気づいてたんだけど、AIツールってC++は他の言語、特にスクリプト言語より苦手だよね。うまく使ってる人見ると、いつもスクリプト言語でCRUDアプリ作ってるんだよな。
もっとコメントを表示(2)
他の投稿見るとゲーム開発者っぽいね。CRUDアプリみたいに、LLMが学習できるオンライン情報が少ないからかもね。
昔こういう同僚いたわ。最初は真面目にやろうとしてたのに、だんだん諦めちゃったんだよね。サボりじゃなくて、頑張っても意味ないって感じたから。Copilotは定型コードには便利。でも頼りすぎると自分で考えなくなる。考えなくなったら成長もストップ。これがマジでヤバいところ。
要は、常にテレスコープできる能力だと思うんだよね。コーディングエージェントで大枠はAIに任せつつ、必要な時はいつでもコードの詳細に入って修正したり理解したりできる、みたいな。
マジ言いにくいんだけど、上司とか技術知らない人は、コードの質より「動くか」だけ気にするんだよね。AIって、多少ヤバくてもとりあえず動くコード作るの結構得意なの。だから上はAI推す。生産性上がらないって言うのは、綺麗なコードへのこだわりが強すぎるせいかも。ちょっと妥協すればAIで爆速化できるよ。でも、めちゃくちゃにならないためには、 competent な人が必要だけどね。
綺麗なコードはまあ良い。動くコードは絶対必要。お前、ポイント分かってねーな。AIの出すクソコードは、綺麗じゃないだけじゃなく、動くかってとこでもダメなんだよ。
エンタープライズ企業で働いてるんだけど、最近 cursor 使えるようになったんだ(前は Copilot)。マジで、ほぼ全部 AI だけで作ったサービス立ち上げて、今デプロイされててお客さん使ってるよ。AI は competent な人が使えばちゃんと機能する。AI がいつも動かないコードばっか吐き出すとか言うのはもう古い。そうしないと仕事なくなるよ。これは逃げられない現実。まあ、どっちにしろ仕事なくなるかも、って話だけどさ。
上層部は”生産性”のためにAIツール使えって言ってくるけど、そのせいで本番環境でバグ出ても、原因分からずに文句言うだけだろうね。
そういう snobism は何年も前にやめたんだ。「動くか」って考え方だけ。でもなぜか、AI使っても劇的に変わった感じしないんだよね。理由は、複雑になるとすぐ破綻するから。太陽出てる時だけ動くような、AIのゴミコードなんか信頼できない。単発タスクにはいいけど、複雑なことは自分で書いた方が絶対早いよ。
AIが生産性を上げないって言う人がいるけど、それって長年の訓練で「クリーン」なコードを書きたいって気持ちとか、コードレビューのせいが大きいと思うな。機械はアプリが遅くても落ちても怒らないけど、人間は違う。機械が作ったコードに「クリーン」さはほとんど関係ないんだよ。
ここで「AIコードは全部ゴミ」って言ってる人、ほとんどが最新モデルちゃんと使ってないか、良い指示出してないんじゃない?もちろん完璧じゃないし、手直しは必要だよ。でも、使い方を知ってて、ちゃんとしたツールと指示があれば、良いコードは書ける。人間より良いコードを速く書く時だってあるんだから。
彼らは根っこの原因をAIのせいにしないよ。あなたのせいにする。だから、生成されたものを理解できるくらい有能じゃないとダメって言ったんだ。そうじゃないなら、できる人を探すだろうね。これには二つの道はない。AIはここに残り続けるよ。
うん、同意。Cursorみたいなツールの力はすごいけど、今すぐAIだけでソフトを全部作れるとは思わないな。ソフトの仕組みを知ってて、生成されたものを理解・デバッグできる人は絶対必要。来年は違うかもだけど、今はスキルのある人がAIを使いこなすのが一番良い感じだよ。
AIコードが常にダメとか遅いとか言うデタメは真実じゃない。まだそんなこと言ってる人はAIをちゃんと使ってないはず。
常に最高じゃないしダメな時もあるけど、妥当なパフォーマンスで、時に人が書くより速く、要求を満たすコードを生成できる!手直しは必要だけど、前よりずっと速いんだ。
>AI does work with competent people behind the wheel
それはコードレビュー全部する超ジュニアなデベロッパーも同じだよ。(ただ、ジュニアは学べるけど、AIモデルは実際には学べない。大企業がゼロから再訓練するしかない)
AIはジュニアより速く安くやってくれるし、それが会社が気にするポイントだよ。それに、どっちにしろコードレビューはすべきだしね。実際、AIを使う場合は前よりもっとレビューすべきだよ。
Cursorはうちの職場でデータベースのことで何度も間違えたよ。MySQLの動きを理解してなくて、ひどいインデックス推奨。
それが間違いって、正しい答え知ってないと分からない。だって、推奨されたものが動くには動くから。ただ最適じゃないだけ。コンピュータ速いから人は「動いたからOK」って思いがち。後で半端な解決策が問題起こすのに。
うん。でも私が書いたこととは意見は違わないよね。
これらのツールが便利だけど、確定的に便利じゃないっていう事実が、多くの頭を混乱させてると思うな。
>AIはジュニアより速く安く
それは短期間の話。AIはスタッフ開発者にならない。レビューをシニアに押し付けるのは責任とワークロードを移すだけで、開発サイクルが遅くなるよ。AIは変更理由を説明できないけど、ジュニアはできるって違いも大きいね。