imho the problem with embedded Rust adoption is the lack of good quality, easy-to-follow training material as you point out.
imho the problem with embedded Rust adoption is the lack of good quality, easy-to-follow training material as you point out.
To be fair, try to find good-quality, easy-to-follow embedded training material which uses C - or any other language, for that matter. So even for a mature language which everyone uses, the good tutorials / documentation simply never comes, therefore it is unrealistic to expect Rust would do better here.
I think he's really off on the right foot
I'd argue lack of decent cross platform tools (from vendors ideally) is a bigger barrier.
I'd argue lack of decent cross platform tools (from vendors ideally) is a bigger barrier.
I disagree. Ridiculous amounts of work has gone into developing better and better embedded cross platform frameworks. Yet there is never success, they are either difficult and hard to use, or simple but too compromised. And there are too many, and they are short-lived, so now you have to learn an extra skill and still get nowhere. Generic hardware abstraction with the usual MCU requirements simply is an unsolvable problem. We would be better off by stopping this timesink. If the same amount of time would have been spent on documentation and tutorials, and just writing code to get more used to writing code, we would be far better off.
I'd argue lack of decent cross platform tools (from vendors ideally) is a bigger barrier.
I disagree. Ridiculous amounts of work has gone into developing better and better embedded cross platform frameworks. Yet there is never success, they are either difficult and hard to use, or simple but too compromised. And there are too many, and they are short-lived, so now you have to learn an extra skill and still get nowhere. Generic hardware abstraction with the usual MCU requirements simply is an unsolvable problem. We would be better off by stopping this timesink. If the same amount of time would have been spent on documentation and tutorials, and just writing code to get more used to writing code, we would be far better off.
i think he meant a compiler/crate/whatever sponsored by the manufacturers instead of having part support added by random people that may remove it in the future if they don't bother keeping on with language/toolchain changes
in which case i agree completely: I'm not going to consider rust for my embedded projects if my target MCU are not supported, and i'm very unlikely to use experimental toolchains in commercial products
AFAIK, the Linux kernel was using only C,
it was a total surprise to hear about Rust in the Linux kernel. Not sure if that was only an attempt idea, or if it was put in practice already.
AFAIK, the Linux kernel was using only C,
Torvalds famously has strong (and IMNSHO sane) opinions about C++. https://lwn.net/Articles/249460/
AFAIK, the Linux kernel was using only C,
Torvalds famously has strong (and IMNSHO sane) opinions about C++. https://lwn.net/Articles/249460/But tell me how Rust is any better as Rust also supports unsafe programming. And if you look at examples you'll see that you can't really use Rust without unsafe programming. So how is Rust going to stop programmers from cutting corners? It is no better than C or C++ in that respect.
Next thing we'll see is a whole lot of stuff in the Linux kernel using unsafe Rust because A) they can't make it work with safe Rust and B) the programmers think they are like Evil Knievel and keep doing the same coding stunts like you can find in the current Linux kernels. Meanwhile the Linux kernel would have gotten so much better both in code quality and performance when they would have rewritten it in C++.
So far Rust looks like a solution looking for a problem to me. It doesn't bring a new solution to an existing problem. Ada (which is highly regarded as a safe language) has been around for a long time and never gained mainstream traction because it needs a rather elaborate runtime (just like Rust if you read carefully enough).
AFAIK, the Linux kernel was using only C,
Torvalds famously has strong (and IMNSHO sane) opinions about C++. https://lwn.net/Articles/249460/But tell me how Rust is any better as Rust also supports unsafe programming. And if you look at examples you'll see that you can't really use Rust without unsafe programming. So how is Rust going to stop programmers from cutting corners? It is no better than C or C++ in that respect.
Next thing we'll see is a whole lot of stuff in the Linux kernel using unsafe Rust because A) they can't make it work with safe Rust and B) the programmers think they are like Evil Knievel and keep doing the same coding stunts like you can find in the current Linux kernels. Meanwhile the Linux kernel would have gotten so much better both in code quality and performance when they would have rewritten it in C++.
So far Rust looks like a solution looking for a problem to me. It doesn't bring a new solution to an existing problem. Ada (which is highly regarded as a safe language) has been around for a long time and never gained mainstream traction because it needs a rather elaborate runtime (just like Rust if you read carefully enough).
AFAIK, the Linux kernel was using only C,
Torvalds famously has strong (and IMNSHO sane) opinions about C++. https://lwn.net/Articles/249460/But tell me how Rust is any better as Rust also supports unsafe programming. And if you look at examples you'll see that you can't really use Rust without unsafe programming. So how is Rust going to stop programmers from cutting corners? It is no better than C or C++ in that respect.
Next thing we'll see is a whole lot of stuff in the Linux kernel using unsafe Rust because A) they can't make it work with safe Rust and B) the programmers think they are like Evil Knievel and keep doing the same coding stunts like you can find in the current Linux kernels. Meanwhile the Linux kernel would have gotten so much better both in code quality and performance when they would have rewritten it in C++.
So far Rust looks like a solution looking for a problem to me. It doesn't bring a new solution to an existing problem. Ada (which is highly regarded as a safe language) has been around for a long time and never gained mainstream traction because it needs a rather elaborate runtime (just like Rust if you read carefully enough).
This feels like the same argument in cyclist circles some years ago when disc brakes were still a debate. Some people insisted that you break the same, that discs weight more, etc etc etc. But nothing really beats how consistent, reliable and powerful they are regardless of weather conditions.
I can ride most routes on a disc brake and a v-brake bike, but a big descent on a rainy day with v-brakes? that would scare the shit out of me.
Rust is like the disc brakes. You get done the same work you do in C in unsafe, but more complex, intricate stuff that would have you second guessing yourself in C for days it's a breeze in Rust. The value in Rust is not in doing the stuff that will always be unsafe like directly writing to peripheral registers, the power of Rust is in making it easier to implement the complex stuff with confidence.
The latter can be done in Lua or (micro)Python in the same way. On top of that Lua and even more so, Python are existing languages with a very low threshold to get started with and a very broad field of applications. IOW: do you see Rust ever becoming a programming language for websites, desktop applications, test automation or data crunching?
The latter can be done in Lua or (micro)Python in the same way. On top of that Lua and even more so, Python are existing languages with a very low threshold to get started with and a very broad field of applications. IOW: do you see Rust ever becoming a programming language for websites, desktop applications, test automation or data crunching?
I mean, Lua and micropython are not even in the same perf neighborhood. Rust is a explicitly designed for Systems Programming, essentially equal perf neighborhood as C and C++
Rust is like the disc brakes.
You get done the same work you do in C in unsafe, but more complex, intricate stuff that would have you second guessing yourself in C for days it's a breeze in Rust.
You might be unpleasantly surprised. What Lua and Python are doing is binding building blocks, written in lower level languages, together in a way that the programmer doesn't really need to bother with pointers and memory allocation (and hence resulting in more robust code). Often the building blocks are highly optimized but still easy to unit-test for flaws. So the end result can be faster compared to writing code yourself in Ada, C, C++ or Rust.
But traditionally complex problems becoming a breeze? This sounds like a marketing speech for AI or something; now such extraordinary claim would most definitely require extraordinary evidence, like a demonstration of a problem which takes days to solve in C, maybe hundreds (thousands?) of lines of code, and which Rust solves in no time. Any example in mind?
The latter can be done in Lua or (micro)Python in the same way. On top of that Lua and even more so, Python are existing languages with a very low threshold to get started with and a very broad field of applications. IOW: do you see Rust ever becoming a programming language for websites, desktop applications, test automation or data crunching?
I mean, Lua and micropython are not even in the same perf neighborhood. Rust is a explicitly designed for Systems Programming, essentially equal perf neighborhood as C and C++You might be unpleasantly surprised. What Lua and Python are doing is binding building blocks, written in lower level languages, together in a way that the programmer doesn't really need to bother with pointers and memory allocation (and hence resulting in more robust code). Often the building blocks are highly optimised but still easy to unit-test for flaws. So the end result can be faster compared to writing code yourself in Ada, C, C++ or Rust.
...
Rust is like the disc brakes. You get done the same work you do in C in unsafe, but more complex, intricate stuff that would have you second guessing yourself in C for days it's a breeze in Rust. The value in Rust is not in doing the stuff that will always be unsafe like directly writing to peripheral registers, the power of Rust is in making it easier to implement the complex stuff with confidence.