| LOOPS (Lisp object-oriented programming systems) is written in Interlisp for the Interlisp-D environment, was a Xerox product and is from around 1981. CLOS (Common Lisp Object System) is a general OOP standard extension for Common Lisp. A specification was proposed in 1987/88. CLOS was included in the Common Lisp standard and widely implemented by various implementations. Both were a "system" -> meaning that it is available and programmable also at runtime. LOOPS is an actual piece of software with a GUI, which integrates into the Interlisp-D development environment. LOOPS was based on message sending, classes, methods, interactive changes to the object system. CLOS does not use message sending, but calling generic functions with multi-methods and multiple dispatch. LOOPS supports Access-oriented Programming with Active Values. Demons can act based on access to objects. CLOS has no direct support for that. Maybe partial (-> :before & :around &:after methods in CLOS). LOOPS includes a rule-system. CLOS systems have that as extensions. It's not a part of CLOS itself. LOOPS includes graphical & menu tools to browse and edit objects. CLOS systems have some of that as extensions, depending on the implementation. LOOPS was a programming system for knowledge-based systems, like Expert Systems. CLOS was not designed for that, but such programming systems were also developed for Common Lisp, some using CLOS. Example: KnowledgeWorks from LispWorks. LOOPS was later rewritten as CommonLOOPS for Common Lisp. The software "Portable Common LOOPS" (PCL) then was further developed into a portable (and widely ported) and complete prototype implementation of CLOS + MOP. |