November 28th, 2015
(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: firstname.lastname@example.org
I am just one of many voices questioning Object Oriented Programming and promoting the Functional paradigm as an alternative. I pleased to think my big essay, which surveyed quite a bit of what had been written before, is still able to occasionally encourage people to re-think their support for Object Oriented Programming. So I see Matt’s Code Cave write:
Why functional programming and why Clojure? I’ve been interested in the idea behind functional programming for a while now – being used to OOP languages with minor functional elements such as Python and Ruby. Functional programming offered a whole different paradigm of solving problems. I also kept hearing about things like Erlang and Haskell, which sound really cool. The straw that broke the camel’s back was “Object Oriented Programming is an Expensive Disaster Which Must End”. At the time I read it, it seemed like I was working on something that was a prime example of all the points the above article makes on OOP. I was fighting with keeping a gang of objects in the correct state over a number of steps, performing the right operations on the right objects at the right while maintaining the whole collection in a specific state. Of course each step mutated each state (of a single object and of the whole gang) in multiple ways. A user could also go back to any one of the preceding steps and alter state. There is a point in the whole process where a user is asked to submit information but under certain conditions, that information is meant to not be saved. It just disappears into /dev/null (this is a project constraint – the backend must mimic the design).