Has any language made a serious attempt to replace C/C++? The only one i know of is D. I'm sure there are others?
closed as not constructive by Loki Astari, Walter, ChrisF♦ Oct 18 '11 at 15:15
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
The D Programming Language is a serious attempt at evolution in the general direction of C++. It's mostly backward compatible with C and partially with C++. It is garbage collected, but it is possible to avoid using it in low-level code if you restrict yourself to specific subset.
You may be interested in the Go programming language by Google.
From the FAQ:
Yes, though they have failed to make breakthroughs to see widespread adoption.
For example, Oberon, by Professor Wirth - it was successful as a systems programming language, was used to implement an OS, Windowing System, and compiler - tasks typically associated with, in the Unix world, C.
There are a set of Pascal derived languages that aimed to do this role - Pascal, Modula, Oberon and so on.
The Ada language may also have equivalent role to C++, but only in safety critical systems programming has it been widely adopted.
It depends on what you consider "replaced".
There are certain areas where I think C isn't going to be replaced for quite some time - due to different reasons.
On the other hand say 25 years ago a lot more server side stuff was written in C and C++. A lot of that stuff is today written in Java, so in that area Java has replaced a lot of C and C++. Dynmic languages are also advancing here. On the client side VisualBasic and more recently C# have gained a good marketshare of applications that used to be written in C/C++.
So, in terms of usage there are several replacements for C and C++.
However, if you are looking for a "real" replacement of C and C++, meaning a language with which you can easily shoot yourself in the foot and use as some kind of (perceived) swiss army knife of programming I doubt that there are real replacements to C and C++ out there right now which are getting more and more adapted.
There are pushes for other languages to gain popularity, C# being the first that comes to mind. I think there are several reasons none have done so. One reason in the case of C# is that it is a language developed and promoted by Microsoft, and while it may or may not be a good language, it will be less portable (Microsoft has less interest in promoting it on other platforms. I am aware others have re-implemented it). Do you see Apple deciding to use C# for the next iPhone? Doubtful. Portability was the primary reason C was developed and was adopted so well. We really do not want to go back to a different language for each architecture.
Another reason is that despite their age, C and C++ have held up very well. You can still accomplish most any task with them. Most newer languages tend to model a lot of their syntax and behavior after C/C++ because it works so well. We owe a lot to K & R and Stroustrup.
Lastly I think the point that Unix was rewritten in C by Thompson and Ritchie is very significant. While not everything was directly derived from Unix, at this point almost all the major OSs out there have borrowed large chunks of it, or at least imitated it.
To summarize, I think a new language that really wanted to challenge C/C++ would have to have some very significant improvements, but be rock solid. I think it would have to be highly portable and freely available. And I think it would help it a lot if there were something that used it that got it promoted (as C was put in the limelight by Unix).
R.I.P. dmr. We owe a lot to you.