6 comments

[ 5.3 ms ] story [ 21.0 ms ] thread
"Look at your IDE. Look at the menus and buttons and hierarchical whatchamacallits and text-filled panes."

I use emacs. Without menu and buttons etc. Guess it's not talking about me.

"hands up anyone who wouldn’t claim to be an expert in object-orientation!"

raises hand. Yes, not talking about me.

"So, I’m asking you to give up programming – or at least everything you have learned about programming and believe is true. I want you to give functions a go."

That's a bit of a typo - functions are also part of imperative languages. Fortran has functions but is not a functional language.

Author's obviously talking about pure functions, not procedures or subroutines.
The ambiguous revulsion of object orientation is the hallmark of the inexperienced functional programmer.
Or the bitter experience of an old, cynical, object oriented programmer.
I think that reflects the prime error, though. It's the false equivocation between objects as PL constructs and objects as software architecture.
First mistake of functional programmers approaching oo: thinking it's about the objects.

It's mostly about decomposition and message passing. If one fixates on mapping reality on objects they are in for a bag of hurt.

And what's message passing if not functions? But that doesn't make it functional programming. The method of decomposing problems and composing code to build solutions is the key.