4 ms·
There's no "war". It's pretty clear that C and C++ are the most important and dominant programming languages around, regardless of what some people may think an
by PommeDeTerre 14y ago
There's no "war". It's pretty clear that C and C++ are the most important and dominant programming languages around, regardless of what some people may think and say.
Almost every truly important software system is either implemented directly in one or both of them, or heavily depends on other software implemented in one or both of them.
In practice, you don't get implementations of languages like Java, Ruby, Python, Perl and Go without C and C++. Even if you're using something like JRuby, you'll still likely end up depending on a JVM written in C and/or C++. And all of this isn't even considering that your software, regardless of the language it's written in, will likely be dealing with an OS written in C and/or C++, and possibly communicating with a database or some other server software written in C and/or C++. These days, C and C++ are nearly inescapable when implementing real-world software.
- betterunix 14y ago"In practice, you don't get implementations of languages like...Python,...without C and C++." Unless someone takes the time to free Python from C, by doing something like this: https://en.wikipedia.org/wiki/PyPy https://en.wikipedia.org/wiki/PyPy Really, the reason you see interpreters being written in C/C++ has less to do with any technical quality of C or C++ and more to do with something else you mentioned: "your software, regardless of the language it's written in, will likely be dealing with an OS written in C and/or C++," Bingo. Sometimes software needs to do low-level things, even if the software itself is high-level, and that means the software is probably going to be making system calls. An interpreter for Python is going to have to make some system calls, and it is much easier to do that if the interpreter is written in the same language as the OS's API; most OSes have C APIs, and thus writing a Python interpreter in C makes sense. "These days, C and C++ are nearly inescapable when implementing real-world software." I doubt it, considering how much real-world software is being written in Java, C#, Ruby, Javascript, etc. Not all software needs to do things that involve directly deal with the OS. The fact that these systems are often implemented in C does not make C inescapable; it just means that nobody has bothered to free themselves from C yet. There is no technical feature of C that makes it inescapable as a language, it is just what we have to deal with until we put in the effort needed to rid ourselves of it.