“Perfecting oneself is as much unlearning as it is learning.” - Edsger Dijkstra
Functional programming is all the rage these days. It’s hard to go to a conference, the water cooler, or your grandmas house without hearing about it. To initiates it’s an insurmountable wall containing droves of intellectual giants and the answers to all your bugs. To learners it’s the great mind twist that forces them to revisit and rethink many of the premises on which they learned the craft. Beyond that stage I can only surmise. Is programming nirvana really found in functional programming? I honestly don’t know yet, but I’m making 2015 the year I find out.
- Learn Haskell
- Build two trivial command line applications in Haskell
- Use functional techniques and libraries to improve my company’s web application
I am focussing on Haskell because I constantly hear it referred to as the model functional programming language. So much of the language doesn’t compromise and forces you to learn the truly functional approach. I want to fully embrace the paradigm shift and Haskell will beat me over the head until I do.
Let’s be real here. There’s not enough time for me this year to get beyond writing trivial applications in Haskell. So, I’m setting the bar pretty low by trying to write a couple relatively simple command line applications.
My last goal integrates best with my day job. One of the challenges with the
web application I work on is its rampant state mutation. The biggest offender
is the DOM. People modify DOM willy nilly jQuery style and it makes our
application incredibly complex. My goal is to find out if a less state based
approach will improve the maintenance of our application. I dearly want to put
debugger statement in one place and observe everything that is
modifying the DOM.
Feel free to reach out to me on twitter @jondelamotte.