久しぶりにコードエディタを開く
つい先日、AIは凄いよね、プログラマはもうあかん みたいな記事を書いたわけですが、ちょうどそういう記事を書きながら、パヒュームのレシピをログしていけるアプリを作りたいと思い立ち、久々にVSコードを開いたのですが、なぜいきなり香水のレシピなのかというと、普段気に入って使っている Terre d'Hermes というパヒュームが切れてしまい、買おうと思ったのですが、高い。
有名な型番なので、安いコピー商品もたくさん出てるけど、やっぱり本物とは違うんですよね。
以前にパラワン島というところで、リゾートの運営をしていたんですが、かなりの田舎の漁村で、道も舗装されておらず、電気も一日5時間しか来ず、空港からボロボロのバスで4時間かけて山を超えて辿り着くといういわゆる僻地で、スピリチュアル界隈の方々や、ヒッピー崩れの旅行者が多く、そこで使う石鹸やシャンプーなんかのアメニティをローカルで採れるリソースを使って手作りしたら、エコでDIYで面白いやろなと思って、地元産のココナッツオイルやハーブなんかを使って、色々と作っていたのです。
特に、香りっていうのは凄く記憶の深い部分に保存され、ふとどこかで似たような香りを嗅ぐと、思い出と共にその当時の記憶が生々しく呼び戻されるという経験は皆さんもあると思う。
なので、ゲストルームのルームスプレーなど、かなり香りにこだわって作ってたんですよ。
タイとかに行くと、現地でしか見かけないような、珍しい花やハーブのエッセンシャルオイルなんかが沢山あって、行くたびに色々と買って帰った思い出。
で、エルメス高杉や、もう一度自分でブレンドしてみよとなったわけです。
香りの調合というのは、かなり細かい単位で、色々と配合を変えてみて、つまり、色々なバージョンを作って、一番良いものを見つけるために、それぞれのレシピをこまめにログしていかないといけない。
手書きで簡単なメモを取ってたんですが、やっぱり不便だし、無くす可能性も大なんで、計算機能のついたログ用アプリを自分用に作ろうと思ったわけです。
で、フロントはReact、バックエンドはFirebaseという構成で、そうなると、最近話題になってるAIベースエディタのFirebase Studioを使ったら、一瞬でできるんちゃうか と思って、始めたわけです。
が、あかんかった。
結局自分でコードを書く
まずはChatGPTで色々と仕様や要件、機能の洗い出しをやって、Firebase Studio用のプロンプトを生成してもらって、あとは任せたで! BOOOOOMMM!!!
全然まともに動かへん。
2時間くらいプロンプトベースでやってたのですが、ブラウザでプレビューすると、コンソールにエラーが色々と出てきて、なんか今までと変わらへん。
もし、自分が非プログラマだった場合、コラ、ポンコツ青たぬき、さっさと未来に帰れ と引き出しを投げつけているところである。
で、結局自分でコードを見て、どの辺がおかしいのかを見つけた上で、再度プロンプトに修正指示を出すみたいな感じで、2時間ほどやってみても中途半端なものにしかならなかったので、結局VSコードを立ち上げて、自分でターミナルコマンドからReactをクリエイトするという、元々のプログラムフローに帰結したのでした。
で、CoPilotを使い、ページを一つ一つ作りながら、色々と指示を出してバージョン0を1日くらいでデプロイできたのですが、これは非プログラマーでは無理ですわ。
まず、どのフレームワークで、バックエンドをどうするか、スタイリングは何を使うか(今回はMUIを使った)、色々と最初に決めないといけないけど、非プログラマーだと、そこからもう選ばれへん。
あと、CoPilotが生成してきたコードを読みながら、どこに何を加えるか、どのコードを別コンポーネントにするか、どれを外部フックにするかとか、Reactをわかっているから指示できるわけであって、非プログラマは無理である。
データベースのスキーマ構造も、拡張性を考慮したり、無駄なクエリを減らすように工夫したり、プログラムをある程度知らないと構築できないことばかりである。
久しぶりに簡単なアプリを作ってみて、これはやっぱりプログラムを勉強せんとAIは使いこなされへんわ と思ったのでした。
そもそも、作ったコードベースを保存してメンテする為にはGitの知識はいるし、npmを使って色々ライブラリやモジュールをインストールしたり、CLIやSDKを使うには、ターミナルコマンドもある程度知っておかないといけない。
多分、現状でAIを使う一番のアドバンテージは、記憶系、今までのように膨大なmethod、property、argumentとか、module由来の特殊な関数なんかを暗記する必要が無くなったこと。
複雑な正規表現や、配列から特定のデータを取り出したり、ドット区切りで出力したりみたいな細かい関数を覚えんでも良くなった。これは、かなり開発のストレスが減るんじゃないかと思う。
カンナの使い方を知らない宮大工
例えば、自分はPythonとかはほとんど触ったことないので、AIを使ってPythonメインのアプリを構築しようと思った時、まともにコードを読めない以上、無理やと思います。
また、何かLLMに関連した開発をしたい場合は、その関連知識がないと、どうやってものを作るのだろうか。
まず、使う言語をある程度理解して、その周辺のフレームワークやエコシステムを理解した上で、ようやくAIにプロンプトを打てるし、生成されたコードも読める。
あと、AIエージェントもプログラムに特化したものは、プロツール みたいなもので、それなりの職人じゃないとツールは使いこなせないんですよね。
そうなると、やっぱりAIがどんどん進化しても、プログラマは必要だと言わざる得ない。
むしろ、プロツールをしっかり使いこなせる、宮大工みたいなプログラマは全然将来明るいやんと思いました。
とりあえず完成したパヒュームレシピログアプリのデモ

