ハクソク

世界を動かす技術を、日本語で。

AIに対する過剰な誇張に惑わされないでください

概要

  • AIの進化により、プログラミングの在り方が根本的に変化
  • **LLM(大規模言語モデル)**が中規模プロジェクトも自動化可能なレベルに到達
  • 個人の創造性・楽しさはAI時代でも失われない
  • 雇用・社会構造の変化への懸念と民主化の必要性
  • AI活用の重要性と、現状を受け入れ前向きに適応する姿勢の提案

AI時代におけるプログラミングの変化と心構え

  • ソフトウェア開発を愛し、行単位で丁寧に書くことに情熱を注いできた人生
  • 人間らしさ最小限主義を重視したソフトウェア作り
  • 社会的弱者への配慮や、経済システムの変革・富の再分配への期待
  • AIの経済的支配には否定的だが、現実としてAIがプログラミングを変革する事実を直視
  • 2020年に退職し、AI・ユニバーサルベーシックインカム・自動化社会をテーマに小説執筆
  • 2024年末にYouTubeチャンネル開設、AIとコーディング・社会経済的影響を発信

LLMによるプログラミング実例

  • 最先端LLMが、適切な指示があれば中規模プロジェクトをほぼ自動で完成
  • プログラミング分野問題の伝え方次第で成果が大きく変化
  • 自分でコードを書く意義は「楽しさ」以外では減少
  • AI活用で短期間に実現できた4つの事例
    • linenoiseライブラリのUTF-8対応と高度なテストフレームワーク構築
    • Redisテストの一時的な失敗修正(TCPデッドロック等の難題をAIが解決)
    • BERT系埋め込みモデル推論用Cライブラリの高速生成(700行、PyTorchと同等性能)
    • Redis Streams内部構造の設計書をAIに渡し、20分で再現
  • AIによるコーディングの現実:もはや自分で書く必要はほとんどない
  • **「何を作るか」「どう作るか」**の設計・発想がより重要に

AIの民主化と社会的懸念

  • オープンソースの力をAI時代にも重視
  • AI技術の集中(中央集権化)への強い懸念
  • 中国発のオープンモデルなど、多様な競争が進行中
  • 現状ではAIの民主化は一定程度進んでいるが、将来は不透明
  • **最先端AIの「魔法」**は限定的で、他の研究機関も追いつく可能性大

プログラマーとしての今後と社会的責任

  • オープンソース活動への意欲増大
  • AIを自身のワークフロー(例:Redis、Vector Sets、Streams)に積極活用
  • 雇用喪失の懸念と、企業が人員削減に動く可能性
  • 他分野でも人間の代替が進行する不安
  • 社会的解決策として、AI時代に適応した政府・政策への投票を提案
  • 科学の進歩や人類の苦しみ軽減というAIのポジティブな側面にも期待

AI時代のキャリアと楽しさ

  • 現実を拒否せず、AIを試すことの重要性を強調
  • 短時間のテストではなく、数週間かけて本気でAIツールを活用することを推奨
  • **AIで自分を「増幅」**する努力のすすめ
  • コーディングの情熱や楽しさはAI時代でも失われない
  • AIを使いこなせば、より多く・より良いものを創造できる時代

Hackerたちの意見

> プログラマーとして、今こそオープンソースをもっと書きたいと思ってる。でも、自分のコードがLLMモデルのトレーニングに使われるって知るだけで、オープンソースの貢献が盗まれちゃうんじゃないかって、前より強く感じてる。これって変な気持ちかな?他に同じように心配してる人いる?
そんなに心配してないよ。FOSSプロジェクトには今も貢献してるし、使ってもいる。貢献する時は、自分に影響がある何かを直すことが多いし、それがそのソフトウェアのユーザー、つまり自分にも良い影響を与えるからね。
Tailwindのケースはもっと複雑だと思うけど、そうだね - 公共の利益に貢献したいけど、その価値がAI企業や株主に不均等に行くのが怖いって気持ちは理解できる。
私も似たような気持ちだけど、理由は違う。自分のコードをGPLの下で公開してるんだけど、今は間接的にGPLに基づかない製品の構築に使われてる。それは私が望んでたことじゃない。GPLにはAIに特化した条項がなかったのは知ってるし、この特定のケースについてはまだ結論が出てないけど(人間が同じことをするのとどれくらい似てるのか?)、もし今作られてたら、この使用をカバーする条項があっただろうなって想像してる。個人的には、ライセンスの精神に反してると思う。
ここでのテイルウィンドの言及が理解できない。意味がわからないよ。テイルウィンドのLLMの問題はオープンソースとは関係なくて、彼らが広告を使って唯一の製品に誘導する出版社と同じビジネスモデルを持っていたからだよ。
オープンソースに手を出したのは、まさに自分のコードを配布して共有したかったからだから、その考え方が理解できない。つまり、どこかで自分の善意が盗まれたと感じたことは一度もない。コードを書いて、注意書きなしで公開する人もいるし、オープンソースにライセンス戦士として飛び込む人もいる。でも、私は違う。ただコードを書いて共有するだけ。もしあなたが人間なら素晴らしい。機械ならそれでもいいけど、ライセンスのことで一日中椅子取りゲームをしたくはないし、誰かが私より賢く使って利益を上げることに特に気を使わない。
> 「あまり書きたくないけど、LLMモデルが私のコードでトレーニングされるって知ってるだけで、オープンソースの貢献が盗まれるんじゃないかって強く感じてる。これを感じるのは間違ってるのかな?他に心配してる人いる?」間違ってるとは思わないけど、方向性が違うかもね。誰かがあなたのオープンソースの貢献を「盗む」ってどういうことだと思う?僕はずっと自分のコードを「オープンソース」として公開してきたけど、一度も誰かに「盗まれた」ことはない。それは数十年前に初めて公開した同じウェブページに今もあるしね。確かに、ずっと前からLLMに取り込まれていることは保証されているけど、まだそこにあって無料で提供されているものを「盗まれた」とは思わない。誰かが自分のオープンソースコードを「盗まれた」と感じる理由がわからない。最初から誰でもどんな目的でも使えるようにするのが意図だったんじゃないの?それが少なくとも僕がコードをオープンソースとして公開する理由だよ。
君が「間違っている」とは思わないけど、僕はこの件については違う考えを持っている。僕はたくさんのオープンソースコードを書いてきたけど、人々がそれをどう使おうが気にしたことはない。「良い」使い方でも「悪い」使い方でもね。僕が望むのは、自分のコードが「役に立つ」ことだけ。自分が同意する人だけでなく、コンピュータを使う必要がある誰にでも。もちろん、貧しい人を助けるために僕のコードを使ってほしいけど、武器を作るよりは好みの問題だよね。僕の信念は、僕のコードは僕から解放されて、個人の好みを超えてみんなが使えるように共有されることだと思ってる。誰かがそれを使って自分を豊かにするために使ったとしても、僕のコードが「盗まれた」とは思わないよ。
じゃあ、最初からオープンソースにする意味って何なの? 全てのポイントは、誰でも使えるようにすることだし、みんなでプロジェクトを公開して協力することだよね。もし私が何かをオープンソースにしたら、君はそれを使って好きなだけLLMをトレーニングできるよ。私のオープンソースの仕事が君に役立ってるのは嬉しいな。
オープンソースの一般的な意図は、人々や彼らが使うAIツールがOSSコードを再利用したり、再結合したりすることを許可することだよ。それが嫌なら、自分の作品をオープンソースにしない方がいい。もしあなたがそれを与えて「好きにしていいよ」って言ったら、それは盗みじゃないよ。MITライセンスのようなライセンスがよく言われるのはそのため。特定の使用方法(例えば、コードをLLMに与えること)を防ぐのは非常に難しいし、他の有効な使用方法も防いじゃうことになる。antirezとRedisが使っているAGPLv3は、個人的にはやりすぎだと思うし、まだうまく機能していない。人々(やツール)がコードを「見る」ことを禁じているわけじゃないから、AIのトレーニングにはそれが該当するかもしれない。そのライセンスは企業の法務部門に多くの頭痛を引き起こすよ。だから、私はValkeyに切り替えたんだ。自分の貢献にはMITスタイルのライセンスを使うのが好きなのは、人々やAIの使用を制限したくないから。もし私の作品が役に立つなら、どんどん使ってね。それが無料で提供している理由だよ。これはオープンソース開発者の元々の目標とも一致していると思う。他の人が弁護士を心配せずに自分のものを使えるようにしたかったんだ。まあ、AIの進歩はこれらのことでは止まらないよ。antirezが言うように、それは今や私たちの生活の一部で、面白い問題を解決したいなら大きな助けになる。彼はそれに興味があるみたいだね。彼の言ってることには共感できる部分が多いよ。AIツールを使って、ますます大きな問題を解決できるようになった。去年は可能性がかなり進化したね。 > これを感じるのは間違ってる?あなたの感情はあなたのものだと思う。でも、自分の理由をもう少し批判的に考えてみた方がいいかも。盗みや窃盗といった言葉は大きな言葉だし、あなたの主張はかなり弱いと思う。自分でコーディングしているとき、巨人の肩に立っているわけじゃないの?それは盗みじゃないの?
> これを感じるのは間違ってるのかな?感情が無効になる理由って何?人生は一度きりだし、クリーンなトレーニング素材を作る義務なんてないし、これについて悪く思う必要もないよね。
“反AUのハイプ”って言葉は、今起こってることを単純化しすぎてると思う。技術的には、まだ少し荒削りだけど、すごく役立つし、なくなることはないと思う。そこにあまり異論はないかな。心配なのは主にビジネス面で、技術が役立つ一方で、今の状況を経済的に支える明確な道がないってこと。便利な機能が揃ってるけど、それを支えるだけの収益を生む製品がない。だから、技術は残るけど、スタートアップやビジネスモデルが崩壊する可能性があるってこと。後者は本当に“反AIのハイプ”じゃなくて、実際に投資されたお金やコミットメントを支える証拠やデータがあまりないって現実を指摘してるだけ。テクノロジーやビジネスのシーンに長くいると、そういう映画は見たことがあるし、次に何が起こるかも知ってる。5年後には今よりAIをもっと使ってると思うけど、ほとんどのAI企業やスタートアップはもう存在しないだろうね。
ブログのタイトルはAIのハイプについてのジョークだよ。
2000年代後半、ネットでお金を払う人なんていないっていうのがよく言われてたよね。ビジネスや人々が何にお金を払うか理解するまで、文化的にはまだ時間がかかると思う。例えば、大企業が開発者一人あたりxxxx-xxxxxx円払ってるのに、AIツールには年間xxx円しか払う気がないって、なんかバランスが悪いよね。
人々は同じことを言ってたよね(記憶からの数字だから、ちょっと違うかもだけど): - GoogleがYouTubeに10億ドル払ったとき - FacebookがInstagramに10億ドル払ったとき - FacebookがWhatsAppに10億ドル払ったとき 同じことだよ。この3社は全然お金を稼いでなくて、稼ぐ道筋もないって言われてたし、払った金額はクレイジーで経済的な根拠から切り離されてるって。でも今振り返ると、それが素晴らしいビジネス判断に見えるね。
“AI列車に乗らないと置いていかれる”っていう話がよく分からないんだけど、早期採用者にはAIツールに対してどんな利点があるの?私の考えでは、仕事に合うレベルまでAIが良くなったら使い始めればいいと思ってる。それまでは、脳が退化しないように学び続けるつもり。
彼らの約束によれば、基本的に学ぶ必要がないくらい良くなるはず。だから、その時点まで待つのは合理的だよね。
エージェントと一緒に数ヶ月働いて、ようやく生産的になったよ。成果はかなり大きい。詳細な仕様書をMarkdownで書いて、エージェントの階層を指示してる(どのエージェントが何をするか、誰が誰に報告するか)。AIのおかげで今年はたくさんの新しいことを学んだ。確かに、低レベルのスキルは衰えていくけど、高レベルのスキルは成長するよ。学習速度は同じだけど、はるかに高い抽象レベルでの話だから、より多くのテーマをカバーできる。主な懸念は中央集権化だ。今のところ、この技術から得られる価値は収入を大きく上回ってる。AI企業がすべてのチップを買い占めてるのが心配。AIが収入の50%を占めるような状況になるんじゃないかと懸念してる。中央集権化には何が何でも立ち向かわなきゃ!
リリースから1ヶ月以内にCursorとClaude Codeを毎日使ってるよ。ほぼ毎日新しい使い方や応用法を学んでる。最高の開発者たちがこれらのツールを使っているのは偶然じゃないと思う。これらのツールを最大限に活用するにはコアスキルが必要だからね。正直、Claude Codeでエンドツーエンドの製品を作ることで、より良い開発者、プロダクトデザイナー、テスター、コードレビュアー、システムアーキテクト、プロジェクトマネージャー、システム管理者になったと言える。過去約1年で、キャリアの中で学んだことよりも多くを学んだよ。
AI開発は計画、オーケストレーション、高スループットの検証についてだ。そのスキルは消えないし、モデル出力の品質の底は時間とともに上がっていくだけだよ。
AIの周りにエコシステムが構築されているよね。ベストなプロンプトの使い方、MCP、スキル、IDEの統合、LLMが自分の出力をテストするためのフィードバックループの作り方、ブラウザ拡張で外の世界とつなぐ方法など…。今のところ、みんなまだすぐに追いつけると思うけど、2026年末には状況が変わっているかも。
僕の意見としては、LLMを使ったコーディングの基本を学ぶだけで80%のリターンが得られて、時間は約30分で済む。これは完全に簡単だよね。高度なマルチエージェントのワークフローを学ぶのは、もしかしたら追加の20%を得られるかもしれないけど、もっと時間がかかるし、時間とともに変わる可能性も高い。だから、あんまり良いROIじゃないかも。
AIエージェントに関連する現在の「ツール」に慣れる必要があるって言ってる人は、ホライズン効果の問題に苦しんでると思う。これらのものはしばらくの間、継続的に変わるから、進化すればするほど細かいことにこだわる必要がなくなる。でも、必要なスキルはコミュニケーション能力だよ。自分のプロジェクトにとって大事なことを速く、うまく表現できる必要がある。多くのプログラマーはコミュニケーションが得意じゃない。これは部分的には才能で、小さい頃から育まれるものだと思うし、これがプログラミングが得意な人を変えるかもしれない。良いコミュニケーターや探求者は、説明が苦手な強力なコーダーに対して優位性がないかもしれない。でも、結局は態度の問題だと思うし、練習も大事だよね。
私が思うに、アイデアを自然言語で伝えるループを経験し、その生成されたコードをフィードバックとして受け取ることが目的なんじゃないかな。全体的には、アイデアを考えてそれを実装してテストを実行するループとあまり変わらないと思うけど、ある人にとっては非常に混乱を招くかもしれないね。
これは結構一般的な意見だね。「取り残されることは心配しない - すぐに追いつけるから」って。私はそれが本当だとは思わない。私はコーディングエージェントやLLMから素晴らしい結果を引き出すのが得意なんだ。2022年11月30日のChatGPTリリース以来、ほぼ毎日LLMをコードに使ってる。それからもう3年以上経った。そんな中、他の開発者からは、この機械から何も役立つものが得られないとか、得られるものがせいぜい微々たるものだって不満が絶えない。これをうまく使うのは深いテーマで、いろんな方法で、いろんなプロジェクトに応用できる。最も大事なのは、何がうまくいくか、何がダメかの直感を育てること。その直感を得るには、数ヶ月、いや数年の個人的な実験が必要なんだと思う。数週間で追いつけるとは思えないし、多くの開発者が取り残されるリスクを真剣に受け止めていないと思う。antirezみたいな人がこのことを警告してくれて嬉しいけど、人気のある意見にはならないだろうけど、言うべきことだよね!
そうだね、ツールやワークフローが常に再発明されてるから「取り残される」ってのは難しいよね。ワークフローが安定して、数ヶ月ごとに進化しないまで、高い視点を持っているのが賢明だよ。「次のリリース」のカジュアルユーザーがあなたの能力を簡単に超えない時に、ワークフローをマスターすることを考えるべきだね。同様に、今は「十分良い」GenAIを作る競争の真っ最中だから、商業的な必要がない限り、何かをマスターする価値はないよ。これって、Palm Pilotのグラフィティ手書き認識を学ぶために真剣に努力していた時代を思い出させるね。結局、そのスキルは自分が習得する前に無駄になっちゃったんだ。
それに騙されないようにしてるけど、AIにコードを書かせると、私の場合はほとんど失敗するんだよね。みんなは何でもできるって言うけど、重大な問題を見つけ続けてる。たとえ動くものを書いたとしても、2026年にはスマートポインタ(C++)を使うべきだとか、現代の技術について説明できないことが多い。
同じく。AIに簡単なことをやらせるのは、あまり成功してないな。試したAIはみんな存在しないAPIを作り出して、最終的には「Aを試してみて」って言われて、うまくいかないと「Bを試して」って。またダメなら「Cを試して」って。うーん、すみません、またAを試してみて。これの繰り返し。
AIコーディングツールが手動コーディングを取って代わる影響をどう測るの? GitHubプロジェクトの数が増えるのかな? スターの数(AIがすごいから)? スタートアップのIPOの数(もしエンジニアがClaude Codeのおかげで1000倍のエンジニアになったら、投資するためのGoogleやAmazonがたくさんできるよね)? ソフトウェアの価格(もしコードをサクッと書けるなら、MS Windowsの完全互換の10ドルの代替品が数ヶ月で出るってこと?)? ストアに公開されるアプリの数?
プロットツイスト:開発の力を倍増させるときのボトルネックは__マーケティング__だよ。10倍の速度で開発しても、マーケティングをしなきゃいけない。マーケティングされていない製品は、たとえ素晴らしくても存在しないのと同じ。GitHubのスター?それは100%マーケティングだよ。低品質の基準をクリアしたものが、うまくマーケティングされるだけでスターをたくさん獲得できる。スタートアップの数?それも100%マーケティング。投資家はトラクションのある製品や、印象的に見える創業者にお金を投資するけど、それもほとんどマーケティングだよ。実際、人々はSaaSを使うよりもコーディングを楽しんでいるけど、それは本当のこと。君の例は誇張されてるけど、TailwindのシナリオはAIが製品に圧力をかけている一例に過ぎない。
自分の手作りのプロダクトハントデータを見てたんだけど、今週は5日間で5000件のプロジェクトが提出されたよ。2018年の1ヶ月分より多いんだ。
> AIコーディングツールが手動コーディングを引き継ぐ影響をどう測る?「AI生成プロジェクトはどこ?」と聞く代わりに、「AI生成ポートはどこ?」という簡単な問題を考えた方がいい。完全に具体的な仕様と既存のテストスイートを使って、巨大で古くて人気のあるプロジェクトの機能が完全なポートを出力するのは、なぜまだ難しいの?こういうのはトレーニングセットにもたくさん含まれてるはずだから、まだ簡単じゃないってことは何か意味があるはず。クラウドによれば、WordPressは今でもインターネット上の全ウェブサイトの43%を占めてるし、PHPは多くの人に長年嫌われてきた。なぜPythonやRubyのポータージュはないの?もっと難しいけど似たようなこと、DrupalやMediaWikiも入れて、LinuxカーネルをRustに自動でポートできるのはいつになるのか、考えてみて。
「見て、手を使わないで」っていうハイプに乗っかるなよ。Antirez + LLM + CFO = 十億ドルのRedis企業、十分にあり得る。でも… AntirezにとってのLLMの影響は、Redisの外で(彼がすでに詳しい問題領域の外で)同じくらい複雑なコードベースで試すことに例えられる。賭けるけど… AntirezがRedisとLLMでできること(確かに役立つし、Antirezにとっては大きな生活の質の向上)は、(例えば)Postgresでは全くできないと思う。Postgresでそこに到達する唯一の方法は、Postgresを「知っている」ことだよ。どんなに優秀でも、コードを読むだけではそこにはたどり着けない。少なくともソフトウェアに関しては、深く意味のある方法でそのものに触れて、メンタルモデルを構築する必要がある。ほとんどの我々のような日々の仕事をしている人たちは、そういう状況にいる… 汚れたレガシーの数十万行のコードの中で働き、NPMの脆弱性だらけで、QAにコードを渡して(QAがあるとして)、基本的に実際の顧客に対して開発しているんだ。要するに「出荷して学ぶ」ってやつだね。LLMは本当に面白い技術だと思うけど、非専門家にはあまり役に立たない。組織がLLM技術のフルコストから利益を得たいなら、スタッフのトレーニングと開発にもしっかり投資しないとね。
その通り。AIは、十分な時間があれば自分でコーディングできたものをコーディングするのにはほとんど役に立たない。特定のコードベースや特定のタスクに関する一般的な学習に時間を明示的に投資しない限りね。AIを「ただのオートコンプリート」と呼ぶのはほぼ侮辱的だけど、実際にはそうなんだ。A) 自分が何を望んでいるのかの良いメンタルイメージを持っている必要があるし、B) 正しい出力を見たときにそれを認識する必要がある。余談だけど、正しい出力を特定できないことが、私はLLMを使って真剣なことを学ぶのをお勧めしない理由でもある。検索エンジンを使って何かを学ぶとき、情報の密度や論理的一貫性、構造化された思考の明確さ、合意、レビュー、著者の資格など、さまざまな信号を通じて本当に良い教育法に出会ったときが分かる。でも、LLMを使うと、こうした重要な分析の信号を失ってしまうんだ。
リーナスみたいに上の方にいるなら、バイブコーディングは普通の開発者よりもフィードバックが多いと思う。だから、ポジティブなフィードバックループができてるんだよね。でも、ほとんどの人にとってはバイブコーディングは全くの無駄。私たちのソフトウェアはそのまま放置されて、ビューも増えないし、早く作っても意味がない。実際、誰かのエグゼクティブがこれを見て、私たちが4日かかるところを2日でやった人を見て、低パフォーマンスで叱責されるんじゃないかって怖くなるだけ。
信じ続けて。最後までね。そんな人間のクソみたいなコードベースにAIのクソみたいな追加が同じくらい上手くいくよ。ちゃんとテストを追加すれば、そのコードは前のゴミよりも良くなるかもしれない。
> どんなに優れた人でも、コードを読むだけではそこにたどり着けないよ。少なくともソフトウェアに関しては、実際に触ってみて深く意味のある方法でそのもののメンタルモデルを作る必要がある。LLMもその部分を助けてくれる。Antirezが言うように、「コードを書く必要はほとんどなくなった」。今は何をすべきか、どうやってやるかを理解する方がずっと面白いし(この後者の部分についても、LLMは素晴らしいパートナーだよ)。
そうだね、大抵のCレベルの役員(取締役会に報告しなきゃいけないことが多い)は、クラウドコードを使った後に未来を予測する傾向がある。2025年には実現してないのに、まだ彼らは主張し続けてる。彼らのシニアエンジニアは、まだプロダクションコードに取り組んでるのにね。
> 「正しいことが何かを信じていても、今起こっていることを拒否してもコントロールできないよ。AIをスキップすることは、自分やキャリアにとって助けにはならない。考えてみて。これらの新しいツールを、慎重に、数週間かけてテストしてみて。5分のテストで自分の信念を強化するだけじゃなくてね。これは、最近友達や同僚にもアドバイスしてることなんだ。ハイプを忘れて、たまにはテストする時間を取ってみて。現状を見極めて、来るべきことに備えよう。もう一つ考慮すべきことがある。もし軽い気持ちでただ読むだけなら、2025年には「主流」の場所で読んだほとんどのことが間違っていることに気をつけて。これをカバーしている人たち、書いている人たち、コンテンツを作っている人たちは、この時代で異なる目標を持っている。彼らはヒット、いいね、シェア、リーチが必要なんだ。正確な報道ではそれを得られない。悲しいことに、ネガティブなことは売れる。仕方ないよね。正確な情報を得る唯一の方法は、自分で試すことだよ。早く試すほど、良くなるよ。そして、シグナルについての注意点:今、「ポジティブ」なシグナルは多くの「ネガティブ」なものよりも価値がある。そういうのを読んで、何が起こっているのか、もしできればどうなっているのかを理解しよう。「私はこれをccでやった」は、「xはまだyを信頼できるようにやってない」よりも、今はずっと価値があるよ。
> 「でも、夜遅くまでコーディングしてプロジェクトが動くのを見たとき、君の中にあった炎は何だったの?」 それは「作ること」だったよ。これがみんなに当てはまるわけじゃないと思う。ある人にとっての「炎」は「コンピュータを操ってる」ことだったり、他の人にとっては「他の人のために問題を解決してる」ことだったり、また別の人にとっては「他の人を笑顔にしたり、泣かせたり、感情を感じさせるものを作った」ことだったりする。実際に文字や数字、特殊文字をコンピュータに打ち込むのが好きなプログラマーもいると思うし、そういう人にとってはLLMが楽しさを奪ってしまうのも理解できる。私がプログラミングを始めたのは、他の人のウェブサイトを壊したいと思ったからで、まずはウェブサイトを作る方法を学ぶ必要があると気づいたんだ。その後、自分が作ったものを他の人と共有するのがもっと楽しいと感じるようになった。これが私の「炎」。でも、他の人と自分が作ったものを共有することに全く興味がない人にもたくさん会った。彼らには何の意味もないんだろうね。結局、すべてのプログラマーが同じ理由でプログラミングをしているわけじゃないし、私たちの中にはLLMがすごく役立って、さらに楽しくしてくれる人もいる。一方で、LLMが彼らにとってプログラミングの楽しさの核心を奪ってしまう人もいる。だから、「他の人がこんな風に働けるなんて信じられない!」と「他の人がこんな風に働いてないなんて信じられない!」の間で常に行ったり来たりしてるけど、どちらの側も相手のことを全く理解していないみたい。
> 実際に文字や数字、特殊文字をコンピュータに打ち込むのが好きなプログラマーもいると思うし、そういう人にとってはLLMが楽しさを奪ってしまうのも理解できる。 まさに私のことだね。
> 実際にタイピングが好きなプログラマーがいると思う。 タイピングのことじゃなくて、理解することが大事なんだよね。LLMコーディングは、問題を解こうとせずに数学の教科書を読むようなもので、全体像はわかるけど、実際には理解した気になってるだけ。問題を解こうとすると、全然違う脳の部分を使うんだよ。それが自己成長につながるんだ。
そうそう、昔からの芸術の対立を繰り返してるだけだよね。 - 自分が思うようにアートを作るけど、商業的じゃなくなるリスクがある - 商業的・流行のアートでお金をもらう どっちか選んで。
> 実際に文字や数字、特殊文字をコンピュータに入力するのが好きなプログラマーがいると思う… リチャード・ハミングの本のこの一節を思い出す。 > 最終的に、より完全で、より有用なシンボリックアセンブリプログラム(SAP)が考案された—あなたが信じられないほどの年月がかかり、その間にほとんどのプログラマーは英雄的な絶対バイナリプログラミングを続けていた。SAPが初めて登場した時、古いプログラマーの約1%が興味を持っていたと思う—SAPを使うのは「女々しいこと」で、本当のプログラマーはアセンブリをするために機械の能力を無駄にすることはなかった。そう!プログラマーはそれに関わりたくなかったけど、無理やり認めざるを得なかったのは、古い方法の方がエラーを見つけて修正するのに機械の時間を多く使っていたということ。主な不満の一つは、シンボリックシステムを使うと、ストレージのどこに何があるかわからないことだった—ただ、初期の頃はシンボリックと実際のストレージのマッピングを提供していたし、信じられないかもしれないけど、彼らは後にそのシートを愛情を持って見直していた。システム内で操作する限り、その情報を知る必要はないのに—いや!エラーを修正する時は、絶対バイナリアドレスでやりたがった。
確かに。私の返答はこうだった:実際、考えてみると「構築」していたとは思えない。もし「構築」が目的だったら、もっと少ないことを始めて、それをもっと一貫して進めていたと思う。個人的な表現の方がずっと関係していると思う。 (「他人のために問題を解決する」ってのも響くけど、私はそれを指導やメンタリングで実践してると思う。)
問題は、コードをどう生成するかじゃなくて、どうメンテナンスするかだと思う。AIが生成したコードをそのままチェックインしたら、後で手動でそのコードを変更するの?将来的にAIがあなたのコードのバグを直せるって信じてるの?それとも、まずAIが生成したコードを整理するの?
そうだね、いろんな人がいるよ。私はソースファイルの構造や形にこだわっちゃうんだ。まるでアートのようにね。見た目がダサいと、動いても好きになれない。形が気に入ったLLMのコードも見たことがあるけど、そのまま使うのは嫌だな。だって自分が作ったわけじゃないから。
人それぞれ楽しむポイントが違うのは本当だと思う。それに、コーディングエージェントの使い方について固定観念がある人もいるのかな?例えば、コードの見た目を気にして、可読性やテストカバレッジ、他の「コードの健康」に関するタスクに取り組みたいなら、エージェントにそれをやらせることもできるよ。掃除のタスクを頼むか、新機能を実装するかはあなた次第。コードを実際に打ち込むことにこだわる人もいるかもしれないけど、私はコードベースをきれいに整えることに満足感を感じてるし、今はパワーツールもあるからね。私は小さな個人プロジェクトに取り組んでいるけど、今のところClaude Opus 4.5は私が説明できるリファクタリングは何でもできるよ。
> 実際に文字や数字、特殊文字をコンピュータに打ち込むことについて、記事の最初の行から: > 「私はソフトウェアを書くのが大好きで、一行ずつ書く。」前にも言ったけど、もう一度言うね:私は「一行ずつ」プログラムを書かないし、タイピングはプログラミングじゃない。キーボードから離れて抽象的にコードを考えてから打ち込むし、ボトルネックはタイピングの部分じゃない。前回HNでこれについてコメントしたとき、「もしAIが私の頭の中の抽象的なアイデアを取り出してコードに変えて、タイピングの部分を省いてくれたら、私は熱心な利用者になるだろう」と言ったら、誰かが「それこそがAIのすることだ!」って言ったけど、全然違う。キーボードから離れて「プログラム」しているとき、私はコードのテキストではなく、抽象的な構造のメンタルイメージを形成している。実際の視覚的イメージを思い描くのは難しい(最近流行りの言い方で言うと「アファンタジア」なんだけど)、多くの視覚野が言語的・論理的構造の抽象的な「イメージ」を処理しているからだと思う。私が形成するメンタル「イメージ」は漠然としたものではなく、私が書く正確なコードに直接対応しているし、頭の中でそれを区分けしてナビゲートするために使う抽象も、コードで使われるものと同じだ。私は通常、頭の中で異なるアプローチの多くの代替的な「イメージ」を評価して比較し、実行時にどう振る舞うか、どのように失敗する可能性があるか、新しいコードベースにとってどう見えるか、将来の変更に対してどう進化するか、同僚にどう説明するかなどを考える。私はこのコードのメンタルモデルをいろんな角度から「見る」ようにしていて、すべての角度から「正しい」と感じる瞬間が来るまで実際に書き始めないようにしている。それは非常に満足感のある感覚で、報酬なしでも追い求めている。そうしてから打ち込むんだけど、通常はあまり時間がかからない。私が「一行ずつ」コードを「打ち込む」段階に達したとき、自然言語で説明できるものは欲しくない。私は欲しい論理の正確な部分のメンタルイメージを持っていて、その詳細まで考えている。それから外れることは、私が多くの角度から scrutinized して、いくつかの代替案を却下したものから外れることになる。私は頭の中にある正確なコードが欲しい。そのためにはそれを打ち込むしかないし、それでいいんだ。AIが提供するのは、自然言語で必要なものを指定して、それに対応するコードを生成する能力で、それは本当に素晴らしい。でも、私が必要としているものではない。なぜなら、私の頭の中の完全に指定されたイメージを正確なコードに翻訳することができないから。代わりに、そのイメージを漠然とした自然言語に変換して、コードを生成させて、それが私の望んでいたものからどれだけ逸脱しているかを見つけて修正する必要がある。それは単にコードを打ち込むよりも厄介で、タイピング自体もそんなに時間がかからない。だから、私や私のような人にとって、AIコーディングは「一行ずつの部分」や「タイピング」を奪わない理由がわかってもらえるといいな。私たちはタイピングの段階でそれを開発プロセスに組み込むことはできない。あなたが使っているように使うためには、キーボードから離れたところで起こる部分、つまりコードのメンタルプロセスを置き換えさせる必要がある。でも、多くの人はそれをしたくない理由がいろいろあって、それについては別の長いコメントが必要になるだろうね。
> 最先端のLLMは、良いヒントがあれば、大きなサブタスクや中規模のプロジェクトをほぼ無援助で完了できる。 いや、著者には同意するけど、こういう言い方は誇張だと思う。しっかりした専門知識があれば、詳細な仕様でモデルを導くことができる。そうすれば、モデルはそれをうまく実行して生産性を倍増させる。でも、出力の質は結局、君の知識の状態を反映するんだ。単にレバレッジを提供するだけ。最高のトラクターを持っている良い農家は、ひどい農家よりもずっと良い収穫が得られる。良い方向性がなければ、Opus 4.5でも大量のコードの繰り返しを生み出す傾向がある。何をしているか分かっていれば簡単に避けられるけど、リファクタリングの段階でね。
そうだね、私もそう思う。生産性を上げるツールだけど、何を入れるかによる。確かにOpusは「Xをするボタンを追加して」って言うだけで動くけど、それを20回やると良い結果が出なくなる。逆に、詳細な技術仕様でモデルを誘導すれば、出力が魔法のように素晴らしくなるよ。
もしこれが10年以上のドメイン経験がある人にしか通用しないなら、これってアンチAIの記事じゃない?コーディングの全体的な雰囲気は、誰にでも通用するって約束で売られてるんだよね。
バブルが弾けたらどうなるの?それでもこのすごいモデルを使ってコードを作り続けられるの?今、すべてのエージェントは実質的にベンチャーキャピタルを使ってるんじゃないの?これって持続可能なの?もし自分のマシンでエージェントを動かせて、リモートバックエンドが必要ないなら、問題は解決するけど。今のところ、すべての開発者がエージェントソフトウェア開発に飛び込んで、これらのサービスが比較的低コストで常に利用できると賭けてるんじゃないかな?