はじめに - オチはありません……
生成AIすごい便利です。
ソフトウェアの自分史から見たときにAIがどう見えるかのポエムです。
1.ちょっとコンパイラが怪しかった時代
C言語が主流で、ソースコードをコンパイルしてアセンブラをだす。
でもコンパイラ自体の完成度の低さから、出てくるアセンブラが毎回ちょっとだけ怪しいんですよね……。
a = 1;
これだけでも、ちゃんと a に 1 が入ったことをいちいち確認する。
今はそんなこと確認しませんよね? a に 1 が入らないなんてことないので。
でもそれを確認する必要があったし、そのためには吐き出されたアセンブラを直接確認する必要もありました。
2. コンパイラが完璧に動く時代になる
すぐにコンパイラの不具合なんて気にならない時代に!
そうなると気にするのはいわゆるC言語とかのソースコードだけです。
ご年配の方は、アセンブラも読めないなんて…… と言い出す
若者は、コンパイラのバグなんて知らん、って言いだす
3.外部ライブラリやフレームワークを使い始める
まだまだフレームワークとかライブラリとかは標準のものを使うことが多い時代です。
外部のライブラリとか使おうとすると 「そんな実装もわからないライブラリ使うの?」 みたいになる。
場合によっては memset 遅いよね、自作しないと、みたいな。
4.外部ライブラリやオープンソースが当たり前に
いちいち外部ライブラリの実装なんて確認しないで(ライセンスとかは確認するけど)当たり前に使うようになる。便利だからね。
5.エディターとかが賢くなりはじめる
外部ライブラリや外部フレームワークが当たり前になってくるのにあわせてエディター(開発環境)がかしこくなってきます。
ちょうどオブジェクト指向とかも流行ってくるころ。
オブジェクトを書くとメソッドの候補が出てくるようにもなります。
この時代には 「ちゃんと仕様みたほうがいいよ?」「検索とか候補だけに頼ってるとソースコードの全体構成がわからなくなるよ?」 という意見が出始めます。
例えば、「変数名」「関数名」などでコード全体から検索をかける人が増えてくる。
ネームスペースのような考えが増えてくるので単なる検索では間違ったものを見つける可能性も増えてくる。エラーメッセージを読まずにコピペする人も増えてくる。
6.エディターがもっともっと賢くなってくる
エディターがソフトウェアの構造なども理解して、右クリックして関数の定義場所にジャンプとかもできるようになる。人が考えることが減ってきた。
7.(ちょっと時代がとんで)エディターがもっともっともっと賢く
この辺りはもうみなさんご存じの生成AIとかの時代に……
ソースコードを書いているそばからAIがレコメンドをしてくる。
なんならチャットでお願いしたらゼロからでもコードを作ってくれるし、ソースコードの構成すらAIに聞けば答えてくれる。
で、もちろんこの時代には 「AIに頼ってばかりじゃなくちゃんとコード自力で書けないとだめだよ」「AIが書いたコードを信じないで自分でレビューしてね」 と言い出す人は出てくる。
あれ? この構図って……ソースコードだけ見てちゃだめだよアセンブラも見ないと、と同じ構図ですね……
8.そして(オチありません)
という歴史をみてきたので、AIが出すコードもそのうち完璧になって誰も疑わなくなるんだろうなあと思っています。
アセンブラが正義の時代からソースコードが正義になったように。
おそらくプロンプトの方が正義になって、ソースコードは毎回新規で出力される時代になってくるんだろうなあ、とか。
もちろんコンパイラとかが「ロジック/アルゴリズム」で作られたもので、AIは「確率論」で作られたものだから話は違う!みたいな異論もあるのですが、それもまあ時間の問題かと。今のAIは「1+1」を確率で間違えないと思うので……。
今は本当に過渡期でとりあえずこの変化は本当に「楽しい」変化なので、ちゃんと受け入れてしばらく流されてみたいと思ってます。
ポエムおわりです。