Flexibility Through Immutability
While functional programming has a lot of advantages, the more I worked on the paradigm, the more surprised I was at how much thinking in a functional manner made refactoring easier.
As happy as I am to sell people on Clojure, I realized that teams could benefit from adopting some functional programming ideas even on their current language. I decided to try a different approach, and gave a talk at the 2016 ITAKE Unconference in Bucharest, elaborating on the benefits of immutable data. I wanted to focus on how the functional paradigm has a value in-and-of-itself. A secondary goal was to provide some tips that teams who can't yet pull away from Cor Java can put into effect to help.
You'll find my screen recording, as well as the slides, below.
I recorded the audio with my MacBook Pro's microphone, but have done my best to clean it up and enhance it during the questions. ITAKE also recorded the talk. I hope they'll make their video available soon, and will link to it when it's available.
I also have the notes that I originally wrote for the talk, so if you're more interested in reading than watching a video, let me know and I'll clean them up and post them.
Memo to self: don't say "in a mutable manner" when talking about immutability, particularly if you speak quickly.
Here are the talks and resources I mention:
Clojure All The Way Down Immutable collections for .Net and Java re-frame, a pattern for writing single-page applications in ClojureScript, using React / Reagent King's talk on Defold, which uses Clojure for a game development editor. The Bucharest Functional Programming group Clojure!
The slides are at SpeakerDeck:
Update: ITAKE has uploaded the talk video, you'll find it below.
Discussion in the ATmosphere