Looking Back on our Experience at ICFP!
Communications Officer
It has been a while since the biggest functional programming event of the year: ICFP 2024 in Milan, Italy. The annual conference, sponsored by ACM SIGPLAN, combines world-class talks with workshops on some of the biggest functional programming languages, including ML, Haskell, OCaml, Scheme and Erlang.
Tarides are co-sponsors of ICFP, and several of our team members attend each year. This year, we had six talks given by Tarides team members and many of our colleagues chose to go as participants. I have asked several of them to share their experience at this year's ICFP to give you a taste of what the conference is all about.
The Tarides Talks
Before we get started, let's recap the talks created or co-created by Tarides engineers and where you can watch them after the fact.
- First-Class Windows: Building a Roadmap for OCaml on Windows: A talk introducing the project seeking to make the developer experience with OCaml on Windows as good as it is on macOS and Linux. Watch the first-class Windows talk here.
- Opam 2.2 and Beyond: Gives background to the recent
opam
release from the perspective of its core maintainers. Watch theopam
2.2 talk here. - Picos – Interoperable Effects-Based Concurrency: Covers the ongoing project to create an interface between effects-based schedulers and concurrency abstractions. Watch the Picos talk here.
- Project-Wide Occurrences for OCaml, a Progress Report: Describes the design behind the first iteration of improved search features available with editor tooling. Watch the project-wide occurrences talk here.
- Saturn: A Library of Verified Concurrent Data Structures for OCaml 5: This talk covers Saturn, a new library of well-tested, benchmarked, partially verified concurrent data structures. Watch the Saturn talk here.
- Wasm_of_ocaml: Presents the work done on the Js_of_ocaml fork which translates OCaml bytecode to Webassembly. Watch the Wasm_of_OCaml talk here
Experience Reports
Curious about ICFP or missing the action already? I've asked several of my fellow Tarides team members who attended ICFP this year to share their thoughts and experiences. Let's dive in!
Why ICFP?
ICFP stands out to functional programming enthusiasts for gathering a large community of like-minded people in one place. As Jan Midtgaard puts it, "it's a wonderful mix of academics and industry people gathering due to a common interest in functional programming". KC Sivaramakrishnan has been attending ICFP since 2009 when he was a PhD student, and "ICFP is now the place where I meet friends and collaborators as well as the future generation of functional programming researchers".
Another reason behind the conference's enduring popularity is, of course, the packed schedule full of high-quality talks. The different tracks offer a variety of opportunities for participants to explore topics that interest them. Ambre Suhamy comments, "I know for sure that I will learn something new and come back from ICFP with more knowledge".
Stand-Out Talks
On the topic of talks, my colleagues attended several across different days and tracks. I asked them to share some of their impressions from the presentations, and while there were far too many to include them all, let's check out some of what they had to share!
- ICFP Paper: Functional Programming in Financial Markets and OCaml Workshop: Recursion schemes in OCaml: Tim McGilchrist really enjoyed these two talks, the first focussing on Standard Chartered Bank's use of typed functional programming (Haskell) across their entire tech stack, and the second on Bloomberg's use of OCaml modelling bilateral financial contracts. "An interesting experience report for recursion schemes at Bloomberg. I'd previously only seen this implemented in Haskell!"
- ICFP Papers: Oxidising OCaml: To KC Sivaramakrishnan, this was a "technical highlight". The talk centred around the potential for optimising heap allocations in OCaml without compromising on safety guarantees. "The modal types work aims to get the best of Rust into OCaml without letting go of what OCaml is good for – and the Rust-like features are opt-in!"
- OCaml Workshop: Opam 2.2: Both Riku Silvola and Jan were impressed by this presentation on the new
opam 2.2
release which notably brought native Windows support among other features. "That Raja Boujbel from OCamlPro, Kate Deplaix from Ahrefs (and the OCaml Software Foundation), and David Allsopp from Tarides gave a jointopam 2.2
talk sent a wonderful signal that three OCaml companies have worked together to do good for the community", said Jan. Riku agreed, commenting "David, Kate, and Raja presenting the long-awaitedopam 2.2
release with its plethora of new features highlighted a longstanding and fruitful open-source collaboration across companies". They also announcedopam
's new time-based release cycle of updates every six months, check out theopam 2.3.0
blog post to learn more! - ML Track: Pattern Matching on Mutable Values: This one stood out in Ambre's mind for its memorable demonstration of an obscure corner case where the pattern-matching compiler would generate incorrect code. "It was insane; here's this five-line snippet of OCaml code; you can run it today, and it segfaults!" The original bug was found in 2016, and work has been ongoing to narrow down and fix the problem. Even though it was a rare edge case, the community rallied to address it, and a bug fix will be included in OCaml 5.3.
- OCaml Workshop: Project-Wide Occurrences: Riku highlighted the work presented by Ulysse Gérard, introducing a new feature of editor tooling that lets users query all occurrences of a selected value anywhere in their project. "This work also highlights the important part the compiler plays in the overall platform vision, as the feature required work to be done not only in
ocaml-lsp-server
andmerlin
but also indune
and the compiler", Riku said.
Memorable Moments
My colleagues' week in Milan created several lasting memories. Ambre chaired her first session, the 3rd OCaml Workshop session, which included presentations on Priodomainslib, Saturn, Picos, and Distributed Actors. She also attended FARM, the international workshop on Functional Art, Music, Modelling, and Design. Ambre remembers the workshop as "people using music to make programs, or programming to make music, and understanding music through programming".
Tim recalls his many conversations between events with a variety of people in the hallways. It might not be the first thing that springs to mind, but the conversations that strike up organically at ICFP can be enlightening. For example, "people generally didn't know that you could use GBD/LLDB on OCaml binaries and, once they knew that, they were very excited about using those tools on their OCaml programs".
KC is focussed on the future, highlighting the feedback he received from participants and how it will help Tarides going forward. "I got some really nice feedback from folks, building on OCaml, about the work that Tarides is doing. I also got lots of honest feedback on what's not working. At the end of the day, our user community matters, and we need to solve their pain points so that OCaml becomes an advantage and not a technical risk for their engineering teams." He also wants to keep contributing to the future of ICFP: "I'm on the ICFP steering committee and will be a DEI co-chair for the next ICFP. I want to ensure that ICFP remains a thriving, friendly, and inclusive place for all of our attendees".
Finally, we can't discuss a Milan conference without mentioning the food! All the participants enjoyed sampling the local Italian fare and just look at this delicious pizza!
Join us Next Year!
The good news is that ICFP happens every year, so if you didn't attend this year, you can always set your sights on next year. The conference also moves around, alternating locations to make it easier for participants around the globe to join. We look forward to seeing you at ICFP 2025 in Singapore, so come find us if you're going!
You can reach out to us on X, Mastodon, Threads, and LinkedIn. Stay in touch!
Open-Source Development
Tarides champions open-source development. We create and maintain key features of the OCaml language in collaboration with the OCaml community. To learn more about how you can support our open-source work, discover our page on GitHub.
Stay Updated on OCaml and MirageOS!
Subscribe to our mailing list to receive the latest news from Tarides.
By signing up, you agree to receive emails from Tarides. You can unsubscribe at any time.