Interesting history of C++ from 2006-2020 document by C++ creator Prof. Bjarne Stroustrup

This document authored by Prof. Bjarne Stroustrup, who is also the creator of C++ (programming language), is titled: Thriving in a crowded and changing world: C++ 2006–2020 and is dated June 2020.

The overview (abstract) of the document can be viewed here: https://dl.acm.org/doi/abs/10.1145/3386320 .

Download link for the full document which is a lengthy 168 pages: https://dl.acm.org/doi/pdf/10.1145/3386320 .

As I am out of technical detail level stuff now, I did a quick browse-read of the initial part of the 168 page document, and have given my comments below.

Congratulations to Prof. Stroustrup on the long and energetic life that C++ has had in the software industry for a period of around three and a half decades (assuming 1986 was when it started getting used in a significant way in industry). That is an extraordinary achievement in the fast changing tech. world especially given that C++ had not had "serious commercial backing" like some other programming languages.

Stroustrup states, "From 2006 to 2020, the C++ developer community grew from about 3 million to about 4.5 million." About the earlier background, he writes that from 1979 to 2006, C++ " grew from a one-person research project to a community of about 3 million programmers."

Prof. Stroustrup points out that he "was always friends with Dennis Ritchie and Brian Kernighan, eating lunch with them most days for 16 years. I learned a lot from them and still see Brian regularly." He credits both Ritchie and Kernighan with contributions to C++ and mentions that he (Stroustrup) was a major contributor to C.

I enjoyed reading this human side of it, given that I had been an extensive user of C and C++ with the K&R book being my teacher of C language (and helping me to migrate from COBOL applications programming to systems software programming) in 1985.

Stroustrup writes, 'In the late 1980s, the "object-oriented" hype became deafening and stole the message of C++ from me. My opinion of what C++ was and was meant to become was widely ignored - many never heard it.'

He then says that he 'never used the phrase "C++ is an object-oriented programming language"' and that him not saying so was not known or ignored. He clarifies that C++ supports object-oriented programming (different from it being an object-oriented programming language).

Hmm. This is an eye-opener to me. As somebody who was on the side of creating software solutions using programming languages like C and later C++, along with design techniques, I did come under the impression that "C++ is an object-oriented programming language" though I was aware that C++ could also be used in a more C like way (and thus not use object-oriented features).

My first exposure to C++ was a Baan Company project in 1987-88 where I played the lead role (the project got dropped later as it was beyond my tech. ability then), to create a platform independent Window Manager API (library) that would work on top of both X-Windows and MS-Windows (what later got known as Microsoft Windows). I got X-Windows source code from MIT (on nine track tape shipped from USA to Bombay) and when I read some of the code I found it to be somewhat different from C and was wondering what it was! If I recall correctly, these parts of MIT's X-Windows source code or associated toolkit libraries or samples code turned out to be the first C++ code I read!

Note that the low-level client programming interface to X-Windows was (and continues to be, I guess) Xlib , https://en.wikipedia.org/wiki/Xlib , which is a C language interface. So one can write X-Windows client programs in C language that call the C language Xlib library functions. But I have this vague recollection of looking at some code in the X-Windows source code dump that we got then which was like C but different, and which, if I recall correctly, turned out to be C++. Perhaps it was some toolkit library on top of Xlib that was in C++. Or maybe it was some sample programs written in C++ that used the Xlib C language interface library.

In later years I did a lot of C++ programming work, Object Oriented Analysis and Design (OOAD) work as well as GUI development work (both X-Windows/Motif as well as Microsoft Windows programming). Subsequently I even taught C++ programming and Windows programming to Indian university students as well as to software development staff of Indian corporate companies [C++ Course contents that I used/created for university students I taught: https://raviiyerteaches.wordpress.com/2013/08/15/cpp-programming/ ].

Stroustrup writes, 'An even more serious problem was that C++’s role in education was sharply decreasing. C++ was no longer "new and interesting" and Java was being marketed directly to universities as an easier and more powerful language.' I have experienced that directly in the Indian university (2003 to 2011) where I was offering free service teaching programming courses (and more). I had to defend teaching C++ and not replacing it with Java. I was for having a separate Java web programming course - I taught that course too. The issue was that for job interviews of passed out students, C++ skill was important at that time in the companies that those students would approach for jobs. And the general view was that if a person is having decent capability in C++ programming then he can easily pick up Java. So by teaching students C++, the job prospects of students were significantly enhanced as compared to them being taught Java and not being taught C++.

About the various fields in which C++ has been used, Stroustrup writes C++ usage is strong in the telecommunications industry where it was born. Other industries include games, finance, microelectronics, movies and aerospace. In science and engineering, Stroustrup writes that C++ is used in High Energy Physics, biology, space exploration, medicine and much more.

From my quick browse-read of the initial part of this document, I think it seems to be an absolutely superb contribution from Prof. Stroustrup to historical accounts of software development field.

Comments

Archive

Show more