オブジェクト指向か関数型プログラミングか

🎵(音符) とーしの、はーじめに、思ったー事ー。
年の初めに思ったこと。

現在広く普及している言語ですと、いわゆるオブジェクト指向言語ってことになるんじゃないでしょうか。

私はオブジェクト指向言語で育ってもう長いこといろんなオブジェクト指向言語と呼ばれるものを使ってきましたが、バグの原因がメンバー変数の使い方だったことが多いなと。正直「オブジェクト指向ってこれでいいの?!」と思うこと多々ありました。カプセル化は、確かにメンバ変数のスコープを狭めたけど、グローバル変数よりりは狭まったのであって、本質的には変数への状態保持を間違う可能性があるのは同じなのではと。まあ、カプセル化オブジェクト指向の一部ですがもちろんそれだけでは無いし。あとマルチスレッドなど、バグの温床になりやすいとこは他にもあるわけですが。

最近は「オブジェクト指向」ってあんまり聞かないですよね。Googleトレンドさんに聞いても、その傾向のようです。

でもいまだに、プロフェッショナルを目指す人が周りに薦められるのは、オブジェクト指向言語だったりするように思います。 私はそんな人たちにオブジェクト指向を学びなさいと積極的に薦める気にはなれず(もちろん業務で使う言語は学ばなくてはいけないんですが)、だからといって、じゃああんたは今学ぶべきは何なんだと言うんだ?、に何か一つの答えも持っていないなぁ...。だってこの世界、いろんなことがDog Yearですからね、って"Dog Year"って言葉がすでに古いよね。でも漠然と、関数型言語が普及した方が良いような...。いやそれは隣の芝生が青く見えるだけなのか...。

で、elmPureScript、などが気になるこの正月休みである。

ああ正月からとりとめ無く、あけましておめでとうございます。