Scala Days 2014 wrapped up last week. There were many great talks and great conversations. Here I want to highlight some of the … well … highlights of the three hectic days the five of us spent in Berlin.
My favourite talk at Scala Days was Runar’s on the value of free monads. The aim of the talk was to show how monads can be combined more easily than allowed by monad transformers by using the free monad and some implicit magic. The concept of free functors (free monoids, free monads, and so on) is quite simple but powerful. I hope to blog more about it in the future. For now, go read Runar’s slides.
I didn’t attend Easy Metaprogramming For Everyone! but Dave tells me it was a fantastic talk. The summary is that a new API for macros is in development. This new API is much simpler to use – for instance, separate compilation will no longer be necessary – and enables better IDE support.
I did attend Dave’s talk on macros and I found it an excellent introduction. I’d never written a Scala macro before Dave’s talk, but following it I immediately opened my laptop and knocked out a macro I’ve wanted to write for a long time (for logging the current file and line). Check it out if, like me, you’re new to macros and want an easy introduction.
Another talk I enjoyed was Enterprise Brownfield: Scala to rescue. The main point I took from it is that one great developer can bulldoze through any obstacles. Some believe that process can substitute for ability, but I don’t hold with this. Not everybody on the team needs to be awesome, but having at least one very good developer makes a huge difference in my experience.
I could write a lot more about other talks I saw, but it would make for a very long blog post. Kevin Wright is collecting slides from Scala Days so check out that link for any talks on which you want more detail.
Conferences are good on many levels, which is why we’re very happy to be helping organise London’s Scala Exchange in December. The Call for Papers has just opened, and you can expect more announcements soon.