icfp and strange loop 2018

5 minute read

This year I had the privilege of attending both the International Conference on Functional Programming (ICFP) and Strange Loop in St. Louis, MO over the week of September 23rd - 29th. While the former is largely concerned with functional programming, programming language theory, and their applications, Strange Loop is a conference that concerns FP in addition to concepts such as distributed systems and the interdisciplinary application of computation. Both conferences are a great learning opportunity and chance to network with the big names in these fields, which makes their co-location this year all that more intense and fun!

This was my first time attending ICFP and my second time attending SL, and my attendance was only made possible thanks to the amazing people behind the Programming Languages Mentoring Workshop (PLMW) scholarship and Project Alloy, both of which covered my transportation, housing, and attendance costs. If you find yourself interested in these conferences and are a {student|low income|URM}, please apply to these scholarships!

This post is just a highlight of my experience and by no mean exhaustive. There was never a dull moment and everyone’s presentations (those that I saw, at least) were fantastic. I am so thankful for this opportunity and think both conferences are a great investment for people interested in these topics.

PLMW

The first day was spent with PLMW, which had its own special itinerary for the students accepted. We covered everything from SMT solvers to dependent typing, and, equally awesome, got a special presentation on writing good papers by Simon Peyton Jones himself.

Of the talks themselves, Jone’s talk was great, both in substance but also in presentation. Jones overall is a really jovial person who brings a lot of passion into what he does, and it’s extremely evident by both the way he carried himself generally, but also by the regard his peers carry for him. It’s admirable, really.

Besides Jones’ talk, I enjoyed Stephanie Weirich’s talk on dependent types as a topic. Dependent types were a concept I had come across multiple times on twitter or overheard in passing conversations, but had no actual understanding of, when I went into this seminar. Professor Weirich framed her topic with that clearly in mind and gave a gentle, but very good, introduction to dependent types as a concept in PLT but also with examples of their usage in day to day programming.

Between the talks we had (what I believe to be) the greatest ice breaker of all time: after being broken into random groups of four, each group was handed a packet of papers, each containing an algorithm implemented in a different programming language. It was our job to figure out which algorithms were implemented in which language, and it was ~30 minutes of unbridled panic, yelling, and general fun. Absolutely brilliant!

ICFP and Strange Loop

There were a lot of talks. A lot of them. These are only some of my highlights.

Gradual Typing with Ronald Garcia

Ronald Garcia, both as a presenter and in between sessions, is a brilliant and soft spoken professor. In his talk, he introduced me to the more academic viewpoint of dependent types, a concept I was already somewhat familiar with due to MyPy. With MyPy, I was always interested in whether a sound type system really could be constructed out of the maudlin chaos of dynamically typed Python, especially as an “afterthought”, so to speak. Professor Garcia helped give some insight to that in addition to where else.

Fault Tolerant Functional Reactive Programming with Ivan Perez

Ivan Perez was a part of the PLMW’s industry and academic QA session and I got to talk to him for a while at the ICFP/SL party hosted at the St. Louis City Museum. Perez works on cool stuff to say the least, and his talk on the theory (and possible near future application) of functionally reactive systems was very interesting. While we are still far away from having a satellite running Haskell on it, the idea that groups such as NASA and NIA are brainstorming the application of monads to hard time requirement systems is nerd candy 🤤.

Gradual Typing with Ruby with Paul Tarjan and Dmytro Petrashko

This talk, in context of Professor Garcia’s discussed above, is a perfect example of how ICFP and SL are a perfect combination. It is honestly a tragedy that this can’t be more than a one-off affair.

The talk itself was quite simply informative and a great insight into how gradual typing was taken as an idea and realized at a large (and rapidly growing) financial company. The speed and degree for which typed ruby has been integrated into Stripe’s codebase is honestly nearly as impressive as the feat of creating Sorbet itself. I got to talk with Paul at lunch (thanks to Project Alloy) and it was also fun getting further insight into how projects such as MyPy influenced his work, along with how he managed to get Ruby’s core developers onboard with an idea they previously were not willing to create.

Mapping Imaginary Cities with Mouse Reeve

Reeve’s talk is a good example of weird and different things get to see at Strange Loop, and I mean that in the best kind of way. I am a huge fan of both Jorge Borges and Jean Baudrillard, so whenever I hear anything about simulating alternative realities and surrealism on steroids, I get excited. Reeve’s project on generating fake worlds with maps, and what maps mean to us as humans, was an embodiment of what interdisciplinary work can bring to fruition. More please!

Hackett: a Metaprogrammable Haskell with Alexis King

SL and ICFP should be co-hosted by law.

In all seriousness, another great talk touching on functional programming, programming language design, and how Alexis King took both to another level by creating a Hegelian synthesis of Racket and Haskell. This one is hard to describe without getting straight into the grittier details of the behavior of languages such as Racket, so it is best viewed without my dumb commentary.

takeaway

My list of talks wasn’t exhaustive by any means with respect to what talks I enjoyed or thought good, whether in attendance or those I only got to watch after returning home. I really recommend anyone reading this to go look at the youtube accounts for both of these conferences (ICFP, SL) and watch as many of these presentations as possible.

ICFP was amazing. Strange Loop continues to be dope. I am so thankful to those who enabled me to attend and I hope to be back next year to at least one of these conferences. Till then!