Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save xpepper/7fcf0392656a2d1e54e3db1f7e03a7ea to your computer and use it in GitHub Desktop.
Save xpepper/7fcf0392656a2d1e54e3db1f7e03a7ea to your computer and use it in GitHub Desktop.
Modern Definitions of "Object" and "Object Oriented"

An object is a first-class, dynamically dispatched behavior. A behavior is a collection of named operations that can be invoked by clients where the operations may share additional hidden details. Dynamic dispatch means that different objects can implement the same operation name(s) in different ways, so the specific operation to be invoked must come from the object identified in the client's request. First class means that objects have the same capabilities as other kinds of values, including being passed to operations or returned as the result of an operation.

A language or system is object oriented if it supports the dynamic creation and use of objects. Support means that objects are easy to define and use. It is possible to encode objects in C or Haskell, but an encoding is not support.

(http://wcook.blogspot.it/2012/07/proposal-for-simplified-modern.html)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment