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.
www.boost.org
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.
Training
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.
www-h.eng.cam.ac.uk/help/tpl/languages/C++.html
www.research.att.com/~bs/bs_faq2.html