Functional Rust? (4/5)
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.
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.