📜 ⬆️ ⬇️

Which language - D, Go or Rust has better prospects to replace C and why?

Despite my status and obvious bias as one of the creators of D, I will try to answer frankly; I followed the paths of Go and Rust, and I absolutely know where the dirty laundry is washed in D. I encourage people in similar positions in the Rust and Go communities to share their opinions. So here.

For starters, somewhere in the question should appear C ++. Whether it should be replaced with C, or whether it is one of the candidates for replacing C, but in any case, C ++ is a key element of the equation. This is the closest language to C and an obvious step forward. Given the age of C ++, I further assume in this matter that C ++, together with C, is the goal for replacement.

Each language has a number of fundamental advantages (I call them "an order of magnitude advantage", hereinafter referred to as the "10x bonus", since they qualify for the major league with respect to typical approaches), and a number of problems. The future of these languages ​​and their success in crowding out C depends on how they strategically deploy their 10x bonuses and how to overcome their problems.

Let me get rid of D first


Obviously this is a demonstration of my own home, so I know where to go in order to properly show only what is needed and hide the dirty nooks. I can also talk more about D than the rest of the pair, for the simple reason that I know him much better. Speaking with crude straightforwardness, the main problems of D are:
')

There were, of course, other troubles, but they either were a consequence of the above, or had much smaller consequences.

I think the 10x bonuses for D are as follows (once again, when I say 10 times, this is colloquial "better by an order"):


Go to Go


I must emphasize that this is solely my opinion, nevertheless worth your attention. Go problems are as follows:


Go 10x bonuses in my perception are as follows:


Last but not least, Rust


Let me remind you again that this is only my opinion. I think Rust is facing some interesting problems:

Rust's 10x bonuses are:


Briefly


Whether one of these languages ​​is capable of either gradually replacing C, C ++, or both languages ​​in existing software systems, and whether these languages ​​will become priority for projects that today choose C or C ++ by default - it all depends on the ability of these languages ​​to use their advantages and find creative solutions to their respective problems.

Note translator.
Sorry for the old article, I just came across it at the end of my series on reliable programming, and seemed fun enough to quote. In RuNet, however, a translation, and indeed a full discussion, was not found.

Source: https://habr.com/ru/post/460989/


All Articles