D on embedded Linux (ARM)
fkromer.gitbooks.io
fkromer.gitbooks.io
I recently worked through Advent of Code in D to get a better feel for the language, and I had a blast. It's a fun language with some very interesting ideas.
http://jordi.inversethought.com/blog/advent-of-d/
I particularly enjoyed concurrency during Day 18, which seemed to really stump those who tried Advent of Code in other languages, whereas D made it very easy.
It doesn't have a Rust Evangelism Strike Force, but that doesn't make it any less of a fun language.
However technology adoption always needs to fight against non-believers.
Joe Duffy has stated on his Rustconf 2017 presentation [0] that even Midori running on front for their eyes, with some use cases where System C# was even shoulder-with-shoulder with C++ [1], that Windows devteam was not getting it.
Nowadays he is an happy Go coder instead of trying to convince them otherwise.
D has a big problem with their GC implementation, which provides good arguments for the anti-GC crowd in systems programming.
However they have been improving it quite a bit during the latest releases, as well as, making the runtime library more @nogc friendly.
As for reaching mainstream, I share your thoughts. It is not only Rust and Go. There is also Swift, C++17 and the ongoing improvements to make Java and C# more machine friendly (memory management and AOT compilation).
Still, even if just a small group gets to use it, it is already a victory.
Most languages never achieve it.
[0] - https://www.youtube.com/watch?v=CuD7SCqHB7k [1] - http://joeduffyblog.com/2015/12/19/safe-native-code/
It's my understanding that D's garbage collection isn't considered very performant. I know it used to receive a lot of criticism.
But D does not have the hype-machine behind it that rust does. Rust also does have advantages, it's a bit more safe by default, and is based around concepts that are very much in-vogue (ADTs and pattern matching). But I don't think rust is nearly as productive.
We'll see how it all shakes out.
By that same token, std.parallelism.parallel was one of those things where I just looked at it and thought "man, you can actually _do_ something like that?"
C++ can't event get the C greybeards to switch over while being a strict superset. On the other hand, Go is being embraced as a python replacement in the backend world
In any case, they might make it into C++20.
http://en.cppreference.com/w/cpp/language/aggregate_initiali...
In any case, with only 20 KB available, the only sane option is Assembly, as every byte counts.
Any kind of high level programming just means using a crippled language, trying to match Assembly, while wasting more space.
Just like C and Pascal compilers, the result with hacks to make the generated code fit and beat manually written Assembly is not worth it.
It would also be possible to do it with D, using betterC mode and no runtime, assuming a backed for then target architecture would be available.
1. C++ is not a superset of C
2. Not all C loyalists are greybeards, or even old.