Bjarne Stroustrup Awarded 2015 Dahl-Nygaard Prize
mikejuk writes Bjarne Stroustrup, the creator of C++, is the 2015 recipient of the Senior Dahl-Nygaard Prize, considered the most prestigious prize in object-oriented computer science. Established in 2005 it honors the pioneering work on object-orientation of Ole-Johan Dahl and Kristen Nygaard, who designed Simula, the original object-oriented language and are remembered as "colorful characters." To be eligible for the senior prize an individual must have made a "significant long-term contribution to the field of Object-Orientation," and this year it goes to Bjarne Stoustrup for the design, implementation and evolution of the C++ programming language. You can't argue with that.
C++ is a three-way compromise between good object oriented design, backwards compatibility with C, and high performance. Stroustrup has never billed it as anything else.
Of course, the fact that C++ is a compromise between three goals that are often at odds means that it isn't anywhere near the best language for object-oriented design (loses to Smalltalk and many others), for backwards compatibility with C (IMO Vala does better -- YMMV), or for high performance (loses to FORTRAN). But it does a reasonable job of "good enough" on all three fronts, and that is what has made it so enduringly popular over the last few decades.
So, no, C++ isn't the best language for object-oriented programing. It's not even close. But that doesn't mean it is a bad language.
Contribution to Object Orientation? That's like an award for hammer-based carpentry.
Well it's been many, many years since I've used it, which was back in the late 80s and early 90s. My impression from this time is that C++ is unquestionably a work of genius, but that I didn't particularly like it. Part of that is that we didn't really know how to use it effectively. In that era most object oriented programmers used concrete inheritance way too much. Part of that is due to aspects of what we thought an OO language should have that turned out to add complexity while being only marginally useful in practice (e.g. multiple concrete inheritance and operator overloading).
But in terms of meeting its design goals C++ is a tour de force of ingenuity -- even if some of those goals are questionable by today's standards. The very fact that we know some of those features aren't necessarily ideal is because they were taken out of the realm of academic noodling and put into a practical and highly successful language that could tackle the problems of the day on the hardware of the day. It's hard to overstate the practical impact of C++ on the advancement of both theory and practice of software development.
Any prize for contributions to OO programming pretty that didn't include Stroustrup in its first recipients would be dubious.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
"I would try out the [C++] language [at AT&T] as it was being developed and make comments on it. It was part of the work atmosphere there. And you'd write something and then the next day it wouldn't work because the language changed. It was very unstable for a very long period of time. At some point, I said, no, no more. In an interview I said exactly that, that I didn't use it because it wouldn't stay still for two days in a row. When Stroustrup read the interview he came screaming into my room about how I was undermining him and what I said mattered and I said it was a bad language."
"[C++] certainly has its good points. But by and large I think it's a bad language. It does a lot of things half well and it’s just a garbage heap of ideas that are mutually exclusive. Everybody I know, whether it’s personal or corporate, selects a subset and these subsets are different. So it’s not a good language to transport an algorithm—to say, "I wrote it; here, take it." It’s way too big, way too complex. And it’s obviously built by a committee. Stroustrup campaigned for years and years and years, way beyond any sort of technical contributions he made to the language, to get it adopted and used. And he sort of ran all the standards committees with a whip and a chair. And he said "no" to no one. He put every feature in that language that ever existed. It wasn't cleanly designed—it was just the union of everything that came along. And I think it suffered drastically from that."
Ken Thompson; cited in Seibel, Peter (2009). Coders At Work. p. 475.