The Common Lisp Object System defined a powerful and flexible type system that builds on more than fifteen years of experience with object-oriented programming. Most current implementations include a comfortable suite of Lisp support tools including an Emacs Lisp editor, and interpreter, an incremental compiler, a debugger, and an inspector that together promote rapid prototyping and design. What else might one want from a system? We argue that static typing yields earlier error detection, greater robustness, and higher efficiency and that greater simplicity and more othogonality in the language leads to a shorter learning curve and more intuitive programming. These elements can be found in Eiffel and a new object-oriented language, Sather, that we are developing at ICSI. Language simplicity and static typing are not for free, though. Programmers have to pay with loss of polymorphism and flexibility in prototyping. We give a short comparison of CLOS, Eiffel and Sather, addressing both language and environment issues.
The different approaches taken by the languages described in this paper have evolved to fulfill different needs. While we have only touched on the essential differences, we hope that this discussion will be helpful in understanding the advantages and disadvantages of each language.
Last change: 5/30/96|
The Sather Team (firstname.lastname@example.org)