Dr. Alan Kay on the Meaning of “Object-Oriented Programming”

In this email exchange, Alan Kay, the person who invented the term Object-Oriented, outlined the original intent behind the term Object:

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.

Guideline on Object Design

Alan has written a series of some good class design and implementation guidelines post. URL: Object Design and Implementation

Rule #1: Practice Drawing Make Good Classes
Rule #2: Documation!
Rule #3: Alan’s Class Template (“ACT”)
Rule #4: Never Walk, But Fly!!!
Rule #5: Always evaluate How We Fly!
Rule #6: No Private Variable Shall Have Direct Access to the Class Public Interface
Rule #7 & #8: All about Numbers!!