---
created_at: '2016-06-24T04:45:37.000Z'
title: Alan Kay on the misunderstanding of OOP (1998)
url: http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html
author: mmphosis
points: 240
story_text: 
comment_text: 
num_comments: 206
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1466743537
_tags:
- story
- author_mmphosis
- story_11966570
objectID: '11966570'

---
[Source](http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html "Permalink to  prototypes vs classes was: Re: Sun's HotSpot
   ")

#  prototypes vs classes was: Re: Sun's HotSpot
   


| ----- |

|  ![][1]  |   |  
| 

| 

## prototypes vs classes was: Re: Sun's HotSpot

**Alan Kay** [alank at wdi.disney.com ][2]  
_Sat Oct 10 04:40:35 UTC 1998_

* Previous message: [prototypes vs classes was: Re: Sun's HotSpot ][3]
* Next message: [prototypes vs classes ][4]
* **Messages sorted by:** [[ date ]][5] [[ thread ]][6] [[ subject ]][7] [[ author ]][8]
* * *
    
    
    Folks --
    
    Just a gentle reminder that I took some pains at the last OOPSLA to try to
    remind everyone that Smalltalk is not only NOT its syntax or the class
    library, it is not even about classes. I'm sorry that I long ago coined the
    term "objects" for this topic because it gets many people to focus on the
    lesser idea.
    
    The big idea is "messaging" -- that is what the kernal of Smalltalk/Squeak
    is all about (and it's something that was never quite completed in our
    Xerox PARC phase). The Japanese have a small word -- ma -- for "that which
    is in between" -- perhaps the nearest English equivalent is "interstitial".
    The key in making great and growable systems is much more to design how its
    modules communicate rather than what their internal properties and
    behaviors should be. Think of the internet -- to live, it (a) has to allow
    many different kinds of ideas and realizations that are beyond any single
    standard and (b) to allow varying degrees of safe interoperability between
    these ideas.
    
    If you focus on just messaging -- and realize that a good metasystem can
    late bind the various 2nd level architectures used in objects -- then much
    of the language-, UI-, and OS based discussions on this thread are really
    quite moot. This was why I complained at the last OOPSLA that -- whereas at
    PARC we changed Smalltalk constantly, treating it always as a work in
    progress -- when ST hit the larger world, it was pretty much taken as
    "something just to be learned", as though it were Pascal or Algol.
    Smalltalk-80 never really was mutated into the next better versions of OOP.
    Given the current low state of programming in general, I think this is a
    real mistake.
    
    I think I recall also pointing out that it is vitally important not just to
    have a complete metasystem, but to have fences that help guard the crossing
    of metaboundaries. One of the simplest of these was one of the motivations
    for my original excursions in the late sixties: the realization that
    assignments are a metalevel change from functions, and therefore should not
    be dealt with at the same level -- this was one of the motivations to
    encapsulate these kinds of state changes, and not let them be done willy
    nilly. I would say that a system that allowed other metathings to be done
    in the ordinary course of programming (like changing what inheritance
    means, or what is an instance) is a bad design. (I believe that systems
    should allow these things, but the design should be such that there are
    clear fences that have to be crossed when serious extensions are made.)
    
    I would suggest that more progress could be made if the smart and talented
    Squeak list would think more about what the next step in metaprogramming
    should be -- how can we get great power, parsimony, AND security of meaning?
    
    Cheers to all,
    
    Alan
    
    
    
    

* * *
* Previous message: [prototypes vs classes was: Re: Sun's HotSpot ][3]
* Next message: [prototypes vs classes ][4]
* **Messages sorted by:** [[ date ]][5] [[ thread ]][6] [[ subject ]][7] [[ author ]][8]
* * *

[More information about the Squeak-dev mailing list][9]  
 | 

 | 

[1]: http://lists.squeakfoundation.org/pipermail/squeak-dev/images/sf_topleft.gif
[2]: mailto:squeak-dev%40lists.squeakfoundation.org?Subject=prototypes%20vs%20classes%20was%3A%20Re%3A%20Sun%27s%20HotSpot&In-Reply-To=1.5.4.32.19981009224644.00ac6e90%40mail.frii.com "prototypes vs classes was: Re: Sun's HotSpot"
[3]: http://lists.squeakfoundation.org/008838.html
[4]: http://lists.squeakfoundation.org/012126.html
[5]: http://lists.squeakfoundation.org/date.html#17019
[6]: http://lists.squeakfoundation.org/thread.html#17019
[7]: http://lists.squeakfoundation.org/subject.html#17019
[8]: http://lists.squeakfoundation.org/author.html#17019
[9]: http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-dev

