6th Interview
6th Interview
However, the key is the techniques that the language features exist to
support. Most changes to the text and to the organization were done to
reflect new and better ways of using the language and to take advantage
of the standard library.
The standard library made it possible for me to make the language more
accessible to new C++ programmers. By relying on library types--such
as vector, list, and map--I can postpone the trickier points of C-style
pointer and array manipulation until it is assumed that the reader is
familiar with the basics--or even with an appendix.
This doesn't mean that The C++ Programming Language has been
watered down. It was my aim to write a book that offers much to
essentially every serious C++ programmer. I suspect I have come close
to that ideal. Some of the most experienced and accomplished C++
programmers helped me by reviewing drafts (you can find their names
in the acknowledgement section) and every one of those learned
something significant from their effort.
Stroustrup: People who know my first and second editions will note
that the reference manual has been replaced by the library description.
Given that an international standard for C++ is imminent, I did not
think it appropriate for me to provide a manual that paraphrased the
standard. To compensate, the tutorial text is a bit more detailed in
places and a couple of appendices provide necessary reference
materials (such as the complete C++ grammar).
Stroustrup: There are many new exercises, but most of the old
favorites remain. It is interesting that Tony Hansen's solutions to the
exercises in the first edition are mostly still valid, but in many cases the
newer language features and the library make improved solutions
feasible.
We can always discuss what constitutes a "major" feature, but I think "a
question of hammering out details" is close to the truth. No new
language or standard library facilities will be introduced in this standard
and none currently present will be removed. We are in the final draft
stage where the focus is on precise specification of the current feature
set. The time for significant improvements (and significant damage) is
done. This is one of the major reasons I completed my third edition
now. It describes the language we will live with (happily, I hope) for the
next five to ten years.
Stroustrup: They still have a long way to go. In particular, I think that
the PC suppliers have focused on flashy graphical features at the
expense of solid work on the key language mechanisms. This is
especially sad because a few "man years" of effort on the basics (such
as generating good code for concrete types, effective inlining, good
template expansion, better error detection, and better error messages)
would be of immediate and significant benefit to hundreds of thousands
of programmers.
My hope is that the new degree of stability that the standard will bring
will encourage the compiler suppliers to make the relatively small
investment in quality that is needed in the basic compiler technology.
People often claim that Java is similar to C++. The similarity is only
skin deep. The syntax is similar, but the computational model, the basic
efficiencies and degrees of expressiveness, and many key programming
techniques differ. When you consider the libraries need to work
effectively, the two languages appear more different still. Java is not a
good match for the C++ design criteria. Java doesn't even come close
and I don't think it could come close given its own very different design
criteria. Similarly, C++ doesn't meet Java's design criteria.
I'm sure that there is a niche for Java, just as there is for other
languages. I just find the drum beat of advertising annoying. In
particular I find Sun's ads that say "100% pure. No non-Java codes"
offensive and a bit pathetic. Java cannot provide both platform
independence and a major source of profits for its supplier(s).
Amazon.com: What do you see in the near and long-term future for
C++?