見出し画像

プログラムは多分EUCの領域から変わっていく

日曜日の記事は

なんとなく自分の好きなことを書いていこうかと思っています。
IT系のネタが中心になるだろうとは思いますが、一応ノンジャンルです。

本日のテーマは

GPTs とかを見ながら、自分が思ったこと。多分、プログラムに対する考え方が変わっていくだろうということを書いていきます。
もちろん、私が感じただけなので、その通りになるわけでは決してありません。その辺は、ご了承ください。

GPTs を見て感じたこと

それは非常にシンプル。あー、多分これからはこうやってもんやりとプログラムしていくという発想が広まってくるんだろうなーってことです。
これは、今までのプログラム言語じゃ絶対に無理な世界です。一つでも失敗したら NG という厳密な世界で色々な作業をするのがコンピュータプログラムの世界でした。まぁ、NG=バグなんですけどね。
ここを曖昧にしようとすると、アイアイを解釈するという面倒くさい仕組みが必要だから実際には無理なんだろうなーって思っていました。
でも、GPTs を見て、それが出来るようになってきたんだなーって感覚になってきました。

プログラムって厳密でないといかんの?

うん、ずっとそう思っていました。でも、自分で書く文章とかは全然そうじゃないですよね。日常生活で使っている言葉の自由度はプログラムに比べて俄然高いのです。だから、プログラムを書くなら、この差をうまく処理できることが出来るスキルを身につけないといけない。そう思っていました。でも、なんか GPTs 見て、いや、曖昧でも良いんじゃないの?ってことを思うように気分が変わりました。
まぁ、仕様とかの段階ではプログラムでやりたいことなんか全然曖昧なんですよね。それがシステムを作っていく途中でどんどん厳密になっていき、最終的には曖昧さがなくなる。てか、残っていたら矛盾が起きるのでバグ。こういう曖昧差をなくしていくという工程がシステム開発の裏にこっそりとあるんですよ。
この初期の曖昧な状況でシステムが出来たら嬉しいのは当然。で、それが実は出来るんじゃないの?ってことを GPTs が示してくれたような気がしているのです。

厳密でないプログラムって?

まぁ、プログラムを詳細化していくときに色々な項目を決めていくんだけど、その時に2ケースの詳細化がある。

  1. 設定の自由度が結構あるんだけど仕方がないから決めちゃうケース

  2. そもそも値を具体的に決めないと動かないケース
    正直、2) はどうにもならないけど1)は曖昧に決めればいいのです。大まかで。だから、1) の割合が多くなればなるほど実は厳密であることの必要性は下がってくる。
    GPTs って、曖昧な指示を出すと動くんですよね。その曖昧な指示は 1) の部分だと思っています。だから、厳密に書かなくっても大丈夫なんだなーと自分なりの理解をしています。
    違っているかも。まぁ、いいか。

正直、2 はどうにもならないけど 1 は曖昧に決めればいいのです。大まかで。だから、1 の割合が多くなればなるほど実は厳密であることの必要性は下がってくる。GPTs って、曖昧な指示を出すと動くんですよね。その曖昧な指示は 1 の部分だと思っています。だから、厳密に書かなくっても大丈夫なんだなーと自分なりの理解をしています。違っているかも。まぁ、いいか。

だとするとどうなる?

自由度を許容するのですよ。それで十分。
例えば、全ての値がばらつくという前提で数値計算を組むようなイメージ。int を平均値+分散で持つことで、ばらつき込みの計算をするようなイメージですね。
全ての数値のばらつきを加味した上で全ての計算ができるのであれば、曖昧さを前面に出した数値計算が出来ますよね。ま、これを実際にやるのはかなりしんどいのでアイデアがあっても実行しているケースは見かけませんが。
それが数式以外でもできるのかなと思えば、そりゃ出来るような気がする。
曖昧な指示ってどうすればいいの?って悩むのですが、最近のLLMが示してくれました。GPTs の指示は日本語でそれを意味集合にばらしているはず。その意味は既に曖昧。曖昧な指示に対して大体こうやって返答するというバイアスを掛けてやれば、意味から文章を生成するときに偏りが生まれるってあたりが多分裏で動いていることをすげーざっくりと表現したもの。そんなに外していないと思う。で、生成するものが自然言語なのか、プログラムなのか、あるいは画像なのか。ま、そう考えると、しんどいけどやってできんでもないのかな?って気分になる。
その時は、プログラムを生成するんじゃなくって、それ用のプログラム言語を出力するんでしょうね。人間が読む必要も大してないんで。そもそも、C# とかに出力するなんてこと自体が無駄な処理でしかない。だから、従来型の言語である必要性は全くない。

曖昧なプログラムと厳密なプログラムは似ているかもしれないけど別物だと思う

多分、今まで曖昧なのと厳密なのが渾然一体となっていた。それが分化していくんだと思う。多分、混ぜにくいものをむりやり混ぜていたんだから、それが分離していくイメージ。
厳密に書かないといけないところは、これから先もずーっと厳密に書くと思う。そして、そこは当面の間は人間が頑張らないと行けない分野として残る。
そして、曖昧で良いところは、曖昧に指示すれば良いじゃんって言う形で今とは全然違うプログラムになると思う。ここは、新しい物に置き換わっていく。
これが、この先に待っている変化かなーって私は思っている。そうなると、全く新しい考え方とかが必要になってくる。だって、曖昧であることが前提のプログラム、ほとんど見かけないじゃん。

そして、EUCから変わる理由

簡単です。多分、EUC の方が曖昧な部分が多くあると思うので。あと、専門家でも無い人が中心となって行う作業なので。もちろん、程度の問題はある。でも、どうにもEUCでごっつい計算をガリガリやるってのはイメージしにくい。それよか、かゆいところに手が届くようにしたいケースの方が多いというのが私のイメージ。かゆいところってそんなに明確じゃないよね。ボタンの位置が1pixずれたらいやなんて事なんてないし。計算式以外は曖昧で良いぐらいの感覚。
あ、もちろん厳密でないといけないところは計算式だけじゃないけどね。認証系とかDBとか他にもいっぱいあるよ。でも、そういうところは EUC で触りたいところとはちょっとちがうイメージってだけ。
つなぎが難しいけど、多分何とかなるんだと思う。

私のスタンス

まぁ、何かくるという心構えと、頭を柔らかくし続けることだけですよ。頭
が硬いと変化に対応できないから、そうならないようにし続けるだけ。
頭が硬くなるってのは過学習だから、それを起こさないために定期的に新しいデータを入れて過学習を抑止していますというとわかる人にはわかると思う。ていうか、わかる人だけわかって!な文章だな。

ま、こんな感じで今日の戯れ言はここまで。どんなハッシュタグ付けて良いのか判らんかった。

いいなと思ったら応援しよう!