In diesem Interview dreht sich alles um Bjarne Stroustrup, den Erfinder von C++ und Autor der Titel „Die C++-Programmiersprache“ und „Eine Tour durch C++“, die von Frank Langenau ins Deutsche übersetzt hier im Hanser Verlag erschienen sind. Freuen Sie sich auf einen ganz persönlichen Beitrag von und mit ihm.
Bjarne Stroustrup, what motivates you to write a book?
I built C++ to help solve important problems and you can’t build a tool and just hope that it will be used. You need to explain what it is good for and show how to use it well. All my writing serve that aim.
Why is C++ PROGRAMMING so important to you?
C++ is one of the most widely used programming languages in the world. We all use programs writing in C++ every day, so the quality of C++ code it important to us all. My book “The C++ Programming” has presented C++ to serious programmers from the first day C++ was released from Bell Labs. It is still the most comprehensive explanation of how to use C++. If you are a language lawyer, you can read the ISO standard itself. If you are a novice, you could look at my textbook “Programming: Principles and Practice using C++. If you are an experienced programmer wanting to refresh your knowledge of C++ there is my 180-page “Tour of C++.” There are many other books on C++, but none as comprehensive as TC++PL4.
What does your typical workflow for writing look like?
I hardly ever get time to just write. There are design/applications/programming; there are lectures to be given; there is the work on the standard; there are the work-related travel to be done. I have rarely had the luxury of being a full-time writer. I start doing my morning email over breakfast. That’s probably a bad habit, but there are often things that are best handled immediately. After an hour or two doing that, I get to do other things. I write best when I can get a whole day, but mostly the best I can hope for is a few hours in-between other work. I don’t have a complete outline before starting. I have a general notion of which ideas should be transmitted to the reader. I then look for key examples to illustrate ideas, principles, and technique. It typically takes a full week to get started on a new chapter. Once I have made a start, sections can be written in a more predictable way. A book grows “organically” from the demands of clarity and completeness. Teaching/lecturing help guide the presentation style.
There is no such thing as “regular hours” for a programmer or an academic. I use a plain old text editor and some layout software. TC++PL4 is – like its earlier editions – done with a combination of troff and some homebrew software for dealing with fonts, indexing, etc. It’s “plain old Unix” rather that GUI stuff.
Is there a point in the book C++ PROGRAMMING LANGUAGE which is particularly important to you?
Each edition of TC++PL has been an almost complete rewrite of its predecessor. Each time, I have tried to capture what is new and different in the C++ world and tried to push for the best tools and techniques available. The language features are there to serve programming styles and techniques. I try not be stuck in a decades old view of programming. The purpose of a book is to cause a change. There is no point in just repeating what everybody knows. That’s the hard part of programming and it is also the thing that I find many people dislike: just when thy have become settled and comfortable with a way of doing things, a new edition of TC++PL comes and upsets the equilibrium. I present new – and supposedly better – ways of designing and programming. That upsets some people. In TC++PL4, there is a heavy emphasis on resource management using RAII, on exceptions, and on the standard library. I would have liked to be a bit more radical, but the need to be precise and comprehensive gets in the way of that. Similarly, I would have liked to give a more comprehensive description of the concurrency mechanisms and techniques, but I didn’t have the time or the pages for that. The 1300 pages of TC++PL4 is near most people’s limit.
What did you find especially positive about the writing process and what would you do differently next time? Are you planning or already writing a new book?
It’s work. Writing a massive technical book is exhausting. I just try to do the best I can explaining the right things, explaining them in a comprehensible way, and not making too many mistakes.
No. About the time I finished TC++PL4, I also finished PPP2 and Tour++. That’s enough for now. Currently, I am helping design C++17 and I’m back in industry to refresh my understanding of real-world software and the constraints under which it is constructed. Maybe someday, I’ll have something new to say, but until then, I don’t write another book.
Thank you very much for the interview, Bjarne Stroustrup!