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

メイキング

2026年7月23日原文(beej.us)

概要

  • ものづくり に自分で手を動かすことへのこだわり
  • AIや他者が作ったもの には達成感を感じにくい心情
  • AI時代の開発者の分断 と“作る”ことの意味の変化
  • プロンプト作成 と“ものづくり”の違いへの考察
  • コンパイラやAI を使った場合の“自分で作った”感覚の曖昧さ

AI時代の「ものづくり」と達成感

  • 自分で作ること に大きな充実感を感じる性格
  • 他人やAIが作ったもの は、自分の成果として誇れない感覚
  • AI開発者コミュニティ で語られる「クラフト(手作業)の喪失」や「高レベル問題解決の増加」などの議論
  • 自分の経歴 :Gen-X世代、80年代マイコン時代からのハッカー、CS修士、20年以上の業界経験、現在はOregon State University-CascadesでCS講師
  • AI(Generative AIやLLM) を使うこともあるが、手作業コーディングも好む

AI生成物と“自分で作る”の違和感

  • AIが生成した小説やアート、コード を自分の作品として誇れない
  • 他人に依頼して作ってもらったもの も同様に「自分で作った」とは言い難い
    • 例:「デッキを作った」ではなく「デッキを作ってもらった」と表現
  • AIに作らせた成果物 にMITライセンスをつけることにも抵抗感
  • マネージャー視点 でも「自分が作った」ではなく「チームが作った」「AIエージェントが作った」と言うべきと考える

“作る”ことの本質と達成感

  • 自分で手を動かして作ること にこそ誇りや達成感がある
  • プロジェクトの完遂 自体は嬉しいが、他人やAIが主導した場合は満足感が減る
  • クラフトや問題解決能力の喪失 だけでなく、「自分で作る」体験の喪失が最も大きな違和感

最近“自分で作った”もの

  • 妻のためのシンプルなフラッシュカードシステム を手作業でコーディング
    • Claude(AI)で情報収集はしたが、コード生成は一切依頼しなかった
    • 小規模なコードでも「自分で作った」ことに大きな誇り
  • 依頼者(妻)も「自分で作った」とは言わない —依頼しただけでは“作った”とは感じない

プロンプト作成と“ものづくり”の違い

  • プロンプト作成 にもビジョン、判断力、コミュニケーション力など重要なスキルが必要
  • AIへの依頼は「誰かに作ってもらう」こと と同じで、自分で作る体験とは異なる
  • リーダーシップ =「他者にやってもらう技術」と近いが、やはり“ものづくり”とは別物と感じる

コンパイラやAI利用時の“作った感”

  • CやRustのプログラム を書いても、実際に動くのはコンパイラが生成した機械語
  • 機械語は自分で書いていない が、「自分で作った」と感じる理由は?
    • Cコードと機械語の関係が数学的に明確であることへの信頼感
    • プラットフォームごとに違いはあるが、根本的な“作った”感は残る
  • AI(LLM)がアセンブリコードを生成 しても、元のCコードを書いた自分の貢献を強く感じる
  • どこまでが“自分で作った”と言えるか の境界の曖昧さ

まとめ:AI時代の“作る”の意味

  • AIや他者の力を借りたものづくり が主流になる中、「自分で作る」ことの意味を再考する必要性
  • プロンプト作成やディレクション もスキルだが、手を動かす“ものづくり”とは異なる達成感
  • 自分の手で作ること へのこだわりと、その価値の再認識

Hackerたちの意見

すごくいいこと言ってるね。LLM生成のハッカーニュースの投稿を見るのは好きじゃないんだ。ハッカーニュースの楽しさは、人間の創意工夫を見られることだったから、成功したプロダクトじゃないのがほとんどだし。コンピューターチェスの試合を見ないのと同じで、AI生成のソフトウェアやアートを簡単に見分けられる方法があれば、嬉々として避けられるんだけど。

グレーゾーンの本当の違いは何なんだろう?よくわからないけど、作ることと作られることを頼むことの違いに関係してると思う。たとえその境界が特に明確でなくてもね。私にとっての違いは、入力の変化が出力の観察可能な振る舞いにどう影響するかをどれだけ考えられるかにある。コンパイラが出力する実行可能ファイルが私の意図した通りに動かないとき、99.99%のケースでそれは完全に私の責任だし、重要なのはソースコードから予測できたこと。逆に、ソースコードを考えれば、そういった誤動作を分析できる。でも、vibecodedプログラムとそれを作成するために使ったプロンプトとの関係では、そんなことは全く当てはまらない。

これってすごく明確な考え方だね。何かを作ると、自分の創作がどうしてそうなったのか、具体的な理解や意見が育まれる。私もvibecodedプロジェクトがたくさんあるけど、そこにどれだけの手間や深さをかけたかに応じて「所有感」を感じるよ。

プロセスに対するエージェンシーと結果に対するエージェンシーの違いって感じだね。プロセスをいつ始めるか、結果が良いか悪いかを決めるのはOKな人もいるけど、何が良いか悪いかを本当に判断する力が欠けてることが多い。彼らは、作り手が下の方の懸念(作り手にとって重要なこと)に関して同じくらい良い選択肢を提供してくれると信頼して、他の懸念に基づいて判断を下すだけ。コンパイラを使うときの主な違いは、コンパイラが私のプログラムのために99.999...%正しいバイナリコードを生成して、できなければ大きなエラーを出すこと。でも、コンパイラはプログラミング言語で書かれたアルゴリズムの正確さには関心がない。責任が明確に示されていて、コンパイラは完璧に仕事をこなすけど、私は自分の仕事も頑張る。だから、私が良い仕事をしたときは、コンパイラの部分を心配せずに結果が良いと仮定できる。LLMの使用にはそんな明確な境界がない。ユーザーがプロンプトに基づいて結果が良いか悪いかを判断できるとしても、LLMツールはプロンプトで指定されていないすべてのことに対して良い結果を出すには信頼性が足りない。人間と協力するのとは違うね。プロのアーティストに「バットマンの絵が欲しい」と言ったら、足の指が足りないとか腕の数を気にする必要はない。

でも、99.99%信頼できるLLMが私たちを再びそれを作るモードに戻すってことはないと思う。決定に関するタスクでは、LLMが決定を下すことが、私にとってLLMが何かをしてくれたと感じさせるんだ。例えば芝生を刈ることを考えてみて。自動で芝生を刈るロボットがあると想像してみて。完璧な精度でも、私が芝生を刈ったわけじゃない、ロボットがやったんだ。もしそのロボットに乗って、勝手に動かせずに自分で運転し始めたら、そりゃ私が芝生を刈ったことになるよね。ジョイスティックで操作してるだけでも、私は芝生を刈ったことになる。所有権は、どこを刈るかの決定から来るんだ。

最近AIにやらせたことの粗い詳細すら思い出すのが難しい。逆に、数年前の10万行以上のコードベースは、今でも頭の中で大体思い出せる。

取り戻そうとしてるところだよ。2ヶ月くらい何もやりたくなくて、テレビも見ずに飲むだけの時期があったから。今は数週間禁酒してて、少しずつ戻ってきてる気がする。でも、今はまだめっちゃ怠けてる。ハードウェア作りが恋しいな。自分でカメラや小さな自律ロボットをデザイン・制作してるんだ。車の中でカメラが転がって壊れたけど、やっと修理できた。古いビンテージのCマウントレンズをたくさん買って、それぞれを取り出して動画を作ってたけど、興味を失っちゃった。今はランダムなビンテージCマウントレンズの箱とデスクの飾り(カメラ)があるだけ。良いことは、このハードウェアプロジェクトのおかげで2つのSWEの仕事を得られたこと。でも、取り戻せるといいな。vibe codedのプロジェクトを聞くと、瞬時にリスペクトを失うことが多い。今の時代がそうだってのは分かるけど、やっぱりね。「これを作った」と言っても、実際にはクラウドコードが出したコードだったら…結局はお金と自由の問題なんだよね。自分がやりたいことを自由にできるようにならないと。

自分に厳しくしすぎない方がいいと思うよ。まだ考えてないなら、ADHDとか他の何かが関係してるかもしれないって考えてみるのもいいかもね。私たちは機械じゃないし、複雑な生物の束なんだから、自分のその複雑さを理解することが、物事を正しい方向に進めるのに大きく役立つんだ。

多くの人が同意するのは分かるけど、この感情には本当に共感できない。たとえ自分が一行もコードを書いていなくても、LLMで「作った」ものに誇りを持てるよ。自分がプログラムしてないから、それを見せびらかして「私はすごいプログラマーだ」なんて言わないけど、コーディングは主な目的じゃなくて、完成品を作るための手段だったから。庭をリメイクする計画を立てて、プロの造園会社に頼んで作ってもらったら、夕日を浴びながらパティオで冷たいビールを飲んで新しい居心地の良い環境に誇りを感じられる。ソフトウェアについても同じ気持ちだよ。私のvibe codedギタータブエディタには、他のソフトにはない必要な機能があって、実際に解決したい問題を解決してくれた。AIがなければ絶対に作れなかったと思う。仕事や家族、他の趣味(本当にギターを練習すること)で忙しいからね。だから、誇りを持つなと言われても構わないけど、「作ってない」とは言わないでほしい。私が作らなければ、そもそも存在しなかったんだから。

私にとって、言葉の中に違いがあると思う。例えば、「作る」と「生産する」はどちらも何かを作り出すけど、「作る」はもっと能動的な部分があって、「生産する」はもっと監督的な部分がある。これが、ゲーム開発のソフトウェアエンジニアとしてプロデューサーに会うようになってから、より重要になった。

「自分が作らなければ存在しなかった」という主張はあまり通用しないと思うな。プロジェクトを他の誰かに任せて、その人がやったら、それは自分がやったことになるの?私の中では、管理したとか、いくつかの部分をデザインしたとは言えるけど、実際にやったことに対してクレジットを取るのは難しい。あなたがそれをやってほしいと思ったから、誰かに頼んだんだよね。むしろ、あなたの結論は逆にすべきだと思うよ。実際の「作る」ことはしていないけど、あなたがやったこと、つまり問題解決のための方向性やビジョンを提供したことには誇りを持てるはず。

あなたの比喩ではかなりシンプルに見えるね。何かを依頼したことには誇りを持てる…それが造園でもソフトウェアでも…でも、自分が作ってないものについては誇りを持てないってことだね。もちろん、どれだけ関与したかによってグレーゾーンもあるけど。

Hacker Newsで議論の続きを見る