This weekend I had the honour of speaking at LambdaCon. My own talk I'll be writing some separate posts on in the future, but I also wanted to jot down some notes on the conference before the memory faded.
The night before
Friday night kicked off with a round of meeting online friends in person: Manuel, Riccardo, Roberto, Yan, Alvero, Chris (sorry, no link!) and I all managed to end up at the same place at the same time and kick off the functional goodness with some awesome pasta and nice wine. As it was described on twitter afterwards:
@robertoaloi @LambdaCon It's been fun :) That's how every language fight should be settled! With tortellini, tagliatelle and red wine.
— Manuel Paccagnella (@map_it) March 29, 2015
If you ever get a chance to meet up with any of these people and chat code, craftsmanship or childcare in Sweden then I strongly recommend you take the opportunity.
The conference itself
After a brief introductory talk explaining how things would work and a couple of schedule changes, we were off. The organisation was first class for a conference in it's first year, and my hats off to all the people at LambdaCon for getting that right out of the box. They looked a little frazzled, but everything seemed to work!
Session 1: Fun with categories - Milewski
This was an amazing talk: Milewski's talk used examples from C++ and pictures of pigs to explain basic category theory, and how these concepts are useful for solving practical programming problems. He then moved onto building a writer monad for logging audit data in a banking application in C++. If you are either new to functional programming or you work with people who are not functional programmers, this talk should go to the top of your watch list as soon as the video is available.
Session 2: It's the type theory baby! - Finelli
Unfortunately, this was my one disappointment of the day. The ideas in Finelli's talk are fascinating, but the talk was based much more heavily than I had realised on the paper propositions as types (pdf) which I have read most of. Finelli was not a bad speaker, but Wadler is a master of the writing art and on this one I'd recommend just grabbing the paper.
Also, it was probably a bit rude to define "type system" to exclude dynamic and unityped languages at a conference with Erlang and Clojure speakers! :D
Session 3: Persisting persistent data structures - Newton
This was me; I'll leave others to comment!
Eventsourcing from domain modeling to persistence with #fsharp #suave and @GetEventStore by @mavnn pic.twitter.com/PQegdVfdRQ
— Enrico Sada (@enricosada) March 28, 2015
The only thing I will say is that I should have really had a wrap up slide to summarize the key points and signal to everyone that the talk had actually finished. That would probably have been better than a momentary awkward silence.
Lunch
It would be hard to swing a cat (a nice English expression for you) in Bologna without hitting a high quality food supplier, so not surprisingly lunch was pretty good. So was (also not surprisingly!) the coffee during the coffee breaks, accompanied by both sweet and savoury snacks.
Conversation was good, and new contacts were made.
Session 4: Generic polymorphism on steroids - Sacerdoti Coen
Like the initial keynote, this talk would have been worth the price of admission alone. A different and fascinating approach to solving the Expression Problem in OCaml using polymorphic union case constructors. I can't wait for the video of this one to contrast and compare the details of the technique with Active Patterns in F# - two totally different solutions to the same problem.
Session 5: Actor Model in F# and Akka.net - Terrell
A good solid introduction to Akka.net, Akka and the actor model in general. Solid presentation, some really nice demos and a lot to go away and look up about supervision and routing…
Riccardo is touring Europe and presenting this talk in a number of different places including Prague, London, and probably others. Check it out if you get a chance.
Session 6: Rust now and then - Percoco
As I've mentioned before, when I'm at a conference I always like to attend at least one session that is on a subject I don't yet know much about and that isn't something I'm immediately likely to use.
This was the session; I've heard of rust a few times but never had a chance to look into it. Flavio gave an entertaining and very informative introduction to Rust - plenty of good stuff to trigger ideas and look into in the future.
Session 7: TDD as in Type-Directed Development
Awesome slides, domain modelling, entertaining presentation, property based testing, practical applications of propositions as types… I lost track of the good stuff in this talk and again, it'll be well worth grabbing a copy of the video to show to non-functional programmers to explain why we rant about all these things. ClĂ©ment Delafargue rounded out my day nicely.
Closing keynote
Unfortunately I'll be waiting for the video of this with the rest of you, as train times didn't allow me to stay for the wrap up.
Conclusion
All in all, LambdaCon was a thoroughly enjoyable day: huge congratulations to Coders TUG for all the hard work and effort and for all the sponsors that kept the conference at such an affordable price. I'm very much hoping they'll do more.