<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Talk Like A Duck: Alan Kay on the meaning of OOP</title>
    <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>In Ruby, it's not the dog, it's the tricks!</description>
    <item>
      <title>Alan Kay on the meaning of OOP</title>
      <description>&lt;img src="http://talklikeaduck.denhaven2.com/files/2008-01-01_alan_kay.jpg" alt="Alan Kay" class="tease-image" width="128px"/&gt;
I've written before in this blog about how the meaning of the term "object-oriented programming" got hijacked from it's original meaning. For example I go into this in some length &lt;a href="http://talklikeaduck.denhaven2.com/articles/2006/07/29/about-me"&gt;in my mini-memoirs.&lt;/a&gt;
&lt;p&gt;I recently ran into an interesting site with links to &lt;a href="http://e7l3.org/classics.html"&gt;"Classical Computer Science Texts"&lt;/a&gt;, which in turn led me to this &lt;a href="http://www.purl.org/stefan_ram/pub/doc_kay_oop_en"&gt;e-mail exchange with Alan Kay on the meaning of OOP from July of 2003.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This exchange gives support, with details, for my description of Kay's concept of what Object-Oriented Programming was supposed to mean.&lt;/p&gt; &lt;blockquote class="pullquote"&gt;I'm not against types, but I don't know of any type systems that aren't a complete pain, so I still like dynamic typing. &lt;br/&gt;- Alan Kay&lt;/blockquote&gt; 
&lt;p&gt;As Kay explains, the key concepts came from biological cell communications modeled as networked "whole computers" and a desire to "get rid of with data"&lt;/p&gt;
&lt;p&gt;As for the influence of Simula on Smalltalk's notion of classes and inheritance:&lt;/p&gt;
&lt;blockquote&gt;I didn't like the way Simula I or Simula 67 did inheritance (though I thought Nygaard and Dahl were just tremendous thinkers and  designers). So I decided to leave out inheritance as a built-in feature until I understood it better. - Alan Kay&lt;/blockquote&gt;
&lt;p&gt;And summing it up:&lt;/p&gt;
&lt;blockquote&gt;OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them.&lt;/blockquote&gt;
&lt;p&gt;I'd argue that you can do this in Ruby as well. I don't know if Ruby was on Kay's radar in mid-2003.&lt;/p&gt;

</description>
      <pubDate>Tue, 01 Jan 2008 14:39:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f7442bb9-2a85-4aa9-945b-25d69c9133fb</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop</link>
      <category>ruby</category>
      <category>smalltalk</category>
      <category>types</category>
      <category>alankay</category>
      <trackback:ping>http://talklikeaduck.denhaven2.com/articles/trackback/484</trackback:ping>
    </item>
    <item>
      <title>"Alan Kay on the meaning of OOP" by eddie pasternak</title>
      <description>&lt;p&gt;&amp;#8220;got hijacked from it&amp;#8217;s original meaning.&amp;#8221;&lt;/p&gt;


	&lt;p&gt;OOPS&lt;/p&gt;</description>
      <pubDate>Thu, 03 Jan 2008 12:02:29 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:73d54c63-7e97-4a49-bac5-85d6e0e7d512</guid>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop#comment-2982</link>
    </item>
    <item>
      <title>"Alan Kay on the meaning of OOP" by Rick DeNatale</title>
      <description>&lt;p&gt;Daryl,&lt;/p&gt;


	&lt;p&gt;Actually Alan wasn&amp;#8217;t responsible for MVC, that was Trygve Reenskaug, who was a &lt;a href="http://folk.uio.no/trygver/themes/mvc/mvc-index.html" rel="nofollow"&gt;visiting scientist at Xerox PARC&lt;/a&gt; for a year starting in mid-1978.&lt;/p&gt;


	&lt;p&gt;Trygve has also been trying for years to foster a role-based approach to object-oriented design which decouples object interactions from classes and inheritance, seeing these, rightly in my view, as separate layers of abstraction.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Jan 2008 11:07:47 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:b82525f5-a1ea-44f4-a73a-9a6c75935e00</guid>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop#comment-2981</link>
    </item>
    <item>
      <title>"Alan Kay on the meaning of OOP" by Rick DeNatale</title>
      <description>&lt;p&gt;Tony,&lt;/p&gt;


	&lt;p&gt;You might think it&amp;#8217;s rubbish, but Alan Kay is the man who coined the term &amp;#8220;object-oriented-programming.&amp;#8221;  It&amp;#8217;s those who perverted it who heaped on the rubbish. IMHO.&lt;/p&gt;</description>
      <pubDate>Wed, 02 Jan 2008 21:49:38 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:a888b7a7-01fc-46fb-a4e3-69796616e11a</guid>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop#comment-2980</link>
    </item>
    <item>
      <title>"Alan Kay on the meaning of OOP" by Tony Marston</title>
      <description>&lt;blockquote&gt; OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme  late-binding of all things.&lt;/blockquote&gt;

	&lt;p&gt;This is absolute rubbish. The fundamentals of OOP are encapsulation, inheritance and polymorphism &amp;#8211; nothing more, nothing less. Everything else is purely incidental and of no consequence. Those who say that OOP is more than this are trying to make OOP more complicated than it need be, or trying to make themselves appear more intelligent than they really are.&lt;/p&gt;</description>
      <pubDate>Wed, 02 Jan 2008 09:15:42 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d9b463fd-2efa-4625-b281-9954c5ffb40d</guid>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop#comment-2979</link>
    </item>
    <item>
      <title>"Alan Kay on the meaning of OOP" by Daryl Oidy</title>
      <description>&lt;p&gt;If he doesn&amp;#8217;t like what happened to the term &amp;#8220;OOP&amp;#8221;, I&amp;#8217;d hate for him to see what passes for &amp;#8220;MVC&amp;#8221; these days.&lt;/p&gt;</description>
      <pubDate>Tue, 01 Jan 2008 17:58:34 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c782c9a2-2f99-4ca7-b573-2e1847d30213</guid>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop#comment-2978</link>
    </item>
    <item>
      <title>"Alan Kay on the meaning of OOP" by Randal L. Schwartz</title>
      <description>&lt;p&gt;Perl certainly qualifies, so I presume Ruby would as well.&lt;/p&gt;</description>
      <pubDate>Tue, 01 Jan 2008 15:16:52 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5ea52011-3012-4e98-9a34-2e761a996a8c</guid>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/01/01/alan-kay-on-the-meaning-of-oop#comment-2977</link>
    </item>
  </channel>
</rss>
