プログラミング
Vibecodingは手書きでコードを書くほど楽しくない
Vibecoding isn't as fun as writing code by hand (autodidacts.io)
要約
筆者は、AI支援コーディング(Vibecoding)は初期の楽しさや迅速なプロトタイピングを提供するものの、手書きでコードを書くことによる達成感や深い満足感には及ばないと論じています。AIは不可能だったものを可能にする一方で、コーディングプロセスそのものの喜びや、困難を乗り越えた達成感といった「タイプIIの楽しさ」を損なう可能性があると指摘しています。
全文翻訳
私は物作りが好きです。それが私を幸せにします。学習や発見もそれに次ぐものですが、物作りはより満足感があります。
実際、物作りがあまり得意ではないので、私の場合は「物作り」のスリルは主にソフトウェアを書くことから得られてきました。ソフトウェアは、無から満足のいく有用なものを作り出す最も簡単な方法の一つです。
長い間、物作りがどれほどの喜びを与えてくれるかを、あるレベルでは知っていました。[1] しかし、それは最近の2つの趣味のソフトウェアプロジェクトに取り組んでいる間に本当に実感しました。どちらも、私がずっと欲しかった何か有用なことを行う、くだらない小さなPythonスクレイパーでした。(リンク、リンク。)かなり基本的なものでしたが、私に非合理的なほどの喜びを与えてくれました。何年もプログラミングで最も楽しかったことです。[2]
そして、[ジョーズのテーマ曲を再生] AIが登場しました。他のほとんどの人と同じように、私もAI支援コーディングを慎重に試しています。AIを「愚かだ」(そうですが)とか、「実際には生産性を向上させない」と簡単に切り捨てられる段階は過ぎました。そこで、古典的な「モットーとベイリー」方式で、私は後退しながらそうではないふりをしています。AIコーディングはあまり楽しくありません。
これは直感に反するように思えるかもしれません。なぜなら、Vibecodingは、最初は絶対にスリリングだからです。Vibecodedソフトウェアのリファクタリング?スリリングではありません。
Vibecodingが実際に何かを作るスリルを与えないと主張する人もいますが、私はそうは主張しません。なぜなら、それは部分的には与えるからです。私は、Vibecodingがプロジェクトレベルとキャリアレベルの両方で楽しさを前倒ししていることが、その採用を推進している要因の一つだと考えています。
Vibecodingのスリル曲線
アイデアがあれば、通常、ごくわずかな労力で非常に迅速に動作するプロトタイプを作成できます。即座のドーパミン!同様に、コーディング経験のない人でもアプリを「コーディング」でき、おそらくそれは機能するでしょう。即座のドーパミン!
私は、楽しさを前倒しすることに対して個人的なポリシーを持っています。そのため、私はこれを好みません。未払いの仕事で報酬を得ること、借金をすること、そして誰かが私の仕事を今日行うことと引き換えに明日彼らの仕事をするという取り決めも好みません。
物作りにおいて、スリル/満足感にはいくつかの distinct な源泉があると私は考えます。
アイデアのスリル
アイデアを現実にするスリル
苦労して得た達成感
うまくやり遂げた仕事の満足感
学習のスリル
自分が抱える問題を解決する何かを作る満足感
Vibecodingは一般的に、1、2、6を与えることができます。しかし、3、4、5はVibecodingの自然な結果ではありません。
Vibecodingのつたない擁護として:私は、AIなしでは決して作れなかった、あるいは作る気にならなかったものを作ることができましたし、作りました。ほとんどの場合、それは手作業で数週間かけて作る価値がない場合ですが、数分または数日で作成できるなら、それは価値があります。
私は、Taylor TroeshのHNでのディスカッションの抜粋に基づいた、すでにHacker Newsに投稿されたことがあるかどうかをチェックするブックマークレットをワンショットで作成しました(HN?)。それは私にかなりの満足感を与え、私が抱えていた問題を解決し、私はそれをWallabagのお気に入りページで定期的に使用しています。
非常に短い時間で、「Party Market」という、予測市場に関するフラッシュ講義に合わせた予測市場シミュレーターのパーティーゲームをVibecodedし、講義中に「私がどれくらい長々と話すか」という市場をライブで運営しました。それは、退屈でつまらない講義を、グレードAのエンターテイメントに変えました。コードはゴミでバグだらけでしたが、あの時間で手書きでそれをやっていたら絶対にできませんでした。それはAIでやるか手書きでやるかの選択ではなく、AIでやるか全くやらないかの選択でした。
私が知っている消防署長が、Nvidiaカードが何であるか、あるいはXeonのモデル/世代が何であるかさえ言わない「AIアプライアンス」に大金を投資しようとしていたとき、私は無料プランのLumoを使って、2回の午後のセッションで、リアルタイムでライブフィードで私のラップトップで動作し、私が供給した点火映像の最初の煙のフレームを検出できた、機能的なPyronearベースの山火事早期警報システムをVibecodedしました。
私は、SQLiteに慣れていない人々が本や注釈を新しいデバイスに移動できるように、ブラウザベースのKoboデータベース移行アシスタント(リンク)を作成しました。
ボーカルコーチとの歌のレッスンがキャンセルになったとき、私はずっと欲しかった、そして約10年間作ることを計画していたリアルタイムピッチトレーニングアプリを作成しました。
これらのほとんどの場合、私は結果に非常に満足しましたが、そのプロセスは、私のくだらない小さなスクレイパーを書くのと同じくらい楽しいものではありませんでした。
もちろん、手書きのソフトウェア開発が常に楽しいわけではありません。私の最初のGolangプロジェクトは、かなりの期間、締め切りがあり、認定された「楽しくない™」ものでした。Rustコンパイラと初めて格闘したとき、たとえば20行のRustコードを書こうとしたときは「楽しくない™」ものでした。しかし、それは長期的にはタイプIIの楽しさでした。なぜなら、それは達成感と「やったぞ!」という輝かしい感覚を与えてくれたからです(そして、次回はもっと簡単になるでしょう)。
ローカルモデルをllama-serverで実行するものから、サインアップ不要の無料サービス(Phind、Lumoなど)からコピー&ペーストしてワンショットスクリプトを作成するもの、さらにはカスタムで書かれた自動承認フックを備えた、権限を危険なほどスキップすることに心配なほど近い、フルオンのリムーバブルサーバーClod Masterpiece 200™食べ放題プランでアルゴリズム取引モデルを開発するものまで、あらゆるものを試しました。すべて同じです。「生産的」ですが、それが私に感じさせる方法が好きではありませんし、出力の質も好きではありません。それは私を愚かで取るに足らない(そして、時々それを使うことさえ汚いと感じさせます)のに、私の尊敬を得ることはできません。
「ドーパミン」という言葉を聞いて思いました。Vibecodingは、一連の初デートや一夜限りの関係のようなものです。プロジェクトとの関係を築くことはありません。同じような温かい満足感、オキシトシン、愛着を得ることはありません。
ドーパミンだけの人生の問題は、スリルは繰り返しによって鈍くなるということです。
別の見方をすれば、Vibecodingはあなたと現実の間にレイヤーを導入します。私は、一般的に、現実を直接体験する方が楽しいと考える人間です。
Vibecodingは、ほとんど制御下にない大企業の役員になるようなものです。何が起こっているのか本当によくわかっていると感じたことはなく、常に妨害や怠慢の疑いがあります。物事は完全に形作られて現れますが、あなたが想像していた通りではありません。時には機能し、時には機能せず、それに対してあなたができることは何もありません。ブラックボックスにもっとお金を注ぎ込み、さらに大声で叫ぶ以外は。
それがあなたがすることです。
このエッセイは、ろうそくの明かりで青インクでアウトラインが作成されました。AIは私のタイプミスを修正することさえ許可されませんでした。それらを味わってください。
子供の頃、私は発明家になりたかったのですが、それは物作りと発見をうまく組み合わせたものです。執筆と作曲は、私の他の主な活動であり、ソフトウェアのように、物理的な現実や他の人間との接触がほとんど必要とされない、恩恵深い形態の物作りです。
↩︎
私は主にシェルスクリプトを書いていましたが、Bashは楽しいことで知られていません。
↩︎
興味深く思慮深い人々のためのニュースレターに登録して、最新情報を受け取りましょう。今すぐ購読!いいえ、結構です。素晴らしい!受信トレイを確認し、確認リンクをクリックして購読を完了してください。