Ben Orenstein has been knee deep in object oriented programming for years, dealing with it’s limitations, yet more recently has been enjoying the benefits of functional programming with Clojure. Here, he talks about why everyone should know a bit of Clojure and the benefits it brings to his Ruby code.
Orenstein runs through immutable data structures (go to 3:55) and how they prevent a class of bugs in Ruby where an object is passed into a method and is somewhere along the line passed to something that mutated it, a bug which can easily take a day to track down.
I’m finding that the code I am writing is really nice, it’s nice in Clojure and it’s also affecting my Ruby in a positive way, I am now thinking about – how little can I get away with mutating and when I mutate can I control it in the most extreme way possible to the biggest extent I can?
He goes on to demonstrate running functions on values in boxes to change values using swap showing how immutable data stays the same (go to 12:10) saying that using this in functional programming can improve skills in OOP and how he has now stopped writing things in Ruby that mutates things as much as possible.