C++ is a general-purpose, high-level programming language that allows the programmer to write low-level code. It was developed by Bjarne Stroustrup as an enhancement to the C programming language, widely used for writing operating systems such as Unix.
C++ is a big, complex language, but with the complexity of modern IT problems it remains a strong choice for new projects.
Thousands of employers are looking for C++ developers and hundreds of these are junior posts, many of which are found in the high-paying finance sector.
In the telecoms field, Nokia has just released Carbide.c++ 1.2, a set of tools for C++ developers writing applications for smartphones.
Some of the world's most critical systems are written in C++, and they will not be replaced in a hurry.
Where did it originate?
Stroustrup started work on what became C++ in 1979, at AT&T's Bell Labs. The first version was called "C with classes". Stroustrup said of C++, "the specific tasks that caused me to start designing and implementing C++ had to do with distributing operating-system facilities across a network.
"The more general aim was to design a language in which I could write programs that were both efficient and elegant. Many languages force you to choose between those two alternatives."
The first commercial application was released in 1985.
What's it for?
Stroustrup says that both Java and C# are rooted in 1980s style object-oriented programming to an even greater extent than early C++ was, and that in terms of its use of templates and generic programming, along with several powerful programming techniques, it is way beyond the scope of "the much-hyped proprietary languages". This enables the C++ programmer to use programming and design techniques more advanced than what is supported in the languages with which C++ is most often compared.
What makes it special?
The early advantages of C++, such as object oriented programming, modularity and portability of code, are now common features of other languages. But no other language has all the benefits of C++.
C++ is extremely concise, leading (once developers have become proficient) to greater productivity, and greater performance efficiency.
How difficult is it to master?
According to Stroustrup, it could take 18 months to become "comfortable" with C++.
Its presence on so many university curricula reinforces the impression that it is aimed at those with an academic bias and time to follow it through.
With a background such as C or object oriented programming you could begin to be productive in a few days. But to understand and become proficient with all the language constructs takes a lot longer.
Where is it used?
Systems programming, telecoms, embedded systems and finance applications.
What systems does it run on?
C++ is supplier-independent, and is supported, for example, by both the Eclipse development platform and - with controversial proprietary extensions that limit portability - by Microsoft's C++/CLI.
What's coming up?
The next version of the C++ standard, known for now as C++0x, should be released before 2010.
The classic textbook is The C++ Programming Language by Bjarne Stroustrup. Links to many resources can be found on his homepage.
There are hundreds of free tutorials available elsewhere online.
Most IT training companies offer C++, but you would pay a lot less for classes at a further education college.
Rates of pay
Junior C++ developers start at around £22,000-£35,000. Developers with two years' C++ and banking experience can earn £40,000 or more.
Computer Weekly/SSL salary survey
More information on C++ >>