いものやま。

雑多な知識の寄せ集め

オブジェクト指向と関数型の話。

「たまにはLTやろうぜ」というイベントがあったので参加してLTしてきた。

スライドはこちら:

なお、前回の記事(『オブジェクト脳への一歩』というLTをしてみた。 - いものやま。)で、「そもそも関数型と対比されるべきは手続き型で、オブジェクト指向ではない」ということを書いたけど、副作用への対処という部分に注目すると、オブジェクト指向と関数型ではまったく逆のアプローチをとっていると思っていて、その部分については比較して考えることもできる。 まぁ、結論としては「関数型はオブジェクト指向のサブシステムにしかなりえない」ということで、やはりオブジェクト指向が上位にある考え方だとなるんだけど。

ちなみに、なんでこの話をしようと思ったのかというと、『ミノ駆動本』こと『良いコード/悪いコードで学ぶ設計入門』を読んでて、関数型に毒されすぎだよなと思ったから。

この本、今めっちゃ売れてるらしく、自分も読んだんだけど、とにかくイミュータブル推しで、でもそれってオブジェクト指向的な考え方とはちょっとズレてる。 もちろん、変わらないものは不変であるべきなんだけど、変わるものまで不変にしてしまうのは、ちょっとやりすぎ。。。 それはデータの変更に対する責務を外部に押し付けてるだけで、外側はツラいんだよなぁ。 関数型はそうするしかないからそうしてるのであって、オブジェクト指向ではオブジェクト指向らしい対処法があるのだから、ちょっと考えてほしいところ。 この本がやたら売れてるだけに、なんでもかんでもイミュータブルの民が生まれなければいいんだけど。。。

今日はここまで!