AIとプログラミングしている、あるいはさせている、それともさせられている

LLMにはもっぱらGo言語でプログラミングさせている。しかし僕はGo言語を全然知らない。全然知らないのに何故使っているのかと言えば、後方互換性が高いという話だからだ。AIはしばしばdeprecatedの書き方を使いこなすため、そういう労苦を避けたかった。また、AIの書いたコードを永遠にメンテナンスすることになるのも嫌だった

もしかすると最近プログラミングを始めた人だと、言語は覇権アニメと共に変わりゆくものと思っている人もいそうだなぁと思うが、実際そうかもしれないんだが、そうではない時代はあった。少なくとも15年前に書いた趣味のbashコードは今でも動いている。というかbashくらいしか動いてない。なんでやねん。あ、rubyのコードも地味に動き続けてるわ。

まぁとにかく、POSIXとまでは言わんのだが、もう少しもってくれよという気持ちは確かにある。半年で変わるザ・ベストなプラクティスを追いかける気ももはやないので、なるべく一度書いたものを誰かの都合で変えなくていいようなものを、と思った時に、Go言語がよいのかなぁ、と思った。Go言語が比較的プリミティブな感じだということくりは聞いていたので。

使ってみると、シングルバイナリであるところもよいと思えた。気軽にコマンドラインツールが作れる。無理に一つのファイルに詰め込まなくてもいい。

一方でしらん言語でプログラムさせていると、ただでさえAIにプログラムさせるのは作業感があるのに、その感がより強まる。それで、長い時感がかかっている割にちっとも成長しない気もして、しかし今さら成長など嘯いたところで仕方ないかとクソアプリ制作に勤しんでいたのだけれど、しかしLLMにプログラミングさせる者なら誰もがわかるように、適当なプログラミングは存外早く壁にぶち当たる

全然仕様を満たしていないことに気づき、慌てて修正するとデグレする。何を言っても「あー!」とか「そのとおりです!」と言うばかりで何も解決しない。イライラが募り、もうええわと思ってコードを読み始める。しらん言語とはいえ現代のプログラミング言語だ。ちゃんと読めば何をしているかくらいはわかる。

いやわからん。なんだこのコード。何がしたいんだ。なんだこの切り分け。単一責任もDRYもない。意図がわからない。書いてあることはわかるが、なぜそう書いたのかわからない

ちょっとこれは機能以前の問題だぞと思って、キレ気味に書き直しを命じるのだが、うまくいかない。計画をたてさせるとそれらしいものをたてるが、実装させるとてんで滅茶苦茶になる。こちらで切り分けても、AをなおしたあとのBでAを破壊する。ディレクトリ階層を提示しても全然従わない。「素晴らしい設計です!」(やらない)

どないせぇっちゅうねんと思ってふて腐れてしばらく放置した後、ふと思って、main.goで初期化していないことなど指摘し、適当にやらせてみたところ、今度は急にするするとうまくいった。複数責任とDo Repeat原則のコードは、それっぽい感じのリポジトリパターンになった。その後テストを書かせると、やはり間違えているところ(特にマッピングあたり)が多く判明したのだけれど、とりあえずまぁ、悪くない形になった気がする。

時間はかかったが、久しぶりにちゃんとコードを読んだ気もして、少しばかりの充実感がないでもなかった。結局泥臭いことをしないと、人間うまくいかないものなんだなぁと思うし、AIというのはこちらが出来ること以上のものができるわけではないらしい。

しかし、ではAIが時短になっているのかというと、なっているようななっていないような、よくわからない。多分僕が本当に向き合ってちゃんとやればもっと早くもう少しマシなんじゃないかと思うが、現実的にそれはできない。僕はもう疲れている。一方でやらねばという妙な意思らしきものだけが骨に残っている。そんな状態でも、AIに「あれやるぞおらー」というくらいの気力はある。

この感覚は、食洗機を使うのに似ている。皿を洗う気力は無いけれど、皿を置くくらいはできる。結果、食洗機があるととりあえず洗い残しは減る。

ちょっと違うのは、いざ始めるとなんだか気になってかかりきりになることだ。なんだかんだ言ってもコードを書くのは嫌いんじゃないんだよなと思う。ヘボなりに。

そうしていくつかのクソアプリは出来たが、楽になったんだかなってないんだかは、正直よくわからない。とりあえず金と時間はかかっている。あと、食洗機の普及率が上がらない理由については、わかった気がした。

何をしているのかなぁと、AIに愚痴る日々だ。おっと、5時間制限がきたから、ここまでだ。

この記事をいいなと思っていただけた方、よければ高評価・チャンネル登録……はないので、コメント・SNSでシェア・ブックマーク、RSSフィード登録を、よろしくお願い致します。

コメント

コメントする

目次