6 ms·
Unfortunately, there's little chance for Rust to make inroads into the embedded market, tho I wish it were otherwise. C++ has had many benefits over C for embe
by TickleSteve 10y ago
Unfortunately, there's little chance for Rust to make inroads into the embedded market, tho I wish it were otherwise.
C++ has had many benefits over C for embedded s/w for many years and has similarly failed. Note that contrary to popular belief, C++ does not result in larger, more inefficient s/w than C (for the correct C++ subset).
The momentum behind the C ecosystem is so overwhelming that Rust simply will not get a foothold anytime soon.
- nine_k 10y agoWhat makes the ecosystem so unfriendly to languages that link to C easily, either way?
- nickpsecurity 10y agoThe ecosystem... from people to compilers to libraries to tutorials... is all C and its style of doing things. Gotta be as close to it as possible to have a chance. It's why the successful languages in enterprise, system space used C-like syntax. Still took a huge company basically dictating it.
- pjmlp 10y agoThe culture, the outdated compilers (expect C89 and C++98) and software designed by hardware engineers.
- petra 10y agoWhat about ARM's mbed bet(and ARM know their stuff) , written in c++ ? no chance for it sucseeding in the IOT , yet ARM claim a large ecosystem ?
- TickleSteve 10y agombed is not a large ecosystem, its large in the 'IoT' world, but no one doing real embedded work (more than say half a million units) would use mbed.
- petra 10y ago>> real embedded work (more than say half a million units) Altough most of the units shipped will be above this, won't a decent share of projects(in general ,not just the IOT) be below that threshold ?
- jgable 10y agoMy company uses a C++ subset (no STL, no malloc) on all of our embedded projects, which are mostly on ARM Cortex-M4. I'd love to learn and start using Rust in our work, but we are client-project-driven, so it will be hard to justify the investment and productivity drop. I think it would make it easier to attract top talent, though things are weird in the embedded world.
- tines 10y agoI'm a C++ enthusiast interested in embedded programming but I have very little experience. What is the rationale for your company's avoidance of the STL, is it primarily binary size?
- bbatha 10y agoLikely because it allocates and uses exceptions pervasively.
- digikata 10y agoI had a co-worker a long time ago described this problem as being a bunch of lumberjacks chopping down trees, but who were never allowed to stop and sharpen their axe's (let alone procure the chainsaws and learn how to use those...).
- polyfractal 10y agoThat's why I quite like the approach of using existing C tooling and SDK, then linking in "user-land" Rust. I wanted to run stuff on the RTL8710, and it seemed crazy to start rewriting all the HAL from scratch. But it only took an afternoon to bolt Rust into the C build because Rust's FFI story is really nice (imo). So I get the best of both worlds: existing C HAL and SDK with the pleasantness and safety of Rust.* * With the assumption/hope that the HAL isn't buggy, since Rust will rely on that to not explode :)
- elcritch 10y agoBrilliant! Thanks for the proof of concept. I've been debating this method, but it looks like you got it setup relatively quickly. Almost as easy as transitioning to another C compiler/tool chain.
- pcwalton 10y ago> The momentum behind the C ecosystem is so overwhelming that Rust simply will not get a foothold anytime soon. You could also say this for C on Unix in 1990. Or x86 assembly for PCs in 1985. In 1990, the idea that, 25 years later, we would be deploying network services written in JavaScript was unthinkable. Change takes time, and C won't die, ever—but history shows that change eventually does happen.
- pjmlp 10y ago> You could also say this for C on Unix in 1990. You can still say this on 2017. No UNIX kernel will ever be written in anything other than C, the way they are married to each other and the way UNIX culture works. To get rid of C we need to get rid of UNIX, even a POSIX like OS coded in say Ada, needs to expose C like semantics for POSIX compatibility. Which means we still have a long way ahead in what concerns improving security.
- pcwalton 10y agoYeah, I was referring to the userland, not the kernel.
- kevin_thibedeau 10y agoWe use embedded C++ though it is mostly C with classes and sugar after throwing out STL and exceptions. I'm eagerly awaiting more embedded friendly Nim improvements since it can be plumbed into existing embedded C tool chains.
- dom96 10y agoHappy to see that you mentioned Nim. What improvements are you looking for in regards to embedded development?
- kevin_thibedeau 10y agoThe ability to do useful things without the GC would be nice.