私たちが知っているプログラミングの終焉という、オライリーさんの書いた記事が話題になっていたので、今日はそれについて話そうと思います。よろしくお願いします。
よろしくお願いします。
オライリーさんは、かなり有名なオライリー本の創業者の方かな、この方が生きていること知らなかったので、ちょっと曖昧なんですけど、その方が書いた英語の記事ですね。
英題は、「The End of Programming as We Know It」っていう記事で、日本語に訳すと、私たちが知っているプログラミングの終焉という記事です。
お二人はこれ、読みましたか?
はい、全部日本語に翻訳して読みました。
長いからね。
そうね、ちょっと長かったね。
1セクションだけ頑張ろうと思って、うん、やめようって思いました。
これは日本語に訳しても相当長いので、日本語に訳して読んでも全然もう疲れると思います。
この記事の概要欄は、いつも通りリンクを放送の概要欄に貼っておくので、ぜひ、読みながら難しいかもなんですけど、読んでみてください。
最初にちょっと、記事の概要をちょっとみんなでおさらいしてみますかという感じですね。長いので。
このオライリーさんが最初にですね、いろんな人が、ソフトウェア開発者が近いうちにAIのせいで職を失うだろうって言ってるけど、そうも思わないんですよねっていうことを言ってます。
このオライリーさん的には、AIの発展っていうのはプログラミングの終わりじゃなくて、
今日、今私たちが知っているプログラミングの終わりであって、どうせこの後に来るのは新しいプログラミングの中身がやってくるから、開発者っていう人たちは職自身は失わないですよみたいなことを言ってましたね。
でも、それを主張を裏付けるいろいろな歴史的な背景を説明していて、結構僕的にはそこがすごい確かになぁと思うところが多かったんですよね。
例えば最初に出てくるのが、そもそも今までプログラマーと呼ばれていた人たちが歴史上何をしてきたのかっていうののおさらいが最初にあるんですよね。
僕知らなかったんですけど、世界で初めのプログラマーの人たちは、計算を実行するためにコンピューターを操作するんですけど、物理的な回路を操作していたらしいです。
教科書で見るような、多分ケーブルをつないだり外したりみたいな。それがプログラマーでしたと。
たぶんそれの画像がね、貼ってあるよね。
確かにこれなんか教科書で見た記録もあるような。
そんなような物理的な操作をする人がプログラマーと呼ばれていたんですけれども、結構その後は物理的な操作が必要なくなって、コンピューターの前でスイッチを入れ替えるだけで操作することができるようになりました。
それでスイッチごとに1ビットずつの入力ができるようになったので、それをする人たちがプログラマーと呼ばれました。
なるほどですね。その時点で物理的な操作をするプログラマーは消え去ったけれども、新しいプログラミングの中身を伴うプログラマーの人たちが登場していました。
その後はアセンブリ言語の登場で、そもそもバイナリコード自体を理解する必要がなくなったとか、ただそのアセンブリ言語自体もその後さらに高度な言語、フォートランとかコボルとか、その後にC++、Javaとかが出てきますけど、そういった高レベルのコンパイル言語によってさらにまた大きくやられましたと。
そんなような形で、その後ウェブの登場したり、デスクトップのコンパイルの変化もあったりということなんですけれども、そもそも今僕たちがやってるプログラマーという職業であっても、そのプログラマーの仕事の中身はどんどんどんどん変わっていってましたよっていう、そもそもねっていうことを言ってましたね。
それと同じようなことが来るんじゃないですかということをいろいろ言ってます。
そんなような形で歴史をおさらいしていて、他にも産業革命の例であったりとか、あといろいろもうちょっと最近のシリコンバレーの仕事内容とかを具体例に出しながら、とにかくプログラマー自体はなくならないけど、プログラミングの中身が変わりますよっていうことを言ってました。
ちょっと若干そんな感じですかね。
そんな感じだったと思う。
背景としてはそうだね、AIエージェントが登場した世界でっていう前提があるかな。
確かに、そこについてもちょっと触れておくと。
AIエージェントみたいな、AIとかAIエージェントが登場で、じゃあこれからどうやって変わるんですかっていうことも、そのオライリーさんの予測としていろいろな人の意見を例に挙げながらいろいろ語ってました。
それを語る上で、例に出されていた、この技術革新によって働く人たちの入れ替わりが起こりましたっていう例の一つとして挙げていたのが、産業革命前後の繊維向上での話、第一次産業革命時代の話を例に挙げてましたね。
これは別の方が研究していたものを取り上げてたんですけど。
産業革命の時っていろいろ繊維向上を例えてあげると言うと、熟練した職人さんがたくさんいたんですけれども、その手作業で熟練していた職人さんって、結構産業革命の後に機械を操作できる未熟練の労働者にとって変わられちゃいましたっていうことを言ってます。それはそうですよねっていう感じです。
その時に、それぞれ一人一人の労働者の賃金が結構低下しちゃいましたと。
確かにそうやって人間の入れ替わりが起こったんですけれども、その入れ替わりが起こった人たちのお給料がどれだけ上がったかの記録、どれだけ時間がかかったかについても調べてみると、結局それは機械が発展する前の見慣れない職人さんが熟練職人さんのお給料に達するまでのとほぼ同じ時間を必要としていたようなんですね。
だから結局、新しい技術の登場で新しい技術を使う人たちがそれまでのシニアな人たちを入れ替えることはあるんだけれども、結局その新しく入れ替わった世界線での熟練者になるためには結局同じだけの時間が必要だったらしいですよっていうことを例としても挙げていたりしました。
そんなようなことを例に挙げながら、AIエージェントを使った上でこれからどうなるかっていうのの予測としては、やっぱりそういうAIエージェントとか新しいものを使う人たちがそれを使わないシニアなエンジニアの人たちを入れ替えるっていうことは起こるんじゃないですかって言ってましたね。
言ってましたっけ?
うん。
言ってた気がする。
言ってたよ。
うん。
長すぎてちょっとこれはどこを話していたのかっていうのは苛まになるんですけど、とにかくそういうことを言っていました。
ただ、そうやって入れ替わったとしても、そのAIを使うことによって新たな需要が生まれてきて、需要が生まれるとさらにやって欲しいこと、なんだ需要が生まれると雇用のニーズも上がるんで、よりそういうものを使っていろんなことができる人たちの需要がどんどん上がってその入れ替わりが起こってくるはずですよ。
ただ、そういうところで新しくできることが増えると新しい需要も生まれてくるんで、さらにその上のレベルのことをより熟練した技術でできるようになるためのエンジニアがどんどん必要になってくるので、
全然AIが登場したからといって、プログラマーというかエンジニアというか、そうやって呼ばれる人たちがゼロになる、いなくなるっていうわけではなくて、新しい技術によって新しい技術の使い方が生まれるけども、新しい需要も生まれて、新しい技術の高みが生まれますよっていう感じでしたね。
ありがとうございます、まとめ。
最後はあれですね、これはプログラミングの終わりではありません。最新の再発明の始まりですっていうことをおっしゃってました。ちょっとまとめがうまくできた自信はないんですけれども、そういったような記事でしたってことで、3人でいろいろ感想を話していきたいなと思います。どうでしたか。
これは結構最初から、AI出たときから思ってたことは近くて、自分の中では。よくAIに仕事呼ばれそうみたいな話とかって、Xとか見ててもね、すごい毎日のように流れてきてたけど、プログラマーが仕事呼ばれるんじゃないかみたいな。
でも自分としては、働き方変えられないというか、生産性は絶対AI使った方が今後上がってると思うから、そういうAI使わずに頑固に働き方変えないで、そのままのやり方を固執すると多分環境に適応できずに仕事を奪われるというか、仕事が減ってっちゃうとかはあり得るかなと思ってたけど、
そこらへんの環境に適応して、今の知識をちゃんと生かして、AIとうまく付き合っていけば、むしろ仕事増えていったりとか、もっと利益とかで増やせるような方に持っていけるんじゃないかなって思ってたから、割と結構自分の中ではそのイメージと近しいかなっていう感じかなって思ってたかな、この記事見たときに。
なんか似た話を昔した気がする。
確かに、確かに。
カーソルの話をしてたときかな。
した気がするね。
結構なんかそれに近しい話も載っていて、なんか70%問題って言われているやつ。
言ってましたね。
Googleの、ChromeのUXの責任者である人が70%問題ってことを言っているらしくてですね。
なんか、そもそもいろんな人がAI行動生成ツールを使って、非プログラマーの人が素晴らしいデモを作成してアピールすると、結構すごいめちゃくちゃイノベイティブなプロダクトが生まれるそうな雰囲気を醸し出すんですけれども、
結局そういう人たちはコードをデバッグして、そのAIを正しい方向に導くための知識とか技術が不足しているんで、
複雑なプログラミングを作る場合、その最後の30%で結局行き詰まってしまうことがほとんどだよねっていうことを言っていて、
それをAIを使って、知識なしAIだけだと70%までしか完成が、到達しないので、それは70%問題と言っているらしいです。
これね、あるよね。
ちょっと俺が思っているのは、ウェブが発達して、Googleとかで検索したら個体に近しいものが出てくるみたいなので、
コピペエンジニアとかってよく言ったりするけど、そういうのが流行ったりしたときに、コピペエンジニアって結局60%か50%かの近しいものを出せるかもしれないけど、
結局それを後から改善しようとか、よりちょっと機能改善じゃないけど、プラスでもっとこういうふうにしたいとかなったときに、
やっぱなんか知識が足りなくてできなかったりとかするから、これに近しい。
Google検索がAIの検索に変わっただけで、結局知識がないとやっぱりあとちょっとが足りずに、
回答に手が届かずに、やっぱりそこの部分が足りずに、ビジネスやろうと思うと、ちょっと力が足りないってことになりうるのかなみたいなのは思ったりするよね、やっぱり。
うん。
いや、そうだな。知識は結局必要だなっていう感じは、何があってもしていて。
なんか僕が、なんだろう、話しながらも思ったのは、AIによって仕事が奪われるっていうのは、なんか半分正解だなとこれを読んでも思って、
まあね。
今の仕事は絶対奪われるなっていうのは、そうだと思うんですよね。
その、のぶちゃんが言ったように、あんまり勉強したくない、新しい技術にキャッチアップしたくない人たちは、もうそのままAIに置き換わるんだろうなと思うんですよね。
思うね、確かに。アプリケーションよりもデータ設計とか、ドメインとかそこら辺の知識みたいなのが結構大事になってくるかなっていうのはちょっと思ったりはしてて、
多分AIに使えるときに、結局ドメインをどんだけシステムチックにAIに使えられるかっていうのができないと、
多分いいコード出せないから、AIも。そこら辺のドメインモデリングじゃないけど、
そこら辺の知識が結構大事になってくるのかなって気は確かにする。
それはね、思うね。でもなんか、そう思いつつ私、プロンプトエンジニアリングって言葉ね、まだ馴染んでないんだよね。
その心は。
なんだろう、この感覚わかる人いませんか。
あんまりピンと聞いてないですね。
結構もう馴染んでる?プロンプトエンジニアリングって言葉に。
馴染んではないんだけど、なんだろうな。
違和感を覚えるまででもないというか、もちろん今のプロンプトエンジニアリングしている人たちは結構モデルごとに最適化してプロンプトを発行して操作するみたいな感じで、
モデルが出るごとに新しいプロンプトを考えなきゃみたいなことを言ってる人たちをよく見たりするし、
結局もうちょっとモデルが発達すれば、プロンプトでごちゃごちゃやっていたことって、
もうちょっと面倒見なくて良くなりそうだなというふうなことは考えつつも、
プロンプトエンジニアリングって言ってごちゃごちゃしないと、現状のモデルでパフォーマンスが出せないみたいなことは、
まあなんかわかるぐらいの。
本当。でも同じような感覚なんだよね、たぶん。今小倉くんが話してたように。
たぶんプロンプトをAIに伝える能力がプロンプトエンジニアリングに必要じゃんね。
で、前提としてのドメイン知識とかが必要なのは当たり前なんだけど、
その伝え方によってみたいな話が結構話題として出てくるじゃんね、プロンプトに。
あれってたぶん将来的、いわゆる今の短期的な必要な技術だと思うんですよ。
たぶんもっとモデルとかが発達していくと奪われる仕事なんですよね、長期的に見ると。
だからなんかプロンプトエンジニアリングって言葉ってたぶんすぐ消え去るだろうなって思っていて、
私はね、あんまりまだフィットしてないというか、
あんまり期待してない、そこの分野に対しては。
ほら言いたいことが分かった。
なるほどね、そういうことかそういうことか。
たぶん小倉くんが言ってた前提のモデル的な部分が発達したら、
よりそういうどんなプロンプトでもっていう、
ドメインの知識、いわゆる質問のコンテンツのコンテキストを強くする部分は大事だけど、
伝え方みたいなところにエンジニアリングが必要だみたいな論って、
たぶん今だからだなっていう感じで。
納得になってくる。
それはありそう。
でもなんかそれ、あれじゃない、それがその短期的に必要なくなりそうなAIを扱う技術だけど、
なんかなんだろうな、それがあるから別に、
これから長い間にわたってAIをどう使うかみたいな知識を磨かなくていいっていうわけでもないなみたいな。
軽い知識としてあればいいんじゃないぐらい、そこを一番の武器としてもすぐ消えるだろうなっていう感覚がある。
そう、だからプロンプトエンジニアリングが一番の武器とはならないと思うんですけど、
なんか僕は記事の内容と一致するかわかんないんですけど、
結局もう今後は全ての作業においてAIとともに行うは大前提になるっていうのは、
時間はかかるだろうけど来るだろうなと思っていて。
それはもう来てるんじゃないか。
でも今の時点でもエンジニアというかプログラマーだけにとっても、
まだそういうAI系のエディターって触ってないです、使ってないです、
ちょっと触ったけど別にみたいな人結構いると思うんですよね。
僕的には結構GitHubコパイロットはいろんな人が触ってると思っているんですけど、
結構タブによる保管便利だなっていう人はいろんな人が言ってると思うんですけど、
AIを前提とする作業の場合って、
AIを主役にまず動かせて人間がそれをサポートしてパフォーマンスを出すみたいなやり方がどんどん増えてくるのかなと思ってたりしてまして、
僕的には。
なんかこの記事を受けて、
web界隈で有名な美術さんもそんなような記事を書いていたんですけど、
AIに運転席を譲って人間はそれをサポートするみたいな。
なんかあれだよね結構、
もうピープルマネジメントに近いよね、そういう意味で言うと。
結構その考え方変えなきゃいけないじゃないですか。
美術さんの記事にも言ってたんですけど、
最初は結構うがった目で使い始めて、
なんか使えないじゃんと思ったりもしたんですけど、
結構その中には結構人間が無意識的にAIに制限かけている面もあったりしていたので、
AIを主役にするような働き方に変えてみると、
もう全然見えてくる世界が違ったみたいなことを美術さんとかも言ったりしていて、
なんていうんですかね、
結構そこは小手先のテクニックっていうか、
仕事の姿勢を変えないといけないなっていう感じがして。
なるほどね、向き合い方の面ね。
だから同じAIエディター、何でしたっけあれ、
カーソルとかクラインとかを例にとってみても、
それを今までの延長線上のエディターとして捉えて、
自分をAIがサポートしてくれるっていう視点で使うと、
なんかAIまだまだだなみたいな。
言うて世間が騒いでるほど全然使えないなって印象を持つと思うんですけども、
AIファーストというか、今今の時点ではどっこいどっこいかもしれないんですけれども、
5年後とか10年後には絶対当たり前になっているであろう、
AIを主役にした動き方という仕事の姿勢に変えてみると、
全然見えてくるものが違う。
そこの視点とさっき言ってたプロンプトエンジニアリングって
短期的に入れなくなるから別にしょうもないとか言っちゃったら
怒られるかもしれないですけど、
今は勉強しなくてもいいかなっていうのが、
言語がうまくできていないんですけど、
同じAIに対する向き合い方でも、
そういう短期的にAIの力を最大限生かして仕事に生かす
というAIの向き合い方と、
そもそもAIを最初の主役において自分がサポートしようという、
言いたいことが言語がよく分からないんですけど、
AI使えないよねって言ってる人たちは、
その姿勢を変えずに、
すぐ必要となくなりそうなコツ先のテクニックを
しょうもないという目で見て、
それでもって別にAIそこまでじゃないって言ってる人も
いるっちゃいるかなと思っていて、
僕的にはそういう人たちが、
最初の記事にもあったような、
新しい技術を使いこなす未熟練の職人に置き換わる人たちのことなんだろうなと思いましたとさ。
ちょっとプロンプトエンジニアリングの話と結びついてるかちょっと分からなかったけど、
言いたいことは伝わったわ。
向き合い方だよね。プロンプトエンジニアリングは、
AIとの向き合い方をテクニックって呼んでるけど、
そもそも姿勢だけ変えればいいんじゃんねっていう話だと思うんだよ、
大倉くんが言ってることって。
テクニックと姿勢の話が結構ごっちゃになっている人たちいるなという。
そうだよね。
私は一番大事なのは、
前提としての向き合い方、姿勢の部分なのかなって思ってて、
次として一部のテクニック扱い方っていうのが必要になってくるけど、
向き合い方変わった上でそのテクニックの部分は、
だんだんと時代によって薄れていく部分だと思うから、
向き合い方だけまず変えればいいかなっていうのが私の意見かな。
しかもカーソルとかの指示、
そこまでプロンプトエンジニアリングせずとももうすでに動いてくれるところとかも、
コードベースで、
そもそものコードを見て動いてくれるところがあるから、
浅いプロンプトでも、
わりかしちゃんと指示通りに動いてくれるところはもうすでにできてるなって印象が直近思うから、
姿勢が一番大事なのかなっていうのはすごい思うね。
ITトリオ、本当さ、
AIさ、俺あんまり使わない方だったんだけど、
そうだよね。前話したときそうだったよね。カーソル否定派みたいな。
2年前くらいに使ってて、あんまり使えないなと思って使ってなかったのもあるんだけど、
前の放送とかもあったりとか、結構最近よく使えるようになってきたんだけど、
2年前と比べてもちょっと変わりまくってるね。すごいわ。
出てくるのが違いすぎる。
私たちが多分コパイロットとかカーソルとか話してた時代よりも、
そういうAIエディターであったりとかめちゃくちゃ増えてきたし、
そもそものコパイロットもカーソルも進化がすごいよね、そもそもの。
本当にすごい。
なんかどんどん日に日に変わっていくから、
このスピードでこいつらも変わっていくなら、
私たちってもっと早くプロダクトを生み出せるよねとか思ったりもしたい。
本当本当本当。
なんかそれで言うと、これは結構AIと共に仕事をするツールというかソフトウェアの
結構完成に近いというか、結構かなり進んでいるものたちが
そういうAIエディターかなっていう感じもしていて。
ただやっぱその現状であったとしても、結構そもそもエディター自体が
いろんなコンテキストをAI自体に渡してくれたりとか、
裏で動いているものがあるのでうまく動くっていう面が大きいと思うんですよね。
ただなんか今の現状でも多分将来的にも渡ってもそうだと思うんですけれども、
指示を出すだけじゃあんまり最後の10%、20%の完成まで持っていけないというシーンは多々あると思っていて。
そういったときにやっぱり自分の手でそれまでの出力を見直して間違いを見つけられるかとか、
逆にそうやって動いているAIソフトウェアの背景の仕組みを理解して、
その仕組みを理解した上でより良いAIのより良いアウトプットを導き出せる方法を考える必要があるみたいなのはあると思っていて。
そこの辺がまだ小さいけど、新しいプログラマーに必要なスキルの種がそこにあるのかなみたいな。
もちろん変わっていくと思うんですけれども、その詳細の中身は。
だから使わなきゃというか、そうやって仕事の中身って変わっていくんだなみたいな。
そうね。
記事でもあったけど、古い技術は完全にいらなくなることはない。
古い技術は有用だけれども必須ではなくなるっていうようなフレーズがあったと思うんですけれども、
それはかなり的を得ているのかなと思って。
ウェブ開発、最近のウェブアプリ開発を例に挙げてみると、
ウェブアプリだとシングルページアプリケーションのSPAでリアクトとかビューとかスベルトとかを使って、
今だとアプリをウェブ上で開発するとは思うんですけれども、
SPAの前に何があったかというと、
そもそもウェブページがあって、HTML、CSS、JavaScriptを生で書く時代があって、JQueryがあって、今っていう感じと思うんですけど、
そこら辺から今のSPA時代に移った時にその辺りの生のJavaScriptの知識が完全にいらなくなったかと言われると、そういうわけではなくて、
もちろん詳細なウェブページを操作するためのJavaScriptのAPIとかを覚える必要はなくなったんだけれども、
今使われているSPAのライブラリが動かなくなった時に、自分でデバッグしなきゃいけない時に何で動かないかをよく知るためには、
やっぱりその辺りのちょっと一つ前の時代の知識が持っていないとデバッグが厳しかったりとかするっていう面もあるかなと思っていまして。
不動な知識と前提となる不動、いわゆる時代の流れに残され続ける前提知識みたいなところと、
コードの書き方とか時代によって変化していくものと、おそらくあると思ってて、
その前提となる、それこそネットワークの仕組みとか、そういうところの知識がより良いものを作るために判断、
エンジニアが判断する機会が増えると思うから、運転バッグの知識しかり、何が不動で、何が残り続けて何が消えていくかみたいなところはちょっと頭の片隅に置いていってもいいのかなと思ったりもするね。
そうね。それは全部勉強しなきゃいけないっていうわけでもないと思うんですけど、
別に今僕たちは多分プログラミング日々書いていて、ソフトウェア開発してると思うんですけど、別にOSのカーネルの仕組みとか別にそんな理解してないと思いますし、
ネットワークの知識も多少あれども、実際なんか自分たちのラプトップ、ノートパソコンからネットワークにつながるときに具体的にどんなプログラムが動いているかとかは知らない、きっと。
でもコンセプトは知ってる。もし必要になったら勉強する姿勢を残しているみたいな。
そういう態度を取らなきゃいけない部分がたくさん出てくるのかなみたいな。
多分AIによっていろいろ仕事の幅というか、やって欲しいことの幅が広がるので、新しく使う知識は増えるんですけれども、動かなくなったときに自分でそこに突っ込んでいって問題を解決するための姿勢というか、