Last week I attended The Strange Loop in St Louis. I attended in 2011 and was blown away. I missed 2012 but attended again in 2013 and was blown away once more. I already have 2015’s dates in my calendar. How was 2014?
Yup, blown away again. Alex Miller and his team have created an iconic event that crosses technology boundaries and bridges between academia and industry, to bring some of the brightest minds together to share their ideas. And for attendees too, the opportunity to meet a huge variety of our peers - from novice to expert - in all different technologies, creates an atmosphere of excitement, wonder, and enjoyment.
All the sessions were recorded and have been posted to YouTube. Link at the bottom of this post!
Here are the sessions I attended with brief notes so you can see why I love this conference:
- Joe Armstrong - The Mess We’re In. The creator of Erlang focused on the overwhelming complexity of the systems we are building today, and how they got that way, with a good dose of humor and some quantum mechanics.
- Jessica Kerr - Concurrency Options on the JVM. Jessica took us on a whirlwind tour of Clojure, Scala, Java and what they offer the developer (futures, agents, actors, parallel streams, channels, executors etc), with a whimsical (but consistent) analogy of traffic patterns in JVM-town. A great overview with enough detail to be very useful!
- Ambrose Bonnaire-Sargeant - Typed Clojure in Practice. We’re using core.typed a little at work so I wanted to hear how others were using it in a production environment. After starting out with a practical example of eliminating bugs through gradual typing, Ambrose walked through a case study of CircleCI which has applied core.typed to a substantial amount of their code. It greatly encouraged me!
- Julie Lavoie - Analyzing Rap Lyrics with Python. This sounded so off-the-wall I was intrigued - and I’m actually a huge fan of early West Coast rap music (although I find the misogyny very hard to take which, again, was something that intrigued me about the talk). Julie’s talk looked at numerous pitfalls in the process end-to-end as well as the difficulties in establishing good metrics of sexism. Musical excerpts, lots of data, lots of questions. A fascinating topic!
- Amanda Laucher, Paul Snively - Type Systems: The Good, Bad, and Ugly. Honest, opinionated, and somewhat controversial, Amanda and Paul took us on a tour of type systems available in current and future languages. My takeaway: if you don’t like static typing, you have probably only used languages with bad or ugly type systems - but we’re not quite there yet in terms of capabilities…
- Brian McKenna - Idris: Practical Dependent Types With Practical Examples. …which was a nice segue into Brian’s talk which showed us some of the things that a truly powerful type system can do for us. Idris isn’t production-ready yet but it’s an exciting glimpse into a future where type systems are powerful, really useful, and relatively painless to use. I’ll need to watch this one a few more times, I think.
- Leah Hanson - How Julia Goes Fast. I’m currently reading Seven More Languages in Seven Weeks and one of those seven is Julia. I haven’t gotten to that chapter yet but I wanted to hear more about how it achieves near-C level performance. Leah took us through various implementation details, showing what Julia was capable of. Her passion for Julia was contagious and I’m really looking forward to that chapter now!
- Stefanie Schirmer - Dynamic Programming at Ease: with Grammars, Algebras, Products. Stefanie showed us a very powerful set of abstractions that can tame a very difficult type of programming algorithm, with reference to real-world analysis of RNA molecules. Like Brian’s talk on Idris, I’ll need to watch this a few more times to soak it all in.
- Stephen Wolfram - Inside the Wolfram Language. Wolfram is a system that has grown to encompass a huge amount of knowledge across many different disciplines, and Stephen was able to give us a preview of their brand new “programming language” that can query their (very impressive) knowledge engine. Highly entertaining - make sure you watch the video!
- Eleanor McHugh - Fun with Go (Unsession). Several friends have raved about Go so, before the conference, I installed it and worked through the built-in “Tour of Go” and learned a little of the language. In fifty minutes of fun and increasingly wild and wacky code, Eleanor taught me a lot more of Go than the official tour. I found myself repeatedly thinking “Wow! I didn’t know Go could do that!”.
- Nada Amin - Programming Should Eat Itself. Meta-turtles, all the way down. Nada explored reflective metaprogramming. I wasn’t sure of the “why” behind this talk, but she proved that the way to really understand an academic computer science paper is to implement the ideas in it yourself.
- Evan Czaplicki - Controlling Space and Time: understanding the many formulations of FRP. Evan created the Elm programming language as an embodiment of Functional Reactive Programming “done right”, so I was very interested to get the “big picture” on this space. Great background for the different types of FRP out there.
- Rich Hickey - Transducers. Drawing parallels with how we describe processes in the real world - as a series of steps to be performed together - Rich showed how transducers allow us to describe processes in Clojure, without needing to specify the format of inputs, outputs, or intermediate results. Coming soon to a Clojure release near you (it’s in 1.7.0-alpha2 already).
- Ian Davis - The challenges and benefits of a functional reactive frontend. Ian described Prismatic’s experiences with a large-scale interactive web application that is built with ClojureScript and Om on top of Facebook’s React.js framework. Real world FRP at scale.
- Heather Miller - Function Passing Style: Typed, Distributed Functional Programming. The actor model allows use to perform distributed processing by sending data to nodes and getting results back. Heather talk looked at a different model where the data is distributed (rather than the processing) and you send your functions out to the data instead. Having played with distributed function execution in a cluster of Hazelcast nodes, I was left thinking “So?” but the emphasis on type systems and immutability means I probably missed something important in her talk so I’ll have to watch it again.
- Elise Huard - Writing a Game in Haskell. I hadn’t considered Haskell as a language for writing games but Elise used it to showcase Functional Reactive Programming as the core of her game’s engine. She had embarked on the project for a bit of fun and she shared the whole journey with us, from initial curiosity about games, to design, to multiple implementations and the challenges and paths not taken along the way, to the finished game - and a forthcoming book about her experiences.
- Aditya Siram - Shen: A Sufficiently Advanced Lisp. Aditya showed us some of Shen’s power - building on traditional Lisp values with a powerful macro system and a powerful type system - producing very elegant solutions.
Big trends this year? Functional Reactive Programming (in the real world), and Advanced Type Systems (coming soon?).
One final note on the conference: I picked topics that interested / intrigued me without paying much attention to the speakers (because, with a handful of exceptions, I don’t recognize most of the speakers listed anyway!) and now I see that over half of the sessions I attended had women speakers. As I noted last year, Alex Miller and his team did a terrific job of ensuring a diverse speaker lineup - and did it again this year! I’ve been reading some great blog posts from people who attended the conference this year on the diversity scholarships that were set up. It shows that we can change things if we try. We still have a long way to go for equality in tech, but The Strange Loop is a great model for us in that area.
You can watch all of these sessions for free now, on The Strange Loop 2014 YouTube channel!