Linked by R_T_F_M on Thu 13th Sep 2012 21:19 UTC
Thread beginning with comment 535060
To view parent comment, click here.
To read all comments associated with this story, please click here.
To view parent comment, click here.
To read all comments associated with this story, please click here.
C is here to stay, it's the lowest common denominator as far as high level languages go, supported by pretty much every platform, and useable from just about any other language.
It is only the lowest common denominator on the operating systems that happen to have C as their API.
In Symbian you need a C++ compiler, even C code gets compiled by C++ compiler.
Starting with Windows 8, WinRT comes into the picture as the future direction of the operating system API.
Eventually C++ will be the lowest level API you can get on Windows.
Ever tried to link a program unit written in C++ into a project written FORTRAN? It's possible, but ugly. It's much easier to link a C program unit into a FORTRAN project.
C has a lot of other use cases too, of course, but C-style linking is definitely still the lingua franca of multi-language projects. Most languages and compiler suites support C linking, and if you're going to mix multiple languages in a single project (which happens, I've worked on a project that mixed C, C++, Ada and Fortran), you're likely to be exporting everything with C linking at the boundaries where those languages meet.





Member since:
2006-01-24
I seriously doubt that, not only from my own experience but also from what I've see of the language popularity benchmarks C is holding on as strong as ever (it recently beat Java for the top spot on Tiobe).
MacOS X device drivers are done in C++ (IOKit).
Actually it uses a subset of C++ with no exceptions, no templates, no multiple inheritance etc, which kind of begs the question why they couldn't just settle with plain C to begin with for those drivers.
C is here to stay, it's the lowest common denominator as far as high level languages go, supported by pretty much every platform, and useable from just about any other language.
That doesn't mean it's the best choice for every project, there are certainly areas in which other languages like C++, Java, C#, Python, Go, etc are likely better choices as they offer a higher level of abstraction.
A particular area in which I wager C will always reign supreme is in library/framework code, the reason projects like zlib, flac, libjpeg, png, sdl, audio/video codecs, lzma, etc etc are written in C is because it's A) fast and small memory footprint B) callable from just about anything.
Also none of the 'new' languages really compete with C, new languages like Go, Rust are higher level and compete primarily with C++ or even higher level languages.