Using Erlang in Blockchain Development
I go through the advantages and challenges of using Erlang to build the Aeternity Blockchain. Language choice affects many aspects of a project, from recruitment to productivity. I discuss how programming languages may differ in general, and where it matters—more specifically what is important in the blockchain space—then describe how it played out in our project. In particular, after having implemented state channels in Aeternity, I will revisit some old arguments about complex state machine design, discuss how Erlang helps, and also report on how the new gen_statem behavior fares in avoiding the death of accidental complexity.