0.5人月

人生と仕事が伸び悩んでるWeb系のおじさん

何度だって生き返るプログラマ不要説

ChatGPT-4で働く淘汰より

sugoi。サブスク登録すると使えるとのことで登録してみた。自分の場合は、まだGoogle検索の+αレベルでしか使いこなせてないが、既に仕事でかなり助かっている。

下はPHPAWS SDK経由でS3をアップロードする時の文法について聞いたのだが、このくらいなら公式のSDKを読めとかパッケージ追えとかいうマサカリはしまってもらうとして、かなり簡単に対話的に情報を教えてくれる。

PHPAWS SDKを利用してS3を使う場合の文法について聞くね」と言う質問をして、その回答に提示してくれたAWSのサンプルコードから「putObjectのKeyはなんの意味?」を質問をしてすすめているのが下の画像だ。(※↓2023/03/22 13:00追記 これはGPT3でした)

上はちょっとお試し程度のものだったが、助かるのがコーディングの0=>1である。もうすっかり文法を忘れたVue2と触れたことがなかったCSSフレームワークのElement UIで、マルチセレクト型の部品のマークアップをお願いした。

吐き出してくれたコードから、「マークアップにこれを外して」とか「エラーが出たんだけど実はLaravelのbladeテンプレート上に書いてるんだ。このエラーの解決法は何?」(正解はdelimiter)とか「Vue2においてその書き方って一般的なの?」とか対話的に聞いて、疑問を解消しつつブラッシュアップしながらコーディングを進めることができた。

もちろん平気で嘘つくこともあるというのがこのAIの特徴なので(実際にある日本の身近な場所の要約をお願いして全くの嘘をつかれたり、あまりに足らなさすぎるある洋服ブランドの説明などなど)。

Element UIのドキュメント読みにいって裏取りに行ったり注意はしているが、かなりこちらの要求に忠実で柔軟な0=>1のコードを積み上げることができる。0=>1のHTMLマークアップがかなり苦手な自分にはかなりの武器で、実際現時点でかなり生産性が上がっている自覚がある。

今言ったコードだったり他には翻訳だったり(荒れそう)、実際に解のあるものをこのスピード感を持って対話的に吐き出してもらうことがまず革新的である。それに何より対話的に柔軟に回答をくれるので唯一解ではない設計の0=>1で叩き台にするのにももってこいである。

OverWatch2の分析サイトを組む想定でテーブル設計を依頼してみた。命令の内容のレベルに引きずれらるようになんのことはない設計案が続くが、

この後に、ヒーローとメタ環境における関係も踏まえたテーブルを設計してみてと依頼すると↓の画像の通りmetasとhero_meta_relationsテーブルを作ってくれた。

start_dateとend_dateあたり、メタがわかっていることがわかり安心する。レコードがOverWatch1じゃねえか、と突っ込むと、例ですよとプレイヤー層とかでも捉え方が違うぞ、OverWatch2で更新すれば適用可能だと言ってくる。

一回一通りイメージを吐き出してから質問を重ねるか、最初から追加で質問を重ねて解像度を上げていくかやり方はあるだろうが、この話相手感、ITエンジニアはよく壁打ちお願いしますと頼むが、そのキャッチボール感をChatGPTはくれる。うっかりビジネスロジックを突っ込まないように注意が必要である。

他にも、自作PC自作PCを予算設定して依頼するとリアルタイムでパーツの値段は追えないが、と断りを入れられた上でパーツ構成を提案してくれた。それはChatGPT君の自覚の通りだが相場観はバッチリであった。

プログラマじゃない人でも、ノーコードでプログラムが書ける」

ノーコードと称するもので自分が触れたもので、古にはAccess、本命としてはkintoneが浮かぶ。Accessでコードを書かずに作るシステムは、PS時代のRPGツクールでイベントを作るかのように難しく、確かなスクリプト技術と蓄積されるデータ構造を設計できるテクニカルスキルが必要だった。

kintoneはAccessよりも手軽にUIを作れて簡単なDBを作れる、そんなWebアプリケーションだが、運用にはデータ構造やUI設計といった上にも挙げた基本的なSEスキルと、複雑化やちょっとアレがしたいという例外に直面しJSのプラグインを作りたくなるなど、ノーコードとはいえやはりプログラマブルにならざる負えない運命にあった。

本命すぎるAI製品を除き、ChatGPTの競合製品として大きいものではこの文脈ではないかと予想する。このAIから納得のいくシステムを作るには、プログラマブルな言葉が必要で今それはプロンプトエンジニアとしてバズワード化しつつある中、ChatGPTを使いノーコードで作れるものは上記2つのプロダクトの説得力を飲み込んでしまえるものではないかと想像する。Accessでもkintoneでも叶わなかったChatGPTの何がしかで、今度こそプログラマが不要になり、ノーコードがドンといくということにもなるのではなかろうか。ただし、2つと同じようにプロンプトというメイレイを操るというテクニカルスキルの必要性を残したまま。

それではと結論として、プログラマーに与えるインパクトはいかほどなのかと改めて考えるが、これはフレームワークが浸透していなかった時代に、どんなWebアプリケーションにも適用できるRuby on RailsPHP/Java用のフレームワークが普及した、そんな類のものだと考えている。

このときプログラマーが需要が減ることもいなくなることもなかったが、「こんなプログラマーが欲しい」という需給の動きはあったと個人的には思ってる。所詮個人の体験、感想レベルではあるのだが、実際に人の入れ替わりも目にしてきた。インパクトはもしかしたらもっと大きいかもしれないが、方向性はそれほど間違っていないと思う。

とはいえ「言われたことだけやっているコーダーはいなくなる」っていう意識が高いようで低い言説にはうんざりだし、「クライアントワークせよ」「SEたれ」も眉唾ものではないか。

それに、そんな悲観的な真面目な話ばかりじゃなくて、まず生産性上がって万歳とすべしだし、あとは何か自分なりの学習モデルを入れる余地を入れてもらって、萌えボイスを積んだ何かにしてくれるだけでかなり夢のある商品になると思う。声を認識してくれて、ChatGPT-4の言葉を話してくれてかつ声がカスタマイズできるスマートグラスが欲しい。ジャービスとか呼びかけながら、豪華なペンタブで対話しならアーキテクチャを書きあげてみたい。