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.
It's Sladhdot. Watch me..
'When I invented the term Object Oriented, C++ was not what I had in mind.' - Alan Kay.
I am TheRaven on Soylent News
Coming 3... 2... 1...
This sort of response to the sentence "You can't argue with that" is exactly the kind of insightful commentary I expected the first comment to be, because indeed this is Slashdot.
Contribution to Object Orientation? That's like an award for hammer-based carpentry.
In case anyone is wondering, his name is pronounced as "buh-JARN-ee strowst-RUP".
Is Slashdot hanging in its Chrome tab for anyone else?
Who knew that there was an annual award for such a specialized field? It's surprising that Stroustrup hasn't gotten this award already. Based on the Wikipedia entry about this prize, it looks like in 2013 and 2014 they couldn't think of anyone else who created a popular object-oriented language. Maybe somebody should tell 'em about Guido Van Rossum and James Gosling. And what about the STL guy who was just interviewed here? Not to mention the Objective-C guy, whoever he is. (I'm sure I've left many other deserving candidates out - sorry about that.)
What do you think, Linda?
Is Cxx the cat's meow? Whiskers? Whiskey?
In the words of the great bard, only women bleed when cxx is used in kernel code.
I thought Dahl-Nygaard was an Indian soup.
But a question for those who have: Does it still win with dynamic memory allocation? How granular is the dynamic memory allocation? Complete like C? or it is a bastardized version where the common block sizes could be defined at run time and then it runs without ever calling free()? I could imagine the language getting malloc() but not free() to retain speed.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Because its requirements, chosen by its designer, were misguided and impossible to achieve with a clean, elegant design.
Attempting to be compatible with C was a terrible mistake. The resulting language complexity, inconsistency, and limitations resulted in an unsafe language much harder to use than is justifiable.
What would have been wrong with just creating a compiler which was both a C compiler, and also a compiler for a clean OO language.
Programs could have had C functions in some source files/directories, (considered unsafe, of course), and clean OO modules in other files / directories. An easy way of using data in some C types such as basic numbers, arrays, and strings within the OO language could have been crafted, and a no-muss-no-fuss way of calling C functions from OO and vice versa could have been included.
What was lacking was the courage to drag programmers away from C rules and conventions enough to create a simple and powerful OO language.
The ugly compromise approach set back OO programming momentum, cost millions of person-years of unnecessary debugging effort and allowed many, many continued buffer overflow exploits etc. that ruin the reputation of software in general.
Where are we going and why are we in a handbasket?
"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.
Kudos, and well deserved.
C++ is my favorite language to program with, over the past few years.
Uh, Linux geek since 1999.
The "most prestigious prize in object-oriented computer science". Low bar there. OOP is a hoax. Not everything is an object. C++ is all things to all programmers and nearly all of it bad. It was already bad before templates, the way temporaries would pop up to screw you all over the place. Add templates and the language is an utter disaster. Use templates to implement a functional paradigm in a fundamentally procedural language and WHAT THE FUCK WERE YOU THINKING?
C++ rewards good design but brutally punishes poor designs.
You hit the nail on the head, somewhere in the early 90's, language vendors stopped claiming "Our language supports OO concepts" and started claiming "Our language is OO".
The first C++ compiler I used professionally was Wacom's (circa 1991). Back then the Watcom C++ extensions were not part of the language, they were implemented with a bunch of C macros pulled in with include files, the macros themselves were riddled with goto (another macro) statements. I still have nightmares....
The fact is any general purpose language can be used to implement an OO design because OO is not about language features, it's a design methodology, or at least that's what I was taught when studying for my CS degree in the late 80's. As my smalltalk lecturer pointed out at the time, most of the examples in K&R's "The C language" are also great examples of OO design that were written long before the term OO was invented.
Disclaimer: These days I spend much more time tying spaghetti balls with different flavoured source together than I do trying to untangle the individual gordian knots.
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
In my career, C++ has been my least favorite language. There's really nothing I like about it, save its introduction of // commenting. I hate looking at a page of C++ and not having any idea and knowing I can have any idea ever given that one page.
I wouldn't recommend it for anything, for anyone, ever.
Face it.. there are *lots* of other languages that do things better. But C has big inertia: it was free with the Bell Labs tapes with Unix; there were early C compilers for microcomputers. It's not like there was any significant non-IBM PL/I presence in the market (PL/I has a lot of what C provides: pointers, dynamic allocation, structures, etc., but is safer).
C was invented to allow writing direct hardware access stuff without the pain of assembler, so we have fairly weak typing, the ability to randomly point places in memory, etc. All very nice if you're writing an OS on a mini or microcomputer with 16k of RAM. Not so nice for "production code".
How many "buffer overflow" vulnerabilities have been created because of C? How much time has been wasted dealing with the sequelae of those vulnerabilities?
Processor time is cheap, developer time is not. What's wrong with doing bounds checking automatically?
But anyway, poverty stricken academics took up Unix and C, because it was cheap. No license fees to DEC or IBM or Burroughs for compilers, etc. You could do your CS masters thesis or PhD dissertation without having to spend a fortune (or pay your precious grant funds out).
So of course, we see a whole raft of bastard children of C, which implement great ideas while retaining some weird backward compatibility to C (often because the first implementations actually compiled to C, which was then compiled to machine code).
C++ is to C as Lung Cancer is to Lung.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
considered the most prestigious prize in object-oriented computer programming
I won't put it past /. submitters or editors, but why can't the very intelligent, accuracy-blessed computer coders out there, at least, understand this? If you're not doing any science, then it can't be "computer science."
The Admin and the Engineer
Re: "object-oriented computer science" -- Where is the "science"? Where are the theories, the metrics, and the independent repeats to verify?
Table-ized A.I.
Where are the "Functional Science" awards? You gotta have Paradigm Envy, no?
And how about the Procedural Awards, and the Goto Awards? I hear the Goto team racks up a lot of air-fare.
Table-ized A.I.
Because you don't understand how to use memory properly so lets make it the compilers problem :-)
Yuck. C++. How do you get an award for that dumpster fire?
Program crashes compiler (because C++ is too powerful). /* from: http://www.fefe.de/c++/c%2b%2b-talk.pdf */
template struct Loop { Loop operator->(); };
int main() { Loop i, j = i->hooray; }