AIとAIでない世界
こんな時間に目が覚めてしまった。
私は普段から様々なネットニュースであったり、技術的な投稿を目にしている。YouTubeのビデオも含めて。
やはり大きな変化としてはChatGPTやそのようなLLMのサービスで生成したであろう画像を目にする機会はとても増えた。
私もその例に漏れず同じことをしている。
自分のブログに毎回ほぼ手間をかけずにサムネイル画像を添付できるようになったことは革命的である。
それまでのブログではなんとなく文字だけの投稿が圧倒的だった。
どんなにCSSに変更を加えても、サムネイル画像があるとないとではずいぶん印象は変わってみえてくる。
何かしら技術的な投稿であればなおよいのだが、今回のようなほぼ何もないところから書き始めたときは抽象的な投稿になってしまうので毎回サムネイルを用意できるわけではない。
そのためこのブログも厳密にはすべての投稿にサムネイルをもたせてはまだいないのだが、実質すべてを埋めることは容易である。ただ今はそれをしていないだけである。
AIによっていいなと思ったことはそういった自分のスキルの限界、あるいは自分の未開拓の領域に気軽に足を踏み入れられるようになったことは大きいと思う。
イラストを「仕事」にしている人はAIの登場に怒り狂っているかもしれないのだが、AIの生成によってイラストの構図のインスピレーションを得たりだとか、今まで完成しきれなかったワークフローを1日かけていたものを10分に短縮すればよいのではないのかなと思う。
少なくとも単にChatGPTにプロンプトを投げているだけで生成されたイラストは拡大すると粗が目立つし、まだ目視で判別できる。
もしイラストの仕事に誇りを持っていて、仕事として残したいのであればAIを駆使してクライアントの要求どおりに量産あるいはAIではだせない品質を追求するか。あるいはYouTubeのショート動画で出てくるビデオのようにデジタル媒体をやめてアナログの媒体に鞍替えをすべきである。
ご多分に漏れずプログラマーもいずれ廃業というリスクはあるが、私はClaude Codeでプログラミングをしていてもそうは感じない。それはCursorだろうがGeminiだろうが変わらないと思う。それどころかCopilotがリリースされた頃や、AlphaZeroがチェスの世界チャンピオンを破った頃から変わっていない。
現実世界ではいずれのAIツールが人間のプログラマのように、既存機能を破壊せずにPMの要求を理解してあたらしく機能を追加できるほど賢くはないからだ。1
けれども私は最近Goを始めRustやPython、JavaもちろんRubyも含めて様々なプログラミングを試すことができるようになった。
これは純粋に私のキャリアでは考えられなかった変化である。
もちろん仕事として請けられるほどのレベルにはまだ至ってないかもしれないが、少なくともいろんな物事のスタート地点にはるかに立ちやすくなった。
であればAIによってできなくなることを嘆くよりは、AIでできるようになったことを増やしていくべきではないだろうか。
私は自家用車、あるいは商用車などあらゆる車が根本的にすべてAIがすべて制御すべき世界を望んでいる。人間はよほどのことがない限りもうハンドルを握る必要がなくなる世界が特に好ましい。
車は生活に必要なものだ。だから基本的には一般的な成人は大半が運転免許証を取得して車を運転するようになる。
しかし個々の人間の運転技術はピンキリである。よほどのことがない限り運転そのものができない人は存在しないだが、交通ルールを遵守することができない人もいれば不注意で事故を起こしてしまう人もいるだろう。
私もハンドルを握らなければならないときはやはり緊張はする。ハンドルを握ることで様々な責任を伴うからだ。
これがもし運転という概念が根っこから消滅してしまえば、車はその空間へ移動するための手段として特化してしまえば高齢化に伴って免許を返納する必要もなくなるし、運転による事故もずっと減ると思うし、交通渋滞も今よりずっと緩和されるだろう。
車そのものに対する愛着がある人は多いので、運転そのものをなくしてしまおうはかなり尖った意見ではあるのだが私はAIが生きている上であらゆるリスクをカバーしてくれるような世界を望んでいる。
木や炭、あるいはライターを使って火を扱うことよりも、ガスコンロを使うことはずっと日常的でかつ安全に思える。
ここまではAIのよい面を書いたのだが、今日の投稿を書こうと思ったきっかけはやはり何かにつけてAIが話題に出てくるようになって、仕事そのものの考え方が随分変わってしまったように思える。
例えばVibe Codingなんかはまさにそうである。先程はこれによってプログラミングの敷居は下がったことのメリットを述べた。
ただは本来AIという付加価値を加える必要のないものにまで過剰にAIが加わることにより、物事がやっかいになってしまっていると思うのだ。
たとえばv0のようなサービスを使って誰でもReactやNext.jsのアプリケーションを作れるようになったとしよう。これ自体は革命的である。
それからPrismaやsupabaseでデータベースの機能を持たせて実際のアプリケーションをデプロイしたとしよう。
各機能のつなぎこみはClaude Codeなどが担当したとする。
試行錯誤のすえ、おめでとう。これで晴れてアプリケーションを世に送り出すことに成功しました。
ただ考えてみてほしい。
これがどのような機能をもつアプリケーションであるかにせよ、やっていることはHerokuにRailsアプリケーションをデプロイした頃、あるいはLAMPサーバーにPHPファイルを置いたことから本質的にやってることは変わらないと思える。2
かなり乱暴なまとめ方であるが、大半のWeb開発に従事する人々は規模の大小こそあれ、このシンプルなオペレーションにあれこれバリエーションを加えているだけに過ぎない。
この進化そのものはReactになって顕著になったと感じている。
まずはこのページを見ていただいたい。3
Just fucking use HTML
(ChatGPTによると)この投稿は、現代のWeb開発が過剰に複雑化しすぎており、HTMLだけで十分なケースにも関わらず、無駄にフレームワークを導入している風潮を批判する内容である。
わざわざこのページのためだけにドメインを取得している気合を感じる。
HTMLは軽量で信頼性が高い フレームワークと違い、HTMLは非常に軽く、高速に読み込まれる。 特別なランタイムやビルド不要。動作が安定していて壊れにくい。
HTMLのシンプルさは武器である 何十年も使われてきた基本技術で、どんな環境でも動く。 「クリックできるボタン」「フォーム」「レイアウト」など、基本的なUI要素はすべてHTMLで実現可能。
フレームワークは過剰な装備になりがち 小規模なプロジェクトや静的なサイトに、Reactなどの大規模フレームワークは不要。 フレームワークに依存すると、ビルド、デプロイ、保守、パフォーマンスチューニングが複雑になる。
「HTMLは古い」と決めつけるのは間違い HTMLは現在も現役で進化しており、
<dialog>
や<details>
などのインタラクティブな要素も標準搭載されている。 JavaScriptを使わずにできることが増えてきている。
導入・サポートコストが極めて低い HTMLは「デプロイが簡単」「保守が不要」「互換性が高い」などのメリットがある。 高価なサポートやCI/CDパイプラインを必要とせず、ドラッグ&ドロップで公開可能。
JUST FUCKING USE REACT
これは上記のページに対する反論である。こちらもドメインを取得しているはりきりぶりである。
コンポーネントの再利用ができる 一度作れば、何度も使いまわせる。更新も一か所で済む。
UIの更新が自動化される データの変化に応じて、必要な部分だけを効率的に更新してくれる。
アクセシビリティの配慮がしやすい 複雑なUIでも、きちんと対応したコンポーネントを使いまわせる。
開発体験が圧倒的に良い モジュールの更新、型安全性、豊富なライブラリなど、開発効率が段違い。
パフォーマンスは「体感速度」が大事 単に初回表示が速いだけでなく、操作全体がスムーズに感じられるように設計できる。
それぞれお互いの長所を比較してみると、HTMLはできることに対して主張しているのに対して、Reactはできるようになったことのみを主張している。
正直なところこれらはReactありきの主観的な主張にしか感じられない。
これはデスクトップは重要でも書いた気がするが、ReactはJavaScriptの技術に依存しているので古いブラウザとの互換性をはっきり切り捨てている。
私はInternet Explorer 6とか5の頃のCSSの辛さは今でも覚えているし、IEのJScriptで開発はしていないけれどもjQueryには随分苦しめられてきた。
なんでもかんでも古いものを手放しで称賛することはないけれども、あの当時の技術は使い方さえ間違えなければそれで十分であることも多かったように感じる。いつの時代もオーバーエンジニアリングは起こりうる。
大規模なスケーリングの技術はそれはそれとして必要である。Netflixは現在Javaを採用しているようだが、すべてのアプリケーションがNetflixのアーキテクチャである必要はない。
SaaSの会社も結局はクラウド化を進めなければひょっとしたら自社のオンプレサーバーではなくMac Miniや最近のミニPCにコンテナ化したRailsのアプリケーションをデプロイしてプライベートLANでアクセスできれば事足りることもあるのではないだろうか。4
Just fucking use HTMLではあえてCSSを扱っていないのだが、Casioの電卓でも見れるということを主張したいだけであって、CSSの修飾をしてはいけないといっているわけではない。
Google Chromeはむしろユーザーに自社のブラウザを更新させるためかはわからないのだが、最近になってCSSでif()
関数を使えるようにしたという投稿をだした。5
はっきりいってただのCSSにif
文をサポートすることは馬鹿げている。
長らくHTMLは構造、CSSは修飾、JSは機能という絶対的な指標があったのに、それが根底から覆されようとしているからだ。
本来変えなくてもよいものを変えることで優位性が高まったと主張しているのであれば、それはすべて幻想に過ぎない。
つまりAIもさまざまなAIモデルやサービスが登場するようになったけれども、そもそも単なる見栄えのためだけにReactで作る必要のないものを作り出すためにAIサービスを契約するくらいなら最初からHTML、CSS、画像といった既存の技術を使うだけでよいのではないだろうか。
ReactのムーブとAIのムーブは非常に親和性が高く感じている。
これからも企業はAIのベンチマーク性能をあげたり、ソフトの面でもハードの面でも製品の開発を続けていくと思う。
ただそのために莫大な電気を消費しているというニュースを見るのも非常にバカバカしく感じるし、気候変動によって毎年過度な暑さを感じるようになったのは果たして陰謀なのかあるいはそうでないのかは断言できないものの先述のReactに近いものを感じざるをえない。
JavaScriptないしReactの登場はとてもエキサイティングに感じたし、実際開発体験がよいことは否定できない。
だが、HTTP POSTに唯一必要なのは<form>
タグだけである。
JavaScriptがなくてもファイルはアップロードできるし、逆に言えばJavaScriptが動かせないだけでページが動かせないことは論外である。
AIの登場によって単純作業が減ったことでよくなったこととわるくなったことがある。ここでは詳細に触れないが、大企業が積極的に雇用を削ってまで推し進めることなのかどうかは甚だ疑問ではある。
そういう点でいえばレガシーな方法に執着して業務改善に全く興味のない上司や職場に対して不満がでないかというとそんなことはないのだが、考えようによってはあえて非効率な仕事を変えないことも仕事という意味においては重要なことがあるのかもしれない。
最終的にこの投稿の落とし所がむずかしくなってはいるのだが、何事もバランスが重要であるということだろう。
世界はバイナリではなく、1
と0
の間をたえず変化を繰り返しながら、よいところはよい、わるいところはわるいと判断できるような自分でいたい。