C++, one of the most widely used and known programming languages in software history, could possibly turn into one of the most unknown languages in the coming months.
In August of this year, the international standards body ISO adopted the 2011 C++ language standard, ushering in in a wide range of new, different, and stronger language features. Compiler vendors have already begun aligning to the new standards, whose draft has been published for some time now.
What does this mean for IT and the software industry-at-large?
The current generation of C++ programmers working today in the industry were largely brought up on the 2003 standard, which wasn't much of a radical departure from the 1998 standard prior to that. In contrast, the 2011 standard pushes the bar much higher than before.
C++ programmers and businesses who have not been paying attention to recent events may be in for a shock. Although some of the newly introduced features have already enjoyed compiler support for some time, most were largely ignored due to lack of formal standardization. Now that the 2011 standard is final, the potential for industry use of these features is significantly higher than ever before. That means anybody not familiar with the language revisions could very well find themselves learning the language all over again.
What makes the new language features different is not so much a flurry of new language syntax, as one would suspect, but rather new usages and extensions for what already exists. Although some of the more radical ideas like true lambda calculus support died on the cutting room floor, many other features did make the cut: automatic typing, strong typing for enumerations, built-in concurrency support, Unicode string literals, byte alignment support, inline namespaces, and dozens of others.
With the standardization process behind us, it's now just a matter of time before source code using these new features makes its way into industrial software. If your organization has not already considered technology training to keep developers current on developments such as the 2011 C++ language standard, now is the time to act. Not only should programmers review the new features, but a review of the basics often leads to new insights and understanding of the language. This in turn leads to more efficient, portable, and correct software.