3 ms·
I am toying with SPARK on smaller chips. You can gradually replace parts of C code, like I think you can in Rust too, and work up to doing full-scale replacemen
by eggy 5y ago
I am toying with SPARK on smaller chips. You can gradually replace parts of C code, like I think you can in Rust too, and work up to doing full-scale replacement or projects from scratch with SPARK on embedded devices, which has a lot of the benefits of Rust and then some[1][2]. I am a polyglot with certain biases/strengths in some PLs over others, so perhaps my early 80s experience with Pascal makes Ada/SPARK2014 easier for me than Rust. I understand the Ada/SPARK concepts better. I think Zig[3] will also become more popular on embedded devices for existing C programmers because its a smaller jump to make than in learning Rust, at least that has been my experience. I also enjoyed reading "Building High Integrity Applications with SPARK" which involves the , and maybe if there were a similar book for Rust, I would attempt Rust again. Because SPARK is "a formally analyzable subset of Ada 2012", it benefits from Ada's age. VTC (Vermont Technical College) launched a Cubesat into orbit on November 19, 2013 running SPARK. Rust and SPARK/Ada have been cross pollinating each other with advances in software integrity which is a win-win scenario.
[1] https://blog.adacore.com/ada-on-the-esp8266 https://blog.adacore.com/ada-on-the-esp8266
[2] https://blog.adacore.com/how-to-prevent-drone-crashes-using-spark https://blog.adacore.com/how-to-prevent-drone-crashes-using-...
[3] https://ziglang.org/ https://ziglang.org/
Edit: I hope Amazon's involvement in Rust helps it to mature.
- jamincan 5y agoOut of curiousity, what do you feel Rust would need to reach maturity?
- eggy 5y agoIt needs more resources coming from practitioners rather than early adopters or software engineers; it needs more time to mature, and I think it will. It is just not there for me yet, and I am no longer a spring chicken. The SPARK book I cited is an excellent book written by end users with sufficient background on the subject matter and a pretty cool real world application (Cubesats), rather than by software engineers or developers. I bought another great book, "Analysable Real Time Systems: Programmed in Ada" by Alan Burns and Andy Wellings. I am learning so much from these two books. I've played with over 20 PLs in my life, and syntax is not important as it once was, although I love APL's symbols! But even in APL it is the sophistication and expressivity of the language that amazes me whenever I play with it. Verifiable software, high-integrity software, and the like are best taught by being able to study or use working and proven applications. The uptake of Rust is impressive, so all of this is starting to happen, and maturity just means anything beyond its nascence with some long term applications under its belt, not a hard date or time period.