仮説に仮説を重ねますが...
前回の「根拠の無いイノベーションの主張 2」で言い忘れていましたが、
仮説として、
- データを時系列順に処理するのは古く、分散処理で、非同期処理が新しい
と言う主張こそが、私が言っている「形而上関数型プログラミング(今までのどの手法より素晴らしい👍)」そのものでは無いかと言う事です。
- データを時系列順に処理するのは古く、分散処理で、非同期処理が新しい
と言う手法なら、当然(副作用を使わない)関数型になるでしょうし、もし実現するなら、今までのどの手法より素晴らしくなってもおかしく有りません。
ただ、それの裏付けとなるハードウェアに更新するのが禁止的に高価なだけです。
20年、捗々しい結果が出ないのに、素晴らしい何かをあげつらって、それを祭り上げる立場になろうとするのは、学術的では無い何かです。
それなら形而下関数型プログラミングはどうか?
それなら私の言っている「形而下関数型プログラミング(大データに絡みつく様に関数が実行され、大データの読み書き(副作用) を本質的な実行内容とする)」ならどうでしょうか?
これは私の意見ではオブジェクト指向で書いても、なんら変わりないと思います。
オブジェクト指向で良いと思います。
何で形而下関数型プログラミングが良いのか?
もし、オブジェクト指向で、
- オブジェクトを単一責務しなければならないと言われるのが嫌だ
とするならば、それは何の障害にもなりません。
もしオブジェクト指向が廃れ、形而下関数型プログラミングが良いと言う思潮が大勢を占めた場合、
- 関数を単一責務にしなければならないと言われる
のは確実ですし、曖昧さを許容するオブジェクトに比べ、より厳密な関数の責務を単一にしなければならない事は、より事態が深刻になる事を意味するからです。
「責務」?
要するに、
- プログラムの部分(オブジェクトだろうと関数だろうと)に(人間の都合の良い意味での)解釈を付けたり
する事が一般的に可能か? 全く検証されていない訳です。
- オブジェクトだろうと関数だろうと、
- その名前として相応しい文字数内で、
- 責務を表す名前をつける事が
- 一般的に可能なのか?
と言う事です。
一般的に可能であると保証されずに、しかしながらそれをしろと言われるのが嫌なのは完全に理解出来ます。私も嫌です。
常にその様な名前を付ける事が可能か検証されていないのに、付けろと言うのは、付けろと言う方が間違っています。
(これも根拠の無いイノベーションの主張の一種だと思います。)
無理やり、妥協で名前を付けても、後から来た人は妥協の結果の名前を、字義通り受け取って、単一になっていないじゃないかと言うに決まっています。
単一の責務としたと主張しても、いくらでも違うと言える様な、プログラムの部分が存在すると思います。
結論
これからも「根拠の無いイノベーションの主張」の巻き添えでプログラミングが嫌いになる人は存在し続けることでしょう。