That’s a great post indeed. Thanks for putitng an effort presenting all the difficulties that you’ve experienced applying the OO paradigm.
I was also a huge supporter of OO programming and at the time it all made sense, at least in theory. And I was blind to see other ways of doing things.
As Bret Victor said
“The most dangerous thought that you can have as a creative person is to think that you know what you’re doing. Because once you think you know what you’re doing you stop looking around for other ways of doing this.”
It is very dangerous indeed to believe that we know what we’re doing as an industry. I have witnessed people being dogmatic about technologies, programming languages, paradigms etc. I have seen huge supporters of OO programming spending hours debugging a code to find out why a variable has changed it’s value. I have also seen programms crashing due to Null Exceptions or Front-end app failing due to “Cannot read property x of undefined”.
It is self explanatory that there will be always people doing things the wrong way. But why not try to create solutions that will prevent programmers from making errors in the first place or at least minimize them. Why not try new approaches that will help us spend more time doing creative things and less time debugging to find out why various value mutations have broken our app.
As Charles correctly mentioned, Functional Programming isn’t a panacea; But it is a good step forward. It’s a way of admitting that our industry is probably not doing things the right way. And if we have the courage to admit that we might be closer to believe that we are creative people indeed.