No language will replace C, but all of those mentioned will eat some of its cake. Its usage will shrink, but C is here to stay.
D is what C++ should have been. It had some traction in mid-2000s but the Tango vs. Phobos debacle killed it.
Go is the most serious of the three languages mentioned. It has the momentum, solid community, solid tooling, and corporate backing. It's well suited for networked services, but it is not replacement for C.
I'm not so sure about Rust. Unlike D and Go, Rust can replace C (in theory), but I don't think that will happen. Rust has a feel of a hobbyist language in perpetual alpha.
> but the Tango vs. Phobos debacle killed it.
It was D1 lang.
You should know now that D2 have single standard lib, the official compiler front end is wrote on D, and open source. Plus there is LDC and GDC implementations.
In early 2000s, Microsoft basically told Win32 API developers to either migrate to .NET or to go fuck themselves. There was a lot of FUD flying around. At one point, people were wondering will the new Visual Studio ship with C/C++ compiler.
In it's quest to promote .NET, Microsoft even got Borland to kill itself by jumping on the .NET train. The days of native Windows development were over and the best alternative to MS stack, Borland with its Delphi, decided to commit suicide.
That was the chance for D to shine. I was among the developers looking for non-MS solution for native Windows development and D was my favorite, but the Tango vs. Phobos thing killed it for me.
Like many developers at that time, I left Windows for the Web development. If D was then what is now, I would stay with Windows a bit longer than I did.
First, I want to tell you that my comments are not malicious (at least, not on purpose), just telling you what impression I get when looking at it.
Rust got a lot of love from the beginning, a lot of people tried to use it before it was anywhere near stable. They've got burned when their two weeks old code wouldn't compile. I know, they were warned about it, but it still kinda sucks.
If you look at the Rust FAQ[1], it promises yet more incompleteness and breakage to come:
>4 Is any part of this thing production-ready?
>No. Feel free to play around, but don't expect completeness or stability yet. Expect incompleteness and breakage.
Another question people have is: "Are we web yet?" and the answer is: "No, we are not." [2]
No stability, immature ecosystem,... Either the docs are outdated or you're "selling" it wrong. The message I get is "Rust is awesome, but not here yet".
We released 1.0 stable in May. We don't make those kinds of changes anymore. The only reason that FAQ entry survived so long is that the FAQ is currently being entirely re-written, so people hadn't read it in a while...
D is what C++ should have been. It had some traction in mid-2000s but the Tango vs. Phobos debacle killed it.
Go is the most serious of the three languages mentioned. It has the momentum, solid community, solid tooling, and corporate backing. It's well suited for networked services, but it is not replacement for C.
I'm not so sure about Rust. Unlike D and Go, Rust can replace C (in theory), but I don't think that will happen. Rust has a feel of a hobbyist language in perpetual alpha.