AIプログラミング開発日誌7: 外部プラグインの機能でかなり苦戦

ずっとAIプログラミングやっている。自分用のものがほとんどだが、いくつかは公開してもいいかもしれない、と思うものも出てきた。これは書籍管理をしているところ。

人に見せても問題なさそうなラインナップ

ざっと見てなんとなく見栄えはするかなぁと思うのだけれど、これくらいのものでも、さすがに非エンジニアにはだいぶ敷居が高いままだ…と思う今日この頃。まぁもちろんそれは用途次第であって、コンバータとかちょっとしたものならいいと思うんだけれど。今僕が時間をかけて作っているデジタルコンテンツの管理アプリDigitalShelf(仮)(v0.20.0までいったがv1はとおい)は激しいDB設計の変更などがあり、非エンジニアだと間違いなく破綻するだろうということが何度もあった。

目次

AIにはしんどい機能だった

特に今回の変更はしんどかった。今後配布することを念頭に、ユーザがアプリケーションの機能を拡張できるようなプラグイン機能を作っていたのだが、今までで一番引っかかったかもしれない。

もともとは、ffmpegなどの外部コマンドに依存する特殊な機能をどうインストールするか、というのが問題だった。特にソースコードを開示する気がなくなったため、GPLの扱いは慎重にならざるを得ない。ソースコードを開示しないのは、なんか最近セキュリティの名目でAIによるOSSアタックという謎のプレイが流行しているからだ。ただでさえOSSなんてボランティア精神が必要なのに、なにをしているのか…。

ということで、配布するならバイナリかなぁと思ったのだが、そうするとpdftoppmffmpegといった外部コマンドのインストールをどうするかな、という問題が立ちはだかる。特にGPLは混ぜると開示せざるを得なくなってしまうし。

それで、外部コマンドについてはプラグイン形式とすることで、ライセンスやインストールの問題をクリアしつつ、拡張性をもたせようと思った。これは実際応用範囲が広いし、ユーザが好き勝手できる良い機能だ。たとえばyt-dlpを使った機能なんかはさすがに配布しづらいわけだが、個人がプラグインとして導入する分には勝手なので、自由度が大きく広がる。whisperなんかも混ぜれば、手軽に動画のDLと文字起こしで検索システムも作れそうだ、などと考えていた。

AIに着想を伝えたところ、AIも「それはたいへん素晴らしいアイディアです」といつものことながら礼賛して、いきなり実装を始めたのだが、まぁこれがカオスであった。データベースからワークフローの設計までかなり手をいれることになってしまった。

AIに任せきりにしても一応機能自体は実現するのだが、無数の変数と設定項目の入り組んだとんでもなく複雑なカオスが出来上がるのである。なぜ設定が必要なのか不明な項目、手順を先に指定した後に目的と名前を聞くような不可解な順番、無限に増える変数……明らかに管理不可能である。

それで結局、不要な項目とデータベース設計の冗長な部分を指摘しつつ、自分で要件を決め直して、かなり根本的なところから実装させなおす必要があった。その過程で出来ていたものがまた出来なくなることも多々あり、大いに苦労した。

AIプログラミングの実際的しんどさと、恐らくの無理解の乖離

これはAIというやつの性質がよく出ている。AIは局所的プログラミングの天才なのだが、全体を見通すことに書けては鈍才もいいところなのだ。しかしシステムというやつはどんな小さなものでも全体の整合がすべて。なので、目的を見据えながら全体を見通し帳尻をあわせて整えるという、一番しんどいところが結局人間任せであるから、結局時間はかかるし苦労もする。要件定義に基づいてアーキテクチャ設計とデータベース設計という、抽象と具体の極致でそれぞれAIを制御しないといけない。

こういう感じで普通に人日がかかっているので、完全AIプログラミングで制作しました!として公開し、もしそれを「AIで作ったんだから誰でもすぐできるようなものなんでしょ」と言われるとムカッとするだろう。

多分AIでコーディングしている人たちは大なり小なりその難しさについて実感しているはずで、「確かに開発速度は上がったがエンジニアが不要になるはずがない」というのは完全にそのとおりであると思う。一方で、開発速度が上がっていることも事実であり、明らかに1人で数人の業務委託を切れるくらいのスピード感になっているはずだ。

となると、エンジニアが今までどおり必要とされるには、ソフトウェアの需要もやはり数倍になる必要がある。もしかしたら数十倍かもしれない。しかし、「ITエンジニアの不足」が言われていたのは確かだが、さすがに数倍や数十倍必要というわけではなかったはずだし、またそもそも本当にソフトウェアにそこまでの需要が本来あったのかも疑わしい。

なので、結局ITエンジニアの需要については強烈な下落圧力がかかるはずで、ソフトウェアエンジニアはもうオワコン、とは言わずとも中長期的にはやはり厳しくなるのではなかろうか。しかも周囲からはどうせAIがやってるんでしょ?という目で見られるのだろうし、そういったことは評価や給与に反映されるのだろう。現実に難しいかどうかは問題ではない。世間の人がどう思うかが問題なのだ。現実の難しさと需要で給与が決まるなら人手不足倒産なんか起きていない。どんなにしんどかったり難しかったりしても、人がそれに対価を払いたくないと思うのであれば、ただ取引不成立になるだけだ。

ITエンジニア初めての逆風?

結局、ひたすら職業として上り調子であったソフトウェアエンジニアにとって、初めての社会的な逆風ということになるかもしれない。個人的には、ソフトウェアエンジニアはむしろ他業界に散らばったほうがいいと思っているし、僕自身はもはや組織から離れたので、別にもういいのだが、しかしまぁ、今後のエンジニア業界がどうなっていくのかは、興味深く見守っていきたいところだ。

<関連記事>

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

コメント

コメントする

目次