What You Should Know About C++
Anyone who reads tech blogs for fun can see that the pace of change and innovation is nearly impossible to keep up with.
As new technologies gain traction in the market, new tools are developed to help programmers slash through the digital frontier into uncharted territories. At every turn in this wild ride, it seems that a new computer language is being invented to make the programmer’s life easier.
Perl, Ruby and Python are old hat by now, and Go and Swift seem to be taking the tech world by storm.
It’s no surprise, then, that another movement is gaining steam. As in other corners of our culture, a sort of return to the roots movement has seen a rise in the popularity of the oldest of all computer language workhorses: C++. This isn’t merely a case of anti-progress reactionism.
In the computer programming world, especially, it has always been about using the best tool for the job. Programmers don’t have time to waste on the shiny new tools, and with C++, the proven results are more ubiquitous than you could have imagined.
What Is C++?
Developed in 1979 by Bjarne Stoustrup, C++ would eventually become the foundation for many different infrastructure and enterprise application platforms.
The fact that almost all of those platforms still rely on C++ to this day is a testament to the power of the language and its capabilities. C++ is a powerful language because it incorporates elements of both high-level and low-level programming. Thus, programmers who choose C++ to build their applications can manage all aspects of the program’s operation, from the user interface down to the machine instructions.
In the case of other computer languages such as Java, at some point the program must pass off its message to a platform written in a different language so it can be delivered to the machine components (memory, processor, drivers, you name it).
In these cases, that platform is most likely written in C++. Because of these capabilities, a well-written C++ program provides speed and performance that no other program can match. In the words of its own inventor, “basically, nothing that can handle complexity runs as fast as C++.”
In terms of alternatives, Java is the most identifiable language. A lot of the “Java is better” chatter is propelled by evolutionary momentum. Java was developed as a derivative of C++ in order to solve some of its problems, and the “newer is better” bias is certainly in play. But this isn’t to say that it was a complete, top-to-bottom iterative improvement. If it were, there would be no need for C++. Instead, both languages have developed their own pros and cons.
In order to run a Java program on a Windows machine, you must have the Java Virtual Machine installed. Guess what language Oracle used to create that Virtual Machine? C++! So even when you’re running a Java application, you are completely reliant on C++.
The Value and Productivity of C++
Many of the complaints about the limitations of C++ are based on where it was in its development at some arbitrary point in the past. However, like other computer languages, C++ is a living, evolving language that has no trouble keeping up with the times.
One major advantage that C++ boasts is its importance to the Windows desktop environment, serving as one of the four development languages for Windows 8.1 — a relationship that will continue with Windows 10. And despite the desktop doomsayers, that relationship will carry meaning for quite a while.
Savvy developers who have the fortitude for intense organization and planning and a good eye for detail recognize the value C++ possesses. This value might not manifest itself in how quickly a software build comes together, but if properly designed, the program or web app will definitely produce efficiencies in support, maintenance and iteration down the road.
For novice developers, it might take longer to learn than other languages, but the resources are plentiful and freely accessible. The sheer enormity of the C++ capabilities make it a valuable tool overall.
Image by Michael Himbeault via Flickr