ナンモワカランアザラシ

技術的なアレコレを自分の言葉で書いて保管・公開しておくための静かなインターネット

日記: 現代における開発の様子 with AI

AIによって我々の生活は楽になるのか。ならない気がする。

エディタ上

Copilotによって単調な作業は半自動化された。 「こんな感じ!」と念じるとそれらしいものが出てくる。提案を承認するつもりでtabキーを押す。```が最後の行に書き込まれる。手動で消す。余計なもの学習しやがって。

単純な関数なら、適切な命名までつくれば2秒くらいで出力してくれる。 たまになかなか空気を読んでくれないのでコメント中の自然言語で意図を補足する。なんども書き直して提案が出てくるのをそのたびに待つ。フラストレーションがたまる。最終的に自分で書く。この時間はなんだったんだ。

あと、閉じカッコまでを出力してくれないことが多い。 jsでハンドラ関数を渡したいときとか。

element.addEventListener("click", () => {
  // () =>まで書くと、AIがブラケットの開始から関数の中身までを書いてくれるが、カッコを閉じれくれないので人間が閉じる。あるいはエディタの補完を信じる。
}

Copilot Chatは、今のところ私は使いこなせていない。 「この処理解説して」->「私はプログラミングに関する質問にしか答えられません」->「は?プログラミングの質問だが??」->「誤解を与える回答をしてしまいました、...」 これを毎回やってる。

ブラウザ上

対話AIサービスとしてはChatGPTとClaudeを使っている。どちらも課金しているのでそれぞれモデルはGPT-4とOpusだ。

コメントで意図を伝えられないときに対話AIサービスを使う。 「hogehogeな処理をするコードを書いてください。fugafugaな目的です」 ->「ほいよ」 ->「(無言でエラーログを張り付ける)」 ->「すまんやで、これが修正や」 ->一部意図と異なるので手動で修正する

複雑な処理をさせようとすると、やりとりが長くなる。最近はマシになったが、やりとりが長いと最初のコンテキストを忘れやがるのでそのたびに目的を伝えなおしていた。

あとは、エラーの原因を聞くことも多い。スタックトレースを人間が解読するのはしんどいのでAIに読ませて噛み砕かせる。

質問を雑に聞いて、回答を出させている間に検索エンジンでドキュメントを探すと、問題解決の速度と精度が高くなるが、これって人間がやるべきことが増えただけでは?

AIの苦手なこと

このような日々を1年間くらい過ごしてきて、AIが苦手なことが経験的にわかってきた。

そこそこ専門領域の技能がある人間が、その領域でぱっとできないことを聞くと、AIも同様の失敗を提示してくる。つらい。

あと、テスト駆動でコーディングすることが苦手なように思える。何度も「テスト駆動で書いて」とお願いしても本コードから書いてくる。なんなんだよ。 人間がテストコードを書いて、それをエディタ越しに読ませて、本コードを出力させる、という方がうまくいきそうが気がしてきた。

コードを出力するときに「余計なコメントをつけないで」と指示をしても聞いてくれないことが多い。 また、コメントを出させないと精度がガクンと下がる。

今のところのAIは、自分の中で基礎知識が抜け落ちているところを補完させる役割になっている。 すべてを自律的かつ専門的に作業させるのはまだできなさそうだ。

リファレンスを出させると知恵袋的なサイトを出してくることも多い。公式ドキュメントを読んでくれ。

AIサービスを自分で使用するメリット

実際に課金してよいことは、世間の評判に惑わされなくなることだ。いわゆる「驚き屋」に騙されない。 AIは、本当にしんどいところはまだ自動でやってくれない。 人間が目的と問題を丁寧に言語化して伝えてあげれば高い精度で回答を生成してくれるが、そこまで人間が言語化できている時点で解法が自明になることが多い。