どの様な話?
私の勤めているソフトウェア会社で、評価面談があり、その際に、
- お前はチャレンジしていない
と評されました。話をうかがうと、
- 関数型プログラミングを期成するのがチャレンジだ
という風に聞こえました。その頃、関数型は次世代技術として大流行りでしたし、次世代プログラミングに期成するだけの人も居た様に思います。
いくら何でもと思い、その上の管理職に文句を言うと、
- ビジネスはファクトに基づいている
- 関数型プログラミングは学術的評価を受けているが、お前の言っているのは、感想に過ぎない
と言われました。ファクトを得るため20年待ちました。
20年が経過し、現在時点で動作するプログラミングの観点からは、
現在時点で動作するプログラミングの観点からは、関数型プログラミングと言われている物の実例が見当たりません。
関数型プログラミング言語と主張する物はありますが、それの事例集を見ても普通のプログラミングとなんら変わりの無い物です。
そこから推察される事は、
- 当たり前のプログラミングに関数型という次世代の手法という名前をつける
- 関数型を標榜する人間がその源流となり、決定権を得る
という意図だと思います。他に解釈のしようがありません。
そのような党派的な議論を技術的な場所ですべきでは無いのかもしれませんが、最高に好意的に解釈してもそうとしか思えないのです。
20年が経過し、現在時点で純理論的なプログラミングの観点からは、
現在時点で純理論的なプログラミングの観点(実際に動かないとしても、理論的に良い見通しを得られるモデルが得られればヨシとする観点)からは、「制御の逆転」という主張があります。
その主張とは、
- 普通のプログラムでいう制御側(適時に値を得て渡す側)と、関数側(値を得て処理をする側)の重みを逆転させる(普通のプログラムでいう制御側を固定し軽視する)事で、
- テストがしやすくなると主張している
と、私は理解しています。
それは問題に対して、「横目いっぱいの視座から見て、問題が簡単になった(様に見える)」と言っているだけだと思います。
ミスリードを誘っているだけとしか私には思えません。また、当たり前の話ですが、関数を基礎としなければ、純理論的な議論が出来ない訳でも有りません。オブジェクトを基礎としたモナ何ちゃらだって成立するはずです。
もちろん今でも
もちろん今でも自分の言っている事は感想に過ぎないのかも知れません。死ぬまでにファクトにたどり着けないのかも知れません。
しかし、学術的評価を受けていた事も、のちに(訂正開始 2023/3/7 PM6) 嘘になる 解無しと分かる事はあり得ます。
嘘を 解が無いのに解の存在を証明せずに解が有るかの様に議論し 金を取る 様な振る舞いを (訂正終了)
ファクトを重んじる実業の世界に持ち込んだら契約不適合責任が生まれると思います。
(訂正)「嘘」と決め付けるのは悪い行いなので、訂正しました。なお、「解の存在証明」というのはテストの事かも知れません。
その線から一歩一歩突き詰めて行くより無いのでしょう。
結論
これからも少なくとも約1名は「関数型プログラミングである」事でプログラミング(の一側面)が嫌いになる人は存在し続ける事でしょう。