Newsgroups: comp.object,comp.lang.smalltalk,comp.lang.eiffel
Subject: Re: comparing object-oriented platforms
From: Des.Kenny@bbs.actrix.gen.nz
Date: Tue, 29 Sep 1992 23:50:00 GMT
Organization: Actrix Information Exchange
Summary: Lets stay with computer anatomy for now

In article <1992Sep28.233450.21241@jetsun.weitek.COM> nadja@jetsun.weitek.COM (Nadja Adolf) writes:
> In article <23741@alice.att.com> garry@alice.UUCP () writes:
> >In article <1992Sep28.024059.25761@actrix.gen.nz> Des.Kenny@bbs.actrix.gen.nz writes:
> >   
> 
> >Then you lay the following crap on me.  My eyes glaze over, and I have
> >the same reaction I get to TV "info-mercials" and televangelists.
> >I tune out.  Many of the "discussions" of C++ vs. Eiffel I've seen
> >in the past showed the same kind of wild-eyed enthusiasm for Eiffel,
> >mixed with disdain for the lowly cretins who would debase themselves
> >by using C++.  Now, maybe I should be impressed that Eiffel can
> >generate that kind of enthusiasm, but zealots scare me, and my first 
> >instinct is to stop listening, and to dismiss the technical arguments
> >as more of the same.
> 
> Agreed. I am afraid I moved into flame mode here as a result of the
> response to my opinion that smalltalk is not realistic for use in
> business programming. I received everything from comments on my penis
> size (being female, I would like to inform those folks that I don't have
> one, nor could I care less) to email letter bomb threats.
 
  I promise not to make comments on your anatomy, whatever sexual persuasion
  you happen to be.
  
  As for bomb threats ignore them they don't hurt a BIT.
  Just don't publish your coordinates in case of ICBM's from
  irate Smalltalkers or any one else.
 
  I happen to agree that Smalltalk is a higher risk language for
  industrial applications. There is no static type checking. I do not want to
  find out at run time that there are type errors in the system!
  There are enough other types of errors to contend with, not to mention
  budget and time constraints, without having to deal with highly confused
  users confronted with a type error and some wierd system message
  that terrifies them that they just lost a days work!

  So in this context I prefer Eiffel because I get Static type checking,
  polymorphism and dynamic binding. In version 3 there is an interpreter
  as well as a compiler. So you can interpret some classes and leave others
  as compiled classes. You can then work on a small part of the system,
  changing what is required, and get a fast response to your changes.

  Before this capability Smalltalk had some advantage over Eiffel in the speed
  of the turn around from change to testing. No one really likes
  waiting around for a compiler to test a change. In prototyping
  this can be a real drag. But now  Eiffel can compete with Smalltalk in this 
  area also. In fact it can be faster than Smalltalk in some applications
  because you only interpret the limited area you are changing. The rest of
  the classes are running at the speed of compiled code! That suits me 
  very nicely.
  nice.

  What is also good about this new capability is that ISE has not sacrificed
  Static typing at all to gain this faster development cycle.

  The interpreter does full static typing.

  So you can use Smalltalk for industrial applications but you are taking
  very big risks. Most businesses like to minimise their exposure to risk
  if they want to stay in business. Of course , this is an individual
  judgement.





>  
> >Quite a few of us, actually.  Although perhaps our level of OO-enlightenment
> >is not up to your exalted standards, Oh Blessed One.
> 
> Thank you. Languages should be selected for their appropriateness to the
> task at hand. Smalltalk is good for rapid prototyping; C++ for production
> code.

  With version 3 of Eiffel you can use Eifel for rapid prototyping
  and still get the benefits of static type checking, assertions,
  contracts, responsibility driven exception handling ...

 Modula-3 would be good for production code if it were more widespread,

 I think there are more technical issues with Modula-3 to consider.
 How well does it conform to the OO approach?
 

> and therefore the talent to use it was available.
  This is an issue for all OO languages because they are so new.
  Lots of C++ compilers do not neccesarily mean lots of people
  who know how to use the OO capabilities of C++ and avoid the
  old C style. This is a common confusion.

 I don't know about
> Eiffel; so I won't comment. 

  I think Eiffel is definitely worth looking at. It may not suite your
  requirements. You may think it is ghastly.
  But you are never going to find out if you don't look at it.

  
> 
> >   			C++ compilers may be better for
> >   			died in the wool C programmers who are scared to
> >   			venture to far from the nice little C hole they have
> >   			dug theselves.
> 
> >Yeah, I just spend all day cringing in my office, uh, hole, praying
> >I will never have to learn anything or have an original thought again.
> >Pssst.  Don't tell my management.
> 
> :-) I always thought that C++ was good for those of us who couldn't talk
> management into Modula-3 or Ada. :-)
> (Yes, Ada isn't object oriented, but don't tell the government.) 
> 
> >			But C++ is a poor compromise at best.
> >   			It is not real OO.
> 
> >Perhaps by your definition. Many disagree.
 
   It mixes two diametrically opposing paradigms.
   The old procedural style with global state variables and
   the OO style with encapsulated state and no access to state values
   except by the methods of a class.

   Eiffel does not deny the right of the older style to exist.
   It simply treats it as a separate world. This is much cleaner
   and easier to comprehend, learn and manage. Eiffel can call external
   C/C++ modules. Also Eiffel objects can be called from C and I guess
   from C++. So we have a neat path for evolution into a new paradigm
   The old C/C++ code can be reused as long as it is useful by encapsulating 
   it with Eiffel classes. 
   
   This approach has been taken for the NeXT port of Eiffel, where
   the Objective-C modules of NeXTStep have been encapsulated. So the
   Eiffel port is somewhat insulated from changes to the underlying
   NeXTStep mechanism.

    
 
> OK. Now you've gone and done it. Which has the 'realest' :-) OO?
> Smalltalk or C++?

  Easy : Eiffel . But please do NOT take my word for this
  go try it yourself. Be as critical as you like. But at least 
  get some real experience to base your criticism on

> 
> >   			So when you see figure of enormous numbers of C++
> >   			licenses. Think what this really means in OO terms
> >   			rather that C terms.
> 
> >It means that a great many people are reaping the benefits of OOP.
> 
> >   			My advice is not to be a sheep. Sheep get slaughtered
> >   			in the end. 
> 
> Good thinking. I guess we can't pull the wool over your eyes. :-)
>    
> 
> >Agreed.  That is what the original poster is trying to do.
> >If we went by the number of licences, we'd all be using COBOL.
> 
> Yep. 
> Or RPG.

  So when are you going to try Eiffel and give us your criticisms.
  I look forward to hearing them

-- Des Kenny
   Objective Methods
Xref: sparky comp.object:3792 comp.software-eng:3570