Gold Hill CLOS Object System
CLOS (Common Lisp Object System) is a dynamic, object oriented extension to Common Lisp that provides a powerful general purpose programming language. It is a popular tool for development of large scale systems. The value of CLOS is becoming more widely recognized today, based on it features and its very modern object system approach, supporting features such as the following:
Integration with Windows and with native operating systems and with other languages such as C is straightforward. CLOS offers an "open world" approach to systems development, and supports optimization for speed.
CLOS is a
very modern dynamic, principled, object-oriented,
class-centered, method-centered approach to tailoring a
system. It offers a major benefit of reducing the
turn-around time for development. This means you can get
your applications to market faster, and often at lower
The whole point of the object oriented approach is to take something and to customize it without having to change the code, without having to go back and edit any of the lines of code that already exist. Objectivity allows someone who doesn't have access to your source code to extend the functionality of functions that you have written without being forced to become involved in the details of the program you provided them. Users don't have to change their source code to use your extensions. This opens up the use of whole worlds of off-the-shelf class libraries of functionality.
CLOS also offers the capability of enabling your instances (or objects in general) to live from session to session. This powerful capability enables you to have your objects "persist" so that they may be returned as the result of a function or procedural call. The object may be the value of a function parameter or returned as a functional value. This capability allows you to make subclasses of a standard class that has the behavior you desire. It also enables your LISP functions to create new functions at runtime or alter old ones, depending on other parameters, saving significant amounts of programming time.
Some developers feel that Smalltalk's object model is too restrictive, making system optimization quite difficult in many applications. For example, Smalltalk lacks multiple inheritance, which CLOS offers. CLOS also offers multi-methods (or Mixins), which enable a much more concise expression of problems, which in turn is very important to incremental development. Smalltalk's GUI framework dates back long before current GUI approaches, which can make it difficult to integrate Smalltalk into current GUI approaches. These are examples of why some experienced developers feel LISP with CLOS is a significantly more robust environment than other object oriented languages can offer. Because of the standards that exist for CLOS, it is much easier to port CLOS code than when using code from less mature object oriented languages.
It is also interesting to note that a functional language (such as LISP with CLOS) is inherently well suited for parallel processing. If a function is free of side effects, values for the various variables can be computed independently and simultaneously. A programmer using a functional language need not give extraordinary thought to parallelism but simply program functions. A smart compiler will pick out which parameters should be evaluated in parallel.
The dramatic improvement in hardware functionality has made Gold Hill's GCLISP Developer or GoldWorks III with CLOS a broadly applicable technology today. Thousands of new users are beginning to experience for the first time the benefits of the power and flexibility offered by Gold Hill's dynamic object oriented programming environments enhanced by the addition of CLOS.
Copyright © Gold Hill Co. 2000 All rights reserved.