Code BEAM Europe 2023

Last month we attended Code BEAM Europe, a conference centered around programming languages that run on the BEAM virtual machine like Erlang and Elixir. During the two conference days we met inspiring people, listened to interesting talks and got updates on the future of the BEAM ecosystem. While the talks are not publicly available (yet), we still want to give you an overview of some of the main topics that were discussed.

A type system for Elixir

The two most prominent BEAM languages, Erlang and Elixir, do not feature static types, which is not bad per se. With dynamic types you save on some boilerplate code in exchange for potential runtime errors. It depends on the use case if speed of development or a save runtime is more important.

The tool of choice for type checking in Elixir and Erlang is Dialyzer, a DIscrepancy AnaLYZer for ERlang programs. Dialyzer uses a concept called success types¹ that cannot catch certain errors. That’s why Giuseppe Castagna, Guillaume Duboc and José Valim wrote a paper and implemented a proof of concept for a new typesystem for Elixir.

This new type system is based on set-theoretic types. Guillaume told us about the project, and José later spoke about the integration into Elixir, which is in a very early stage, and there is still the possibility that they will fail to implement the concepts from the paper.

Machine Learning

As expected, the conference had multiple talks about AI and Machine Learning. One in particular – titled: ”A Year in Production with Machine Learning on the BEAM” by Christopher Grainger – got our attention. ²

This talk revolved around machine learning and data evaluation in the Elixir environment, with a special focus on analyzing patent data.

Christopher described the issues with the prior search processes in patenting being time-intensive and potentially inaccurate and how machine learning could vastly improve and simplify this process. He also explained how they could eradicate Python completely and build one Elixir team for all the different needs of their application.

All in all, it was an enlightening presentation that shed light on the potential of Elixir in AI and Machine Learning.

Gleam / Lustre

In this talk, Hayleigh Thompson gave a brief introduction to her frontend-framework Lustre, which is heavily inspired by Elm and implemented in Gleam, a typed language that compiles to JavaScript or BEAM bytecode.

Like the highly influential yet boutique Elm, Lustre focuses on a zen-like developer experience for frontend applications with a simple mental model and a clear flow of data:

  • The entire state of the application is stored in a single model variable, which might sound messy at first, but thanks to Gleam’s algebraic data types, static types and pattern matching, making changes to the shape of that model is tool-assisted and type-safe.

  • Side-effects are pushed to the edges of the system, out of the pure functional core and are managed by the runtime.

  • It optionally compiles to JavaScript to run in the browser.

That’s all well and good, but why would anyone want to use a reimplementation of the Elm architecture in a language that is not Elm? The answer is code reuse and compatibility in the backend. Being a BEAM language, Gleam can natively call Elixir/Erlang functions and vice versa. This allows for sharing logic between your frontend application and your BEAM backend, which is often desirable and one of the reasons that people have gravitated towards writing backend logic in JavaScript.

While this was not explicitly a topic of the talk, I feel that small and niche languages such as Elm or Gleam sometimes have to justify their existence. In my opinion, one needs to look no further than the sheer enthusiasm of both the speaker and the audience during the talk – boutique languages are a space for innovation and experimentation, where developers are free to build the tools they want to use and like Elm has done with Redux and Vue.js, the really good ideas often trickle down into the more mainstream languages and frameworks.

These where our highlights of the code BEAM Europe 2023 conference. The talks will be published on the code sync youtube channel, some are uploaded already. We enjoyed our time at the conference and looking forward to the next event.

Links & further reading

Picture of Mehdi Necibi

Mehdi Necibi

After freelancing for Inspired for about a year, Mehdi joined our team for good in late 2022. He loves using the Elixir programming language to design, build, and maintain robust and highly scalable applications.

Picture of Raphael Esterle

Raphael Esterle

Raphi works as a software engineer and consultant at Inspired. He's specialized in IT security. When concepting and implementing software he's always trying to take the point of view of potential aggressors.

He's engaing in functional programming in general for over 6 years and Elixir programming in particular for about 3 years using it on a daily basis.

Picture of Jens Doveren

Jens Doveren

Jens joined Inspired in early 2023.

Kürzliche Posts

illustration von chatbots
Technologie

Advanced ChatGPT

Die Nutzung des Tools für Fortgeschrittene Der OpenAI Playground (dt. Spielwiese/Spielplatz) ist ein mächtiges Werkzeug, das es Nutzer/-innen und Produktteams

Read More »