Long hair minimizes the need for barbers; socks can be done without; one leather jacket solves the coat problem for many years; suspenders are superfluous.
- Albert Einstein
Modern languages are all about protecting the programmer from having power. They limit the programmer, tying him or her down. This was done because so many programmers are idiots, true, but never forget that the problems modern languages were meant to solve are all people problems, not computer problems.
It is people that seem to need object oriented structures, because the language needs to help protect the programmers from their failure to organize data structures in a sensible way and communicate that structure to other programmers. People that seem to require strongly-typed languages, to prevent their errors of inattention while they write code. But all these features are unknown to the CPU -- they've all been stripped away in the compiler, and reduced back to the purity of sequential code. A purity that most programmers can't handle. A purity that C comes closest to (besides assembly, of course).
As a programmer working professionally for nearly 20 years now, I find it unutterably sad that so many new programmers are let out of colleges having so little idea of how computers actually operate. They're not programmers anymore -- they're a priesthood who poke at the black boxes in certain ways and the boxes "magically" do what they're supposed to. They have as little idea of what's going on as a 5-year-old playing with a gyroscope (and I apologize to any really bright 5-year-olds out there for the comparison).
The reduction of the use of C in our profession marks the decline of real knowledge in the average programmer.
C++ is a general purpose programming language designed to make programming more enjoyable for the serious programmer. - Stroustrup
The Prechelt study determined that the average memory requirement of a program written in Java is two to three times greater than for one written in C/C++ - Getting a Handle on Java Performance
the average Java bytecode application executes about ten times more
slowly than the same program written in C or C++ - Getting a Handle on Java Performance
executables that are written in C++ are significantly larger than similar Java executables
C++ program loaders must generally load the entire executable file before execution begins. - Performance tests show Java as fast as C++
In contrast, the Java Loader can selectively load classes in a properly designed program as they are needed. - Performance tests show Java as fast as C++