Steve Burbeck once told me this Alan Kay story from his days at Apple.
A lot of the developers and managers at Apple were gathered around watching a presentation from someone about some "wonderful" new product that would save the world. All through the presentation, he had been stating that the product was "object-oriented" while he blathered on.
Finally, someone at the back of the room piped up:
"So, this product doesn't support inheritance, right?"
"that's right".
"And it doesn't support polymorphism, right?"
"that's right"
"And it doesn't support encapsulation, right?"
"that's correct".
"So, it doesn't seem to me like it's object-oriented". To which the presenter huffily responded,
"Well, who's to say what's object-oriented and what's not?" At this point the person replied,
"I am. I'm Alan Kay and I invented the term."
-- Kyle Brown
I was in the room when this happened, some time in the second half of the 1980s. The presentation was on Oberon, before anyone had really heard of it. It was basically a "what I did on my summer vacation" talk given by a quality engineer who had dropped by Wirth's lab while he was vacationing in Europe. The announcement really played up that this was the next big object-oriented system, so that's why Alan lowered the boom on the guy like that. The thing that amazed me was that the presenter just went right on like nothing had happened. I think I would have gathered up my slides, thanked the audience, and walked out!
I recall Alan's answer as being more like "Well, I invented the term, so I think I have something to say about it." He did NOT say his name, and I don't think most of the folks in the room recognized him (including the presenter), so the, um, impact of his statement was perhaps not as great as one might expect. Steve and I got a really good chuckle out of it though.
All of the following debate about whether the coiner of a term has special status is pointless, because if you look at Oberon1 features, they clearly do not include anything that any reasonable person at all would call "object oriented". It was all a mistake on the part of the presenter (maybe on Wirth's part too, I wouldn't know). So this is all much ado about nothing. Alan Kay was right by anyone's definition of OO.
Maybe you could move all this to another page, Who Defines Terms or something. In which case I would add another point: when industry marketing trolls heavily distort the meaning of terms (as occurs extremely often!), then a recognized technical authority does indeed have special status relative to the people who lie through their teeth. This is different than the logical fallacy of appeal to authority, although admittedly it teeters on the edge if it's not clear who is who.
This reminds me of another story that is often assumed to be apocryphal: Korn Shell Story -- Michael Ivey
As this page isn't named after Alan Kay, I'm going to co-opt it. In the generic case of someone, let's call him Fred, who only says, "I invented the term X so I know best!" then as the presenter I would just look at Fred like the self-obsessed kook he would have made himself out to be and move on. "And I invented Cheez Whiz too!" Whatever. Constructive criticism is better than appeals to authority, especially if that authority is yourself. Now, in Kay's case, he minimally backed up his statement with the standard definition, which was sufficient and elegant. Made for a good story. -- Sunir Shah
If Jimi Hendrix stood up and said "I invented heavy metal, and that was NOT heavy metal", I think your objection to an "appeal to authority" would simply not cut it. For better or worse, there ARE authorities. Alan Kay is an authority on what "object-oriented" means, especially in the context of whether it applies to a given piece of software.
But he isn't the authority - the computer science community at large has that role. And the community, like-it-or-not, has a definition of OO that is now a bit more inclusive than Alan Kay's. See also Is Java Object Oriented, Is Cee Plus Plus Object Oriented for more on that topic.
I suppose we simply disagree. Unlike Jimi Hendrix, Alan Kay did both discover the concept and invent the term "Object Oriented". The "community" - especially the Java Language and Cee Plus Plus community - may make whatever pronouncements they like, and I continue to stand by Alan Kay's assertions.
(Stuff about whether or not Jimi Hendrix invented heavy metal moved to Jimi Hendrix)
The argument is not too sound. To me this argument is tantamount to mothers saying to their child: "I know you I have given your birth". Giving birth to something does not give the full knowledge about something. Inventing and knowing are two different things. But mind you the one-liner was not valid but it was so well said that 10, 20 years later some still remember!
The mother may not claim full knowledge of her child, but to follow the metaphor, all she has to do is to tell the difference between her child and an impostor.
And a mother can be accepted in court to give expert testimony on certain things about the child, possibly including character; while she may or may not be absolutely correct, she can be considered to be far more expert on the topic than a stranger would be. And courts routinely reject supposedly expert testimony from non-experts. The opinion of an expert is not the final word on the subject, but it's usually the only place to start. Comparing the opinions of two experts is useful; comparing the opinion of an expert and a non-expert is pointless.
Suppose a physicist offered a paper, ostensibly about General Relativity, that clearly failed to address virtually every key aspect of the theory, and Einstein's comment, after reading it, was "I discovered General Relativity, and this isn't it." You guys can bluster all you want - my money's on Einstein (and Alan Kay).
Inventing and knowing everything in a discipline are two different ball-games. An example: Ward Cunningham has invented wiki and given it its definitive form. OK. Now if a guy goes around and makes a complete study on wikis and it takes him 10 years to do it, who'd be more knowledgeable in wikis: Ward or him?
I submit that Ward is a pre-eminent authority about what Wiki Nature (which is a very good analog to the context of the Alan Kay quote) is.
Excellent example. The question isn't "who knows more about...". Suppose some suit were giving a presentation about a product that, for example, was not web-based, did not allow users to author content and did not form links automatically, and then pronounced it a "wiki" -- with Ward in the audience. Suppose then that Ward quietly said "I invented a wiki, and that's not a wiki." Just like Einstein, Hendrix, and Alan Kay, my vote is with Ward on the question of whether a system is or is not a wiki.
"I invented the internet." - Al Gore
Except that Al Gore did not invent the internet, and Alan Kay did invent the term "Object Oriented". Jeesh, does ANYBODY teach history anymore?
OK. Al Gore never said, "I invented the Internet." It's urban legend. He said, and this is a direct quote, "I took the initiative in creating the Internet."
...by which he means that he has kept informed and been very supportive of improvements in computing's digital communication infrastructure.
...starting about ten years after the Internet was initially "invented," to give some perspective to the timeline.
''It's perfectly reasonable to paraphrase "I took the initiative in creating the Internet." as "I invented the internet". Why? Because saying "I created something" is very similar to saying "I invented something". Hey look, they're synonyms: thesaurus.reference.com
If it means the same thing, why do all examples of this lie (including the above) say "invent" instead of "create"? If you care about the truth, go read the original transcript, and then go look at Gore's record in congress - go read some of his congressional speeches, which contained phrases like "fiber optic networks" in an era when 99% of society hadn't heard the term, and you'll see he was telling the truth. Or don't, and live with the knowledge that you're perpetuating a lie without bothering to find out the truth for yourself. (and contrary to the comment about Gore supporters, I didn't vote for Gore.) Newt Gingrich: "Gore is the person who, in the Congress, most systematically worked to make sure that we got to an Internet."
Anyways, the only people who claim Gore did not lie are his supporters, blinded by their belief that Gore could not have said something so incredibly wrong.''
Saying "I took the iniative in creating something" is, however, not the same as saying "I created something." And no, I don't think he we was correct to say that. However, if you're going to argue, argue correctly.
Such as...Newt Gingrich? One would think that by now, with all the information available to debunk this puerile claim, even right-wingers would have stopped propagating it (along with what seems like thousands of flat-out lies about Clinton). It speaks volumes about the conservative movement's ability to manipulate the masses.
It's also the case that to say "I created X" is not by necessity at the exclusion of all others. It is my belief that this was buzzword "create" as opposed to literal "create". Silly creationists apart, I imagine that we're all familiar with the (questionable) use of "create" as a buzzword for what lower-level management would describe as "shape", "mould" or "direct". The intended meaning would appear to be "that he was responsible, in an economic and legislative sense, for fostering the development the technology that we now know as the Internet", which is not entirely untrue, though the choice of words could have been better.
Except that a name is not much of an invention! Alan Kay just came up with the good name.
The most important thing in the programming language is the name. A language will not succeed without a good name. I have recently invented a very good name and now I am looking for a suitable language. -- DonKnuth, 1967
The inventors were Kristen Nygaard and Ole Johan Dahl. But that's just minor details, of course Alan Kay was right in that incident .
Quick now, in what working system or systems were the ideas of Kristen Nygaard and Ole Johan Dahl expressed, what vision were they attempting to realize when they built their technology, and what do they have to say about Alan Kay's role in the creation of "Object Oriented"? I know the answers, I'm just wondering whether the other participants on this page do. It's ok to Google for the answer.
Try web.archive.org (SIMULA) Many cool ideas we now call object-oriented had existed. Kay promoted and implemented a specific combination, with a specific rationale, and coined the term "object-oriented" for it. The reason his definition should have held is so we could refer to that specific bundle/agenda/rationale. --Steve Witham
(Deleted much Thread Mode debating whether Alan Kay would be an angel if he danced on the head of a pin.)
Normally, I would accept that "I invented it, so there!" as a bit self-obsessed, but in response to "Who's to say what's object oriented or not?", the answer is both obvious and entirely appropriate. This is especially true when calm afterthought indicates that the presenter was way off the mark, anyways.
"So, this product doesn't support inheritance, right?"
"that's right".
Wrong. Oberon supports "record extension" (aka single-inheritance) perfectly fine.
"And it doesn't support polymorphism, right?"
"that's right"
Oberon-1, strictly speaking, didn't support it as Smalltalk supported it. This is the only correct claim in the list. However, Oberon-2 quickly remedied this with so-called "type-bound procedures" (aka Virtual Methods).
"And it doesn't support encapsulation, right?"
"that's correct".
I fail to see how the presenter could make this claim, when encapsulation and modularity go hand-in-hand, and modularity is the raison d'ĂȘtre of all Wirthian languages, except for Pascal. I find Oberon and Modula-2 to be exceptional at encapsulating things, more so than C++.
It sounds, to me at least, like the person giving the presentation didn't have a clue about the tool he was attempting to 'sell.'
Yup, the person didn't know full what they were selling. And yup, lot of folks do not seem to understand that modules encapsulate and hide information too - not just objects. A Mop Advocate would even argue that many so called object oriented languages (including smalltalk and java) don't even contain elegant modular and cellular features. The original analogy/definition of OOP from Alan Kay was supposed to be about cells (modular!) - but many OOP languages such as smalltalk, java, seem to lack elegant modular features (in the opinion of a Mop Advocate). Nor do many OOP languages even have type systems that clearly define the objects!. Here are interesting quotes:
"Many language designers and object orientation advocates have removed modules from the language, because they assert that classes are a generalization of modules. This is in part correct, as a module roughly correspond to a singleton class. More often than not, the unification of classes and modules makes code hard to read, because static and non-static members, which should belong to different scopes are mixed. This unification also forces the use of inheritance instead of import,which clearly changes the semantic of the program [Szy92]. Modules provide a clear separation of concerns, by containing only static members. The clear structure provided by modules is helpful in understanding and structuring a complex software system." --e-collection.library.ethz.ch
"The module allows to hide details of procedures and variables from its users (clients), and it embodies the principle of information hiding. The language Oberon [4] emerged from the urge to reduce the complexity of programming languages, of Modula in particular. This effort resulted in a remarkably concise language." --www.ethoberon.ethz.ch
See also Asimov And The Critic
See original on c2.com