So long 2014: Year highlights
Another year is about to end and as it is tradition in this blog it’s time to look at the year’s highlights!
Functional Programming
I have been advocating Functional Programming and Clojure for a while now and 2014 has been good to me. It was the first year where I was paid to work almost entirely in functional languages. Most of it was in Scala and a little less in Clojure.
I did have a short 8-week gig in Javascript but even then I tried to make it as functional as possible - e.g.: making use of Reactive Programming techniques (Rx-style)
I’m also thankful for the opportunity to have organised the first Sydney edition of ClojureBridge, a workshop aimed at increasing diversity in the Clojure community by delivering free workshops for women. You can read more about what we did on the day here.
Another bit of exciting news is that I’ve decided to quit ThoughtWorks. Starting in January I’ll be doing Clojure full-time at Atlassian. I’ve written about it here.
I’m looking forward to a very functional year!
Writing
Early this year I was invited by Packt Publishing to write a book on Reactive Programming in Clojure. I’ve announced it before in this blog but it is definitely a highlight of this year.
The book has been a while in the making and I had no idea of the amount of effort involved in writing one. I’m mostly content-complete now but working through a number of useful bits of feedback I got from early reviewers. I expect to be done with these in January and then the book should go into production.
I’ll keep everybody posted :)
Reading
Most of what I read this year - with the little free time I had - were academic papers and I would like to highlight a few that I particularly enjoyed:
- Monads for functional programming
- Propositions as Types
- Theorems for free!
- Monoids: Theme and Variations (Functional Pearl)
- Functional Reactive Animation
- Push-pull Functional Reactive Programming
- Elm: Concurrent FRP for Functional GUIs
Additionally I can’t help myself and recommend that you read Functional Programming in Scala if you have any interest in FP and Scala. Rúnar and Paul have done a great job and put a lot of good advice in this book.
Speaking
Between work and writing the book I’m happy I managed to speak this much:
- The Algebra of Library Design - Sydney Clojure User Group, October 2014 - Sydney, Australia
- High Performance web apps in Om, React and ClojureScript - LambdaJam, May 2014 - Brisbane, Australia
- Taming asynchronous workflows with Functional Reactive Programming - EuroClojure, April 2014 - Krakow, Poland
- Taming asynchronous workflows with Functional Reactive Programming (portuguese) - QCon, March 2014 - São Paulo, Brazil
- Monads in Clojure - Sydney Clojure User Group, February 2014 - Sydney, Australia
Content
Here’s the Top 5 posts from this blog in 2014:
-
Functional Composition With Monads, Kleislis and Functors - With learning Scala and Scalaz, I’ve come to learn new ways of composing programs. This short post is a brief look on one of them, Kleisli arrows.
-
Monads in Small Bites - Part I - Functors - I’m pleasantly surprised this post ranked this high. It’s from a series about Monads and I’m glad it has been helping people understand the general idea behind them.
-
Clojure and ‘Why Calculating Is Better Than Scheming’ - A fresh look at this popular paper by Philip Wadler from a Clojure perspective.
-
Clojure, core.async and the Lisp Advantage - core.async is still all the rage in the Clojure community and this post from 2013 gives a brief introduction as to what it’s all about.
-
Purely Functional Data Structures in Clojure: Red-Black Trees - This post is from a series - though I only have two posts at the moment - about persistent data structures in Clojure.
If this tells me anything it’s that I need to blog more!
Happy new year! Here’s to an amazing 2015!