Leveraging Legacy Code
Another benefit of C and C++ is the ease with which they can interface to legacy code on practically any platform. This means that C and C++ applications can easily benefit from the reuse of legacy code, number-crunching routines written in FORTRAN, business logic and transactions in mainframe applications, and any code contained in platform-specific shared libraries.
This is in marked contrast to Java, where, although it's possible to make what are known as "native calls," very few development teams bother to do it. It's just so much easier for the team to rewrite everything in Java. So much for it being a productive environment.
Smalltalk and Visual Basic, on the other hand, suffer from the limitation of being available only on a limited set of platforms, so forget about invoking transactions on that RPG application running on an IBM AS/400. True, we could always use some messaging middleware such as MQ Series from our Visual Basic code to interact with the AS/400, but that just reemphasizes the value of C and C++. After all, most of the code examples for MQ Series are written in C.