Nygaard Classification Contested

In contest to NygaardClassification


Nygaard and Dahl may have invented a formal programming language with classes, but they were not the ones who coined the term "Object-Oriented Programming." That distinction belongs to AlanKay, the creator of Smalltalk. Kay described his language as "Object-Oriented" because unlike Simula, in Smalltalk, everything is an object, and every action was accomplished by sending messages to objects, so the language was accurately described as being oriented towards objects. Why is this so difficult for you to understand? Do you just like Nygaard's definition more, because it's roots are traceable to mathematics and engineering, instead of Kay's definition, which is rooted firmly in biology?

I'm at a loss to understand why Nygaard and Dahl get the honor of defining a term they 1) did not come up with, and 2) did not popularize.

To say that they get to define the term because Smalltalk uses classes which already existed in Simula makes about as much sense as letting the assembly hacker who first implemented routines define the term FunctionalProgramming. Alan Kay used the term first, so it's his.

Furthermore, the first system to have the notion of classes and objects was actually not Simula, but SketchPad, a graphical drawing machine made by Dr IvanSutherland in 1963 for his PHD thesis, predating Simula by five years: http://en.wikipedia.org/wiki/Sketchpad

Well, there's the thing that they developed similar ideas independently. The ideas were not conceived in the year that they made Simula publicly available (that would be 67). In Sutherland's PhD paper which preceded only the public availability of Simula but not necessarily the efforts of Nygaard and Dahl, ideas about classes and objects are just sketched as "sets of subroutines". Given that Simula was highly influential while Sketchpad was only indirectly through SmallTalk, given that Simula was a production level language used by many programmers while Sketchpad didn't run much at all, it wouldn't be quite right to recognize the primacy of Sutherland with regards to inventing OO, at best we can think fo Sutherland as co-inventor or independent inventor. But even if we do that, where's Sutherland definition of OO -- if any, and how would that be better than Nygaard's ?

Um, how was Simula highly influential? Compared to what? Costin, you've been hitting up a bunch of pages about OO in an attempt to prop up Dahl and Nygaard and their definition of OO, touting it as the definitive one, all the while encouraging us to ignore any other. It has just been pointed out to you that Nygaard and Dahl were not the first to build an OO system, IvanSutherland was. Your entire argument of definitiveness is based on who came first, and it's now been shown that they did not, in fact, come first. So, in that case, why should we accept their definition of this term, a term which even you admit they did not come up with? Just because the term deals with some concepts they helped pioneer? -- RyanTheStreetBrawler?

Just because the term denotes a distinct approach to programming that they pioneered. Their Simula was object oriented and had a decisive influence on everything that followed: Smalltalk, CLU, C++, etc. Everybody (and AlanKay) cites Simula as a source of inspiration, and nobody disputes that Simula was object oriented. Not to mention that the co-routines that Simula had in 67 are a useful feature yet to be emulated by mainstream OO (including Smalltalk). Their pioneering contribution is widely recognized by everybody but RyanTheStreetBrawler?. You can continue to dispute that all you want, maybe on a page of its own RyanTheStreetBrawlerVsNygaardClassification?, be my guest, I won't be paying much attention until you come up with something relevant. --Costin

Don't try to pin this whole thread on me Costin. I thought you were right, or at least made a good argument for accepting Nygaard's definition of what OO is, until it came out that they weren't even the first to come up with objects like you claimed they were. Then, after that, you tried to downplay the work of Sutherland while at the same time overstating the accomplishments of Nygaard and Dahl. If you actually think Simula is anything more than some obscure academic language, then you are seriously deluding yourself. -- RyanTheStreetBrawler?

It's not academic since it ran production systems. It had an user group and all that (BertrandMeyer was part of the user's group). So please check your history. Actually if you don't take my word for it, here's the evaluation of BertrandMeyer :

"Dahl and Nygaard are the undisputed founders of object technology. Their collaboration in the nineteen-sixties led to the Simula languages, culminating with Simula 67 which created a whole new discipline, even if it took another twenty years for the industry at large to understand it."

Who invented the Orange? God? Or the man that found it and named it?


To all the brave guys above who posit AlanKay was something in profound disagreement with NygaardClassification, can you come up with one instance where AlanKay excluded simula from what he meant as "object-oriented"?

I'm not aware of any objection to anything in Simula. However, two or three points in the AlanKayDefinitionForOo? seem to be there to exclude C++ (his definition was published in 1993, when Smalltalk was engaged in active competition with C++ for market share. The points in AlanKay's definition which seemingly exclude C++ are:

So where can I see this "definition" for myself?

On AlanKaysDefinitionOfObjectOriented.

I'm afraid that is not a proper citation of an AlanKay writing. It takes something out of the context where it is pretty clear that AlanKay describes the design principles behind SmallTalk. Nowhere is it made clear by AlanKay that "object oriented" is defined to be "designed like Smalltalk or else".

I'd like to see a formal citation to the NygaardClassification. I searched for it and found nothing besides a few references to "Classification of actions, or inheritance also for methods." Is that it? If not, when and where was his classification published?

Just take your time, breath and read NygaardClassification. Where the citation is from is right under your nose, were it not for your knee-jerk reactions you'd have seen it.

My knee-jerk reactions? I'm not the guy who made this page. I had never heard of this classification before so I Googled it and came up with nothing, which is why I asked about it. I must have missed the link at the very bottom of the piece. Sorry.


Personally, I think we all need a NewDefinitionForOo. None of the DefinitionsForOo proposed, including Nygaard and Dahl, is completely satisfactory. The N&D definition is more descriptive of programming styles then of languages. You can write OO code in CeeLanguage, but nobody would claim C to be an OO language just 'cause you can simulate a VeeTable with a struct full of function pointers. The AlanKay definition seems to change over time (unlike Nygaard and Dahl, Kay is still alive and thus able to publish), but parts of it seem contrived to deliberately exclude C++. OTOH PolymorphismEncapsulationInheritance has a very strong C++ bias; certainly proponents of WeaklyEncapsulated languages like PythonLanguage or CommonLisp have grounds to object.

Arguments over whether Nygaard/Dahl, IvanSutherland, or AlanKay has the stronger claim to "own" the term OO miss the point completely. Scientific jargon and terminology belongs to the scientific community; not to the first guy in a white coat to coin a particular phrase. The definition of OO is owned by us all; not by AlanKay or anyone else. If OO were defined to mean what AlanKay says, no more and no less, then I submit that a new term should be coined and the phrase "object-oriented" relegated to the status of marketing buzzword. Given that the phrase OO has such an incredible amount of currency, it would be a bad thing were that to happen.

-- ScottJohnson


EditText of this page (last edited January 7, 2011) or FindPage with title or text search