Why learn systems programming in the twenty-first century? It’s a fair question. When I learned C at the turn of the century, low-level languages like C and C++ were already falling out of favor and being rapidly supplanted by high-level languages such as Ruby and Java. In the intervening years that trend has only accelerated, with functional programming languages such as Clojure, Elixir, Elm, Haskell, and Scala becoming more prominent, and C receding even further from day-to-day relevance.
And yet, C remains at the heart of modern computing: it’s in our operating systems, our network stack, our language implementations, our virtual machines, and our web browsers. When performance is critical and resources are constrained, we still fall back on the techniques of low-level programming.
However, in this book, I’ll show you that you don’t have to choose between the ergonomics of modern languages and the performance of systems programming. With Scala Native, you get to have both.