Functional Rust? (4/5)

Functional Rust? (4/5)

Part 4 of 5 in our “Why we love Rust” series.


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.

Lars

Software engineer

lars@tweedegolf.com


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
- Making embedded robust with Rust
- Potential improvements for Rust embedded abstractions
- Driver crate for the Texas Instruments ADS1292


Stay up-to-date with our work and blog posts? Follow us on Github, Twitter or LinkedIn.