Bharatvaj Hemanth
December 1, 2016
With languages like Java, Python neglecting concepts such as pointers all together and giving us with abstract concept of memory and data structure why would anyone want to learn C/C++, right? but seriously there are too much reason for why.
Like the Terminator said, "Old but not Obsolete" C has already gone through many revisions and will continue to evolve. Funny cause there is C dialect called ArnoldC. When asked with the question, "Why C still learnt in school?", 90% of the time the reply will be that it is basic and easy to learn which is 100% wrong. Being worked with C# and Java, C is one of the toughest languages one can ever master. It is tough but a satisfying one.
Another reason is, it is unfair to compare C/C++ with Java and other decorated languages. Because C/C++ is a systems programming language.
One interesting fact about C is it has hundreds of libraries(decent ones) since it's inception, which range from GUI Framework to Quantum Computing(eventually). C++ being a successor to C has OOP concepts implemented and works with C code and also supports the C libraries.
With Java promising things like, "Write once Run everywhere" beats C compilers to dirt when taken the factors of Cross-platform, portability and code maintainability. Cross-Platform capabilities can be achieved in C, but they are bit tricky and it requires a great knowledge of the platform one is working on. Projects such as CMake does a major job in reducing this problem. Though one should learn to write 'CMake'.
Here's a biggie, guess the language used for writing Operating Systems such as Windows, Max and Linux. You guessed it right, it is C/C++. If you ever were wandering around the source code of Android Open Source Project(AOSP) you can notice C sources and headers lying around.