Newsgroups: comp.lang.smalltalk,comp.lang.eiffel,comp.object
Subject: Re: comparing object-oriented platforms
From: Des.Kenny@bbs.actrix.gen.nz
Date: Tue, 29 Sep 1992 11:26:16 GMT
Organization: Actrix Information Exchange
Summary: CLOS not strict

In article <welAJHa00Vor81pWA6@andrew.cmu.edu> osoelgaultier+@CMU.EDU (Stefan Monnier) writes:
> Excerpts from netnews.comp.lang.eiffel: 26-Sep-92 Re: comparing
> object-orient.. John Nagle@netcom.com (1174)
> 
> > mwu@orion.oac.uci.edu (Matt Wu) writes:
> > >I'm currently evaluating several object-oriented development platforms
> > >and I was wondering if any of you would like to share your opinions on
> > >platforms that you prefer or know about.  It'd be especially useful to hear
> > >comparisons between different platforms (for instance, Eiffel v. Smalltalk).
> 
> >       The language situation is roughly as follows:
> 
> > 	Ada		Big, no inheritance, some tools expensive but do
> > 			exist.  Many books on language available.  Many
> > 			free libraries available.  DoD standard.
> > 	C++		Big, multiple versions of language, unsafe.
> > 			Tools widely available.  Many books available.
> > 			Most popular choice.
> > 	Modula-2	No classes or inheritance.  Many books.
> > 			Many implementations.  Solid, but limited.
> > 	Modula-3	Limited interest - one free compiler, one book.
> > 			Adds classes to Modula-2.  Less used than
> > 			Modula-2.  
> > 	Eiffel		Limited interest - one or two compilers, one book.
> > 			Less used than Smalltalk, C++, Ada, or Modula-2.
> > 	Smalltalk	Slow execution, good tools.  Multiple books
> > 			available.  Clean language.  Good for experimental
> > 			work.  Avoid pure-interpreted versions if speed
> > 			at all important.
> 
> 
> I didn't know that Ada and Modula-2 were object-oriented !
> Then from the remaining:
> 
> C++: very successfull but unsafe, that's true, lacks a
> 	garbage collector. But very good environements available!
> Modula-3: much less success: lacks a bit of consistency, I think
> 	limited interest in general (don't realy know for the
> 	available environment)
> Smalltalk: not always that slow, excellent environment !
> Eiffel: not that uninteresting: clean, powerful, I would say
> 	it is state of the art in strongly typed OOL. The ISE
> 	environment is quite decent (I heard the version 3.0 is
> 	even good)
> 
> 
> Personnally, I don't like C++ much (mainly cause of it's lack of GC)
> Between smalltalk and eiffel, it's a question of taste: do you like
> strong static typing or prefer dynamic typing ?

  Yes Eiffel has static type checking but it also has polymorphism
  and dynamic binding. The new version 3 has still the features of the
  compiler but it also has an interpreter that does static type checking.
  You can interpret classes selectively, speeding the development
  cycle considerably.
  
> I really think the smalltalk environment is excellent, much better
> than what I know for eiffel, but the strictness of eiffel makes it
> really nice to debug !
> 
> I prefer Eiffel, cause it's faster and I much more used to it !
> 
> The rest is question of taste !
  
  It may be just a matter of taste for oure research,
  if such an activity exists any more in these recessionary
  days.

  But for applications in industry there are also software
  engineering issues and economics to constrain us.

> Maybe you prefer other OOL, like Self, simula, CLOS or...
> CLOS may be a good choice, but I just don't know it yet !
> 
As far as I know about CLOS:
CLOS is in some ways less safe than Smalltalk.

It also does
not enforce static type checking. But in addition access to the attributes
of a class can not be restricted. So you can easily violate encapsulation and
information hiding. So the class interface is not so safe.
It has no assertions. There is no standard class library.
It may be an improvement on Common Lisp for AI like applications.
But it would be a dangerous beast to let loose on the average industry
programmer without a major training and rethinking program. Besides I
suspect that the performance is still an issue to consider because
of the dynamic type checking. I would be interested to hear of any 
industrial applications on a large scale.

--Des Kenny