Wrapping up 2017
So here we are, already on the end edge of 2017. As always, we will see some wrap ups on Twitter, some #code2017
. Time to write my own.
First, some code and conferences...
As expected when working for a company which develops its main backend applications in Java, I did a lot of Spring framework. Sometimes (often) it bored me, or made me cry throwing exceptions, but the mainstream Java world knows how to be pleasantly surprising from time to time. One of those times was when I introduced, in January, the Javaslang library into the main code base (now it's called vavr ). Criticized at first, and maybe even now, I found in it a good way to make my colleagues ask questions and dig some topics like sum & product types, variance, even monads without knowing it (Option
& Either
). On the same line, I did a short presentation at our yearly seminar, to introduce my opinionated view of Functional Programming (ie strongly typed, and in the case of the presentation, in Scala). It was my first talk on such a complex topic, and I must say it was not efficient at all and some kind of a failure.
Anyway, I also developed and maintained a new version of an internal tool to manipulate geographic data. Written in Scala, using geotrellis, akka stream and reactive mongo. Sadly this will remain the only real piece of software written in Scala that I did in 2018.
By Summer, I had a chance to dig into the Java 9 new libraries to catch up on the improvements made in the Process
API, especially to the onExit()
method and to backport it into our Java 8 code base. I also wrote about it in previous entries.
In September, I was back in Spring 4.3 & custom framework overlays (not libraries) hell, but I was lucky enough to go to the second edition of the DevFest Toulouse. I wrote about it here (in French). It was my first time going to this kind of developer centric conference and it was a breath of fresh air and motivation to get me out of the imperative OOP nightmare.
2017 was definitely the year of conferences, as I also attended Scala.io v4 at the beginning of November, in Lyon. It was nice to finally watch on stage some of the developers I admire the most & to realize how much there is still to learn and practice on the road to learning Category Theory. I also wanted to blog about this event, but the post is still in the draft bucket. To sum it up this event gave some big subjects to dig in 2018. First, Category Theory, obviously ! Then Recursion Schemes & Dependant types. I hope I'll be attending in 2018 but moreover, I hope Scala will become my main language at work.
As a nice surprise, in I also wrote a lot of Kotlin in November and December, again for a maps/GIS related application which started almost from scratch. Kafka, Spring 5, Reactor and the excellent Kategory are on the menu. There again, I have a lot to write about here on Kotlin and Functional Programming, but I guess, all the drafts I have won't make it before 2018.
... some constants...
Time flies but some things remain the same in my developer life. I still use the same tools with little or no variation:
- IntelliJ IDEA as my IDE of choice,
- zsh as my shell, both on Archlinux and macOS.
I still go to the local Java User Group, where interesting subjects are raised every now an then. I wish I could attend more groups in 2018 however.
... and some perspectives
With Scala.io and the DevFest Toulouse conferences in particular, I had lots of opportunities to widen my horizon and add to the infinite list of things to learn/try/play with. I wish 2018 will be made of Functional Programming. Mainly in Scala ! With a bit of Kotlin too. On this line, I wish I'll get to Idris, and to continue my journey in Category Theory land.
I can't forget Rust and my project to make programs written in it on my Akeru board.
I also wish there will be much more entries in this blog.
That's it for for my 2017 wrap up. Could not make it in a tweet, even after the end of the 140 character limit.
I wish you all a nice end of 2017 and tons of discoveries in 2018.