Pages: 260 Published: January 2020 ISBN: 9781680506228 Edition: 1
Modern Systems Programming with Scala Native
Write Lean, High-Performance Code without the JVM
by Richard Whaling
Access the power of bare-metal systems programming with Scala Native, an
ahead-of-time Scala compiler. Without the baggage of legacy frameworks
and virtual machines, Scala Native lets you re-imagine how your programs
interact with your operating system. Compile Scala code down to native
machine instructions; seamlessly invoke operating system APIs for
low-level networking and IO; control pointers, arrays, and other memory
management techniques for extreme performance; and enjoy instant
start-up times. Skip the JVM and improve your code performance by
getting close to the metal.
Developers generally build systems on top of the work of those who came
before, accumulating layer upon layer of abstraction. Scala Native
provides a rare opportunity to remove layers. Without the JVM, Scala
Native uses POSIX and ANSI C APIs to build concise, expressive programs
that run unusually close to bare metal. Scala Native compiles Scala code
down to native machine instructions instead of JVM bytecode. It starts
up fast, without the sluggish warm-up phase that’s common for
just-in-time compilers. Scala Native programs can seamlessly invoke
operating system APIs for low-level networking and IO. And Scala Native
lets you control pointers, arrays, and other memory layout types for
Write practical, bare-metal code with Scala Native, step by step.
Understand the foundations of systems programming, including pointers,
arrays, strings, and memory management. Use the UNIX socket API to write
network client and server programs without the sort of frameworks
higher-level languages rely on. Put all the pieces together to design
and implement a modern, asynchronous microservice-style HTTP framework
Take advantage of Scala Native’s clean, modern syntax to write lean,
high-performance code without the JVM.
A modern Windows, Mac OS, or Linux system capable of running Docker. All
code examples in the book are designed to run on a portable Docker-based
build environment that runs anywhere. If you don’t have Docker yet, see
the Appendix for instructions on how to get it.
Richard is a data engineer at M1 Finance in Chicago, where he
designs large data pipelines using Scala-based technologies like Akka
and Spark. He’s made open-source contributions to Scala Native and
Apache Kafka, and he blogs and speaks frequently about Scala and other
functional programming topics.