2019 is the fifth year in a row that a functional programming event is gathering more than 600 people. In the beautiful city of Cádiz. All here to learn about this remarkable coding paradigm. If you couldn't attend or you want to know about our experience in this event, keep reading. 👇
This year, Jorge and I were in Cádiz since the very first day. The schedule for the Thursday event was exciting. During the morning, an unconference where anyone could propose a lighting talk took place. It was super interesting to see how awesome developers from many different companies decided to talk about topics like:
- Higher Inductive and Dependent Types by Alejandro Serrano.
- Functional programming in Swift with Bow by Tomás Ruiz.
- Generic functional programming with type classes by Tapio Rautonen.
- How to adapt FP from the business point of view by Alfredo de hoces.
- Reason ML by Flavio Corpa.
For me, the most interesting part was the talk by Tapio, where he reviewed how using type classes, we can code generic pure functional programs.
After the unconference, we decided it was time to type and move our fingers, so we went to the workshops. We decided to go to two workshops with different topics, the first one about testing, and the second one about how to build micro-services using a tool named Mu.
The first one was just theory. We had no time to code, but we reviewed how, using property-based testing, we could create programs to test our programs using randomly generated data. The workshop's host, Adam Rosien, did it great explaining every single detail related to the usage of Scala Check and the most important part: how to think about your software properties. If you don't know what's property-based testing about we recommend you to read our blog post series about it.
The second one was breathtaking. Adrián Ramirez and Pepe García explained during almost 2 hours how using an Avro or Open API definition, they could generate a client and a server for the described service using GRPC and basing the implementation on tagless final 🤯. They used mu, a tool 47 Degrees is actively developing, which is designed to create purely functional micro-services. It was interesting to see how the generation of client and server of the micro-service they were building was really similar to the API client generations we've been using for a lot of our projects.
After the workshops, we only had left the first keynote of the event. Martin Odersky explained how the implicits feature in Scala is going to be in the next Scala version. It was awesome to see how the creator of the language reviewed the mistakes they made when implementing implicits at the very beginning, the usage of this powerful tool, and how they've proposed a different implementation for Scala 3 trying to solve the main pain points. It was mind-blowing when Martin showed us the analytics of the implicits feature usage in Scala projects. 98% of the Scala software uses them!!! 😱
This was just the first day 😱. Bear with us, the second day got way better!
The second day of this conference was full of talks. From Category Theory to an awesome review of how effects are implemented in functional programming. These are the talks we attend during the second day:
- A categorical view of computational effects by Emily Riehl.
- What FP Can Learn From Static Introspection by Aditya Siram.
- What the F(p) is Kotlin? by Katie Levy and Shelby Cohen.
- Arrow Meta - Enabling Functional Programming in the Kotlin Compiler by Raúl Raja and Simon Vergauwen.
- Refactoring Recursion by Harold Carr.
- Optimising your code with math by April Gonçalves.
- Time-sensitive protocol: Links From Design to Implementation by Laura Bocchi.
- Fun With Categories by Marco Perone.
- A Series of Unfortunate Effects by Robert M. Avram.
- Thinking Like a Data Scientist by Em Grasmeder.
There are interesting details for all of them, but we'd like to review a bunch of these talks:
- Optimising your code with math by April Gonçalves showed us how advanced math concepts are handy when coding. April showed how, using category theory and equational reasoning, we can write better code. Who said maths weren't needed?
- Arrow Meta talk, by Raúl Raja and Simon Vergauwen, was also a game-changing talk. The introduction to the new Arrow component just shown us how the life of Kotlin developers is going to change from now on. Thanks to the meta-programming library they've built, any developer will be able to change the way kotlin works, providing awesome support for the IntelliJ IDEA IDEs by just using Gradle Compiler Plugins. This is awesome for FP devs, but also interesting for OOP developers. Take a look at this thread with some info about it.
- Robert M. Avram just surprised every attendee with an excellent story about the effects management in functional programming. His talk was so detailed, and the way the information was delivered was just astonishing. Take a look at this short video, please.
After the closing keynote, the talks day was over, and we only had left one thing. The awesome closing party!! We went to Santa Catalina's Castle to have fun with friends and talk about the conference.
Overall, Lambda World is an awesome event if you want to learn about Functional Programming. The city where the event is organized is beautiful, the organization takes care of every detail, and the level of the speakers and the talks is world-class. For the next year we'd love to see more talks related to the application of functional programming in the industry or how FP is used to solve a concrete problem, should we send a talk proposal for the next year? 🤔 Who knows, maybe we are the speakers in the next edition! We hope we'll see you all in the 6th Lambda World edition. 🤘