While Rust certainly isn't the silver bullet, it demonstrably significantly reduces memory and concurrency related bugs.
Yeah, the last firmware I developed was in C and assembler. No, I could not have done it in Rust, mainly due to no Rust compiler available for the arch. Then again, I could not have done it in pure C either...
For future platform selection availability of a Rust compiler is already a factor. Even if we'd still end up using C/C++ for now.
Rust may be the bees knees but it has many hurdles to overcome before it dominates a language that has been around for 46 years.
I think AVR is pretty minor outside hobbyist circles. After ARM support, I'd rather first see MSP430 (amazing for low power), some FPGA softcores (like NIOS, microblaze, etc., common in low volume, industrial & medical devices) and even 8051 (these buggers seem to still be everywhere, but I guess targeting Rust for this arch is the ultimate challenge.).
I guess RISC-V would be cool as well, I can see this getting more popular in the future, eating ARM market share.
You must be confused, as this isn't true. https://www.tockos.org/ is even an OS written in Rust for ARM boards.
ARM Cortex stuff already works, AVR is coming.
There may come a day where basically 0 new C projects are made. I do not think that will be in my lifetime. And I say that as someone with near 0 investment in the language but intends to get more serious about learning rust in the near future.
NDK is quite constrained, mostly as a means to implement Java native methods.
On Android Things they went one step further and the user space drivers are written in Java.
With Treble it is also possible to write drivers in Java thanks to the new micro-kernel like architecture.
That is the question. The way I see it, Rust's attractiveness to C developers goes up considerably the more accountable they are for the code they ship. If IoT and embedded devices start having repercussions for out of date, exploitable firmware/services, either through public opinion, legal or legislative means, making a switch to a language that provides more guarantees starts to look a lot more feasible and attractive to a lot of C die-hards.
I halfway agree. More evidence is always welcome, but the nature of that evidence will almost always be subjective, and I'm not sure a lot of language adherents even care all that much when the evidence is objective. So more is better, but "clearly demonstrate" may be pie in the sky thinking.
> I think the failure of wider adoption of D is a good case study.
I always considered D interesting, but not worth the effort for the gains it offered. A more ergonomic C/C++ is nice, but ergonomics just steer you the right way, they're a far cry from preventing a while class of errors. A GC does offer some help in that direction, but comes with a clear continuous cost. Compiler level error prevention with zero cost abstractions comes across as something a bit more new and novel, and changes the cost/benefit analysis some. It's now a one-time up-front cost, with the possibility that the cost will lesson over time as you become more accustomed to the language.
From an outsider's perspective, Nim was actually a lot more attractive than D as a replacement for C/C++. The cost seems almost negligible since it compiles to C, which makes the benefit fairly good (if overall of less magnitude than I perceive the benefit of Rust to be).
One way to clearly demonstrate this in my opinion would be big projects that are implemented in Rust. I remember when Java came up there were plenty of people saying that it would totally replace C/C++ but you just had to look around to see that not much big software was written with it. Same for C#. Once we see something widely used like git, a big database, a web browser or similar written in Rust then we know Rust has arrived.
That's really not a good strategy. At work I can't just start using Rust without justification but if I can point at large projects being written in Rust suddenly has credibility.
For iterating on large changes to a stable secure web browser used by many millions? It seems to have worked well for them so far.
I hope rust will make it but it's very hard to establish a language long-term.
It's really about growing the pie rather than replacement anyway, in my opinion.
But then we can get sweet sweet COBOL level salaries in 40 years.