Functional Rust? (4/5)

Functional Rust? (4/5)
Lars started at Tweede golf about a year ago. We lured him in with the prospect of working on a cool embedded project in Rust. Since then he clocked a lot of Rust hours on it and on a research project we are running. Still, he manages to astound us with critical notes on Rust. Rightly so? Let's just say interviewing a functional programming purist like Lars gives us a lot of new perspectives around Rust.

This is part 4 of 5 of our series "Why we love Rust". Check out the complete series here

Can you tell us about your introduction to Rust?
I wanted to try Graphics Programming, but not in the ‘traditional’ C++ OpenGL way. The new, ‘cool’ way of doing it was using Rust and Vulkan. I ended up rendering the Mandelbrot set on a triangle.

What’s your personal reason for using Rust?
Rust is the best choice when you need C’s speed and level of hardware access. C is a great language, but it struggles when projects grow more complex. C++ is just plain ugly.

Are you working on Rust projects at Tweede golf right now?
I’m doing research on async/await in an embedded context. We’re creating drivers and library support for our most used hardware, so we can use them in async functions. Previously I contributed to a driver crate for the Texas Instruments ADS1292.

As someone who loves functional programming. Is Rust your “most loved language”?
No, Rust has a lot of potential because of its speed, while also featuring some of the functional programming features like algebraic data types (enums), closures and type inference, but for me, it doesn’t win from languages Haskell and PureScript, which have type systems that actively check the code for side effects, and allows more elegant control flows because of the combination of lazy evaluation and garbage collection.

Wait a minute... we asked you for our “Why we love Rust” series and now you’re saying it is not your most-loved language???
Yeah. But don't worry, there's more than enough love to go around.

"Lars’ takeaway"
Rust is my first choice in embedded programming, because of its memory safety and strict type system. Still, its functional features haven’t yet won me over for it to be my ‘most loved language’.

Where will Rust be in 5 years?
I expect const_generics will be stabilized by then. It’ll greatly influence the abstractions that can be written, like abstractions over fixed-sized arrays. I expect Rust will be growing steadily and be much closer to maturity in 5 years, but reaching the maturity of languages like C++ and Java will probably take a while longer. The good thing is: Rust’s immaturity doesn’t express itself in instability. It just means some libraries are still missing or not fully developed.

More by Lars

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

If one person at Tweede golf is a Rustacean, it’s definitely Wouter. Whether it’s about web, embedded, or even games: he tried it. And probably not just tried it, but prototyped, created, documented, presented, and nailed it. Just take a look at Wouter’s GitHub page[1]. He’s also engaged in the Rust community as an organizer of RustFest, member of the Dutch Rust foundation, and as maintainer of several open-source crates. He believes that Rust is well on its way to perfection.

In February of 2024, I was invited by Matthias Endler of Corrode to join him on his podcast Rust in Production. We discussed how Tweede golf uses Rust in production, to ensure the safety and security of critical infrastructure software.
Marlon is the rookie at Tweede golf, joining us a few months back. He started out with Rust not too long ago and is therefore the guy to talk to about his learning experience with Rust.