Programming standard is used at every level of computing
What is it?
C++ is a general purpose programming language that has been around for 20 years and is well established throughout the IT industry.
When the Java language was released in 1995 many commentators saw it as the natural successor to C++, to the irritation not only of C++ creator Bjarne Stroustrup, but also of James Gosling, the father of Java.
In the event, C++ has carved out niches for itself in web development and open source computing, while retaining its strongholds in finance, telecoms and embedded computing.
Borland and Sun have released new C++ tools in the past couple of years, and C/C++ support has been added to the IBM-backed Eclipse platform.
Where did it originate?
Like its predecessor C, C++ was developed at AT&T's Bell Labs. The first commercial release was in 1985. Stroustrup's idea was to create a "better C", which retained almost all of C as a subset and supported C styles of programming.
All the major platform and software suppliers supported the new language quickly, and it was made an ISO standard in the late 1990s.
What is it for?
Like C, C++ supports "low-level" programming, but also object-oriented programming, modular development and code re-use.
What makes it special?
C++ is highly portable, concise to write, and compatible with pre-C99 C.
How difficult is it to master?
Stroustrup said, "C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg."
Stroustrup has some detailed advice on learning C++ on his website (see Training box). For example, he turned on its head the question of whether you should learn C first. He said, "The C subset of C++ is easier for novices to learn and use than C itself. To use C well, you need to know tricks and techniques that are not anywhere near as important or common in C++ as they are in C."
According to Stroustrup, you can learn the basics of C++ in a week or two. However, he said, "Most experienced programmers I have talked with quote half a year to one and a half years for becoming really comfortable with C++ and the key data abstraction and object-oriented techniques it supports."
That assumes that they learn on the job and stay productive - usually by programming in a "less adventurous'' style of C++ during that period.
Where is it used?
As well as its established role in systems programming and telecoms, C++ is used in interactive television and mobile computing, and it is in demand for investment banking, derivatives and other City and finance applications.
What systems does it run on?
Portable and supplier-independent, C++ is used at every scale of computing, from handheld devices and embedded processors to mainframes. It is embraced across the board from Microsoft to the wilder fringes of the open source community.
What is coming up?
The Boost website provides free, peer-reviewed portable C++ libraries, proposed for inclusion in the next C++ standard.
Rates of pay
C++ developers with Unix and SQL skills earn from £25,000, rising to £40,000+ with experience. Salaries are much higher in digital television and City jobs.
C++ training is available from most commercial training organisations, but further education colleges and other public sector educators provide cheaper alternatives. There are many websites devoted to C++, and many free tutorials. You can find a good set of links and tutorials on the Cambridge University Engineering Department website.
Bjarne Stroustrup's website contains advice on learning C++ and plenty of useful links.