First things first: the title is a lie.
If you happen to be one of my passionate readers, you may recall I started working with Clojure on April 1. So yes, not every month of the year has been devoted to functional programming. I just needed something bold to pull you in, sorry.
Now, how does it feel having worked with Clojure for almost a year?
Here at 7bridges we had our fair share of projects. The open source ones are
just a selected few: clj-odbp
, a driver for OrientDB binary protocol;
carter
, an SPA to show how our driver works; remys
, a little tool to
interact with MySQL databases via REST APIs. I also had the chance to play with
ArangoDB recently, and there were no problems building a sample project to
understand its APIs.
At home, boodle was born to strengthen my ever-growing knowledge and do something useful for the family.
When I started in the new office, the switch from professional Java to professional Clojure was a bit overwhelming. New libraries, new tools, new patterns, new ways of solving the same old problems, new problems to approach with a totally different mindset. It all seemed too much.
Then, something clicked.
Having the same language on both client- and server-side helped me figure out
the matters at hand with a set of ideas I could easily reuse. Once I understood
the problem, I could look for the steps to solve it. Each step required a data
structure and the function to handle this data structure. The first time I used
reduce-kv
because it was the most natural choice left a great smile on my
face.
There is still much to learn, though. Due to lack of experience with JavaScript,
my ClojureScript-fu needs to improve. I have come to appreciate unit testing,
but it’s time to put this love at work on my .cljs
files too. I also
definitely want to know more about Clojure web applications security and
performances.
2017 has been a great year to be a functional programmer. My recent liaison with Haskell is directing me more and more on my way. The functional programming way.