Previous: Vision, Up: About Sheeple


1.1.2 History

Sheeple was originally written as a persistent library for use with Sykosomatic. Because of a desire to use it in other applications, it was rewritten as a regular prototype object system and provided as a standalone library meant for general-purpose OO hackery.

Persistent Sheeple has not been abandoned, instead, it's being implemented as a separate library using Sheeple's reflection features.

Sheeple is inspired by a number of Object-Oriented systems, mainly:

  1. CLOS (Common Lisp Object System)
  2. Slate, a Smalltalk-like language with Prototype Multiple Dispatch on which Sheeple bases its message dispatch system.
  3. Self, another Smalltalk-like language with lots of papers written about it, the concept of prototype OO, and ways to implement similar languages efficiently.
  4. Io, a pure prototype-based language. Sheeple, like Io, implements differential inheritance as an important component of the language.

It was written with the purpose of providing a lot of the goodies of CLOS programming in a completely prototype-based environment. As such, it shares a lot of features and syntax with CLOS. The most notable of these are multiple inheritance and multiple dispatch of methods.