Abstract While programmers tend to divide themselves into communities along language or paradigm lines, the reality is that the OO and FP communities have a ...
I like this because it had moments of uncomfortableness. I’m just the other side of this where I like FP more than I like OO, but I’ve come to the same conclusion. Hybrid OO and FP is the future, most languages are embracing it, but the communities are somehow still ideologically separated. Until that gap is closed there will be much pain for all of the work poured in to fill the gaps between these two approaches.
To nit pick, his consistent criticism of FP is that it exposes internal data structures which makes it brittle to maintain and extend, but I think that’s looking at FP like procedural programming, which it is similar to if you throw out immutability and the focus on tightly scoped pipeline steps instead of modeling layers. The data as an interface is entirely more flexible than an object interface and can provide verifiable guarantees and versioning, just look at Clojure spec! I don’t understand this ‘object in the large’ obsession as anything less than system level thinking. Yes, you can draw a box around these data structures and consider their interface as a static part of the program. But calling them ‘classical’ objects and calling back to Alan Kay’s definition thinly hides the fact that ‘modern’ objects are dead, but long live OO!
Modern FP has been redefined favorably as well, but the part of this talk that made me uncomfortable was seeing it come from the other (still predominate) end and seeing my own arguments in that light.







