comp.lang.ada
 help / color / mirror / Atom feed
* Eiffel and Java
@ 1996-10-27  0:00 Vincent WEBER
  1996-10-27  0:00 ` Jean-Michel P. Decombe
                   ` (9 more replies)
  0 siblings, 10 replies; 168+ messages in thread
From: Vincent WEBER @ 1996-10-27  0:00 UTC (permalink / raw)



  Hi everyone... I'm a developer in SITA (Soci�t� Internationale de 
T�l�comunications A�ronautiques). I'm forced to used C++, but I wanted to find 
something better and safer. That's why I had a look at Eiffel (Bertrand Meyer, 
Object-Oriented Software Construction) and Java.
  I appears to me that Eiffel is a great, simple, purely OO language, with nice 
safety features like assertions. Unfortunatly, It has not (yet ?) encounter the 
industrial success It should have. On the other hand, Java is not as much 
powerful as Eiffel, but thanks to Sun's marketing pressure, is very popular. 

   I think it's a pity that Java didn't take all the good stuff from Eiffel, 
that is to say :
  
  - A true genericity mechanism, such as Eiffel constraint genericity.
  I'm afraid it would be too late to include this mecanism in Java now, since 
it would implie re-writing a great part of the API ( The vector class, for 
instance, is not generic, and just simulate a little genericity by accepting 
"Object" parameters).

  - A true and safe multiple inheritance mecanism. Although lots of people 
claim mutliple inheritance is tricky, Eiffel has a safe mecanism to handle the 
issue. Even if Java's interfaces are a nice feature to support multiple 
specification inheritance, there's no way to inherit more than one 
implementation, that can be necessary in some complex cases.
  - "Design By Contract", e.g built-in assertions (Preconditions, 
postconditions and class invariants) that are a great improvment to software 
quality.
  - Covariance, that is much more powerful than Java (and C++) invariance 
principle : in Eiffel attributes and routines in a child class can be redefined 
with children types. The "like" keyword is a simple and powerful way to make 
routines covariant. ( But even if Covariance is natural in lots of problems, 
Sather's contravariant mecanism seem very interesting too, has stronger and 
safer theorical bases... Sather also allow sepation between code inclusion and 
subtyping. Is it cleaner, or just more complicated that the universal 
inheritance mecanism ? any comment ?)
 
  But on the other hand, Java brings very nice (although not new) things to OO 
software construction :

  - Packages to handle name spacing. I think this mechanism (imported from Ada) 
is more elegant than Eiffel's (A separate sub-language, LACE) and is very well 
adapated to distribution of classes in the whole internet.
  - Concurrency, with built-in multithreading. This is very nice, like Ada's 
tasks... But I heard that Bertrand Meyer is working hard on a great concurrency 
mecanism for Eiffel. I hope it will come out soon :)
  - Methods multiple overloading, that allow for instance to have multiple 
constructors with the same name... The Eiffel solution -renaming parent 
methods- seem a little heavy to me. Even if I agree that since Eiffel allow 
multiple inheritance and Covariance for methods, multiple overloading in Eiffel 
would be ackward...
  - Maybe a richer visibily model ( methods can be public or private for the 
whole package, the children classes, the clients...). Eiffel, with its 
principle of openness, does not allow "private" attributes or routines hidden 
to the children classes... but allow to export selectively the features to 
specifically named classes. I don't know where the "truth" is... :)
  - Great networking, database support, great stuff in OO libraries. 
(JavaBeans).


  As a conclusion, I would say that Java had the opportunity to popularize 
Object-Oriented programming, distributing computing on the internet, but it 
lacks Eiffel's power... (Apart the syntax, the two languages are not that much 
different). So... Why don't Eiffel and Java merge ?? Maybe it would be a grat 
opportunity to build THE "perfect language..." (I'm kidding, I know there can't 
be ONE perfect language. But we can take the best of everything that exists to 
build something greater :) )
  This idea might seem heretic to Bertrand Meyer, Eiffel vendors, and Sun :) 
But.. why not ? :) Both part could win in this issue : Java would be much more 
powerful, would rely on stronger theorical bases, and Eiffel would obtain a 
greater industrial success. Let's dream... ISE and Sun working together and 
sharing this market ? :))

  Therefore I would be glad if people from ISE, SIG, Tower, Sun, or any people 
interested in this issue, react -constructively- on what I've just written. I 
would like to get different opinions about OO programming and future of the 
languages. I would also be interested by any information about both  languages 
evolution in the future.
   I'm a strongly-typed believer :) But I would be interested by LISPers 
(CLOSers) and Smalltalkers' reactions as well :)

  By the way, one more thing : I just had a look at ADA 95 and it's "OO" model. 
Even if I admit it is powerful, I think it's very heavy. (The ADA 9X group had 
to keep all the Ada 93 stuff...:)). However, one thing interested me : Ada 
fanatics claim that the dot notation break the symetry of natural operation, 
and that Ada's model of dynamic bindings in all the parameters of a procedure 
is better (that is, writing for instance Add(VectorA, VectorB) instead of 
VectorA.Plus(VectorB). I don't know what to think about this controversy. Any 
idea ?

  Thanks to anyone that would help to elect my favourite language :) Currently, 
I believe that Eiffel is the best OOPL, even if the reality of industry force 
me to live the nightmare of C++ everyday :)

Vincent Weber
Developer - SITA group





^ permalink raw reply	[flat|nested] 168+ messages in thread
* Re: Eiffel and Java
@ 1996-10-28  0:00 cosc19z5@bayou.uh.edu
       [not found] ` <01bbc7f6$b1c0b7a0$LocalHost@gaijin>
  0 siblings, 1 reply; 168+ messages in thread
From: cosc19z5@bayou.uh.edu @ 1996-10-28  0:00 UTC (permalink / raw)



Jean-Michel P. Decombe (xelph@acm.org) wrote:
: In article <550sm2$sn1@buggy.news.easynet.net>, Sacha@easynet.fr (Vincent
: WEBER) wrote:

: > different). So... Why don't Eiffel and Java merge ?? Maybe it would be a grat 

: I believe that Java is not the death of other languages. Java demonstrates
: that it's possible to write a language which is really
: platform-independent and "distributed". Nothing prevents Meyer from
: writing a new version of Eiffel, totally portable and based on a Virtual
: Machine, then port this VM on a large number of platforms, including a
: JITC, etc. With the promise of a true platform-independent language, I'm
: sure a good number of people would be willing to try it, including myself.

Well in a way this has been done.  Java is valuable not for the "language"
but rather for the virtual machine, and as it stands other languages are
taking the cue, and are translating themselves into Java Bytecode so
you can in fact do the same sort of platform independent programming
that you can do in Java in other languages like Ada, and Smalltalk!

So even with Java as the so-called king, this won't mean the death
of other languages, even in distributed applications, since all
that's needed is to translate the source into Java bytecode.


: The only problem that remains would be a possible inclusion of this VM in
: major browsers. But I believe most browsers will become very customizable
: and won't be restricted to Java in the future, plus they will eventually
: merge in the OS anyway...

Even with browsers using the Java VM this only means that other languages
need to output Java VM code.


: Java is just the beginning of a new era, but it's certainly not the
: language who will necessarily win in the end. For now, it's the only one
: to do what it does, thus it's the "current" winner...

It's just Java bytecode that's doing this, the language itself is
can be changed to whatever is needed and it's being done already.


: Xelph

: ___________________________________________
: geo:1705 Cowper Street, Palo Alto, CA 94301
: phone:415/327-9563 - fax:415/327-3328
: mailto:xelph@acm.org - http://xelph.com/

Ahmed





^ permalink raw reply	[flat|nested] 168+ messages in thread
* Re: Eiffel and Java
@ 1996-11-02  0:00 Ell
  1996-11-02  0:00 ` traymond
  0 siblings, 1 reply; 168+ messages in thread
From: Ell @ 1996-11-02  0:00 UTC (permalink / raw)



Ranjan Bagchi (ranjan.bagchi@pobox.com) wrote:
: Chris wrote:
: > 
: > The point with Java is that it's nearly C++.
: > 
: > So, even if it's not the best language, the C++ community would choose it
: > 
: > That's enough to make it a standard !
: > 
: > Chris
 
: Note:  Smalltalk bias.
: 
: I'd think that this kind standard would tend to produce a lot of Java 
: code which is just "C++ written in Java".  That is C++ code with 
: whatever syntactic tweaking is needed to get it pass the compiler.  

And there are large amounts of fully object-oriented C++, just as there
are other forms of C++ code.  I.e. there is much C++ code which models in
an OO way, and which uses OO design techniques to reduce dependencies.
 
: This is similar to what has happened in the C++ community where the joke 
: was that there were only 5 real C++ programmers and everyone else was 
: just coding C.  There wasn't enough incentive to use the kind of C++ 
: idioms that Coplien and Myers write about in their books.
: 
: That's what's really neat about languages like Smalltalk where
: the language forces programmers to start thinking in Smalltalk's object 
: model and produce Smalltalk written in Smalltalk.

Isn't it possible for someone to write a Smalltalk program with bad design
decompostion from an OO perspective? 

Elliott




^ permalink raw reply	[flat|nested] 168+ messages in thread

end of thread, other threads:[~1996-11-25  0:00 UTC | newest]

Thread overview: 168+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-10-27  0:00 Eiffel and Java Vincent WEBER
1996-10-27  0:00 ` Jean-Michel P. Decombe
1996-10-28  0:00   ` David Hanley
1996-10-28  0:00     ` Matt Kennel
1996-10-28  0:00   ` Alexandre Oliva
1996-10-28  0:00   ` Robert Dewar
1996-10-31  0:00     ` Doug Marker
1996-10-29  0:00   ` Chris Trimble
1996-10-31  0:00     ` Doug Marker
1996-10-31  0:00   ` David Bennett
1996-10-28  0:00 ` Matthew Heaney
1996-10-29  0:00   ` Vincent WEBER
1996-10-31  0:00     ` James McKim
1996-11-01  0:00       ` Matthew Heaney
1996-11-04  0:00         ` James McKim
1996-10-30  0:00   ` Don Harrison
1996-10-31  0:00     ` James McKim
1996-11-04  0:00       ` Don Harrison
1996-11-23  0:00       ` Van Snyder
1996-10-30  0:00   ` Jon S Anthony
1996-11-01  0:00     ` Eiffel and Java + Ada dispatching Jean-Marc Jezequel
1996-10-31  0:00   ` Eiffel and Java Joachim Durchholz
1996-11-01  0:00   ` Norman H. Cohen
1996-11-02  0:00   ` Jon S Anthony
1996-11-02  0:00   ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-03  0:00   ` Eiffel and Java Joachim Durchholz
1996-11-05  0:00   ` Norman H. Cohen
1996-10-28  0:00 ` Larry Kilgallen
1996-10-30  0:00   ` Ronald Cole
1996-10-29  0:00 ` Don Harrison
1996-10-29  0:00   ` Eiffel and Java + Ada dispatching Vincent WEBER
1996-10-30  0:00     ` Jean-Marc Jezequel
1996-11-01  0:00       ` Don Harrison
1996-11-01  0:00       ` Joachim Durchholz
1996-10-30  0:00     ` Don Harrison
1996-10-30  0:00       ` Jon S Anthony
1996-10-29  0:00   ` Eiffel and Java Fergus Henderson
1996-10-30  0:00     ` Don Harrison
1996-10-30  0:00       ` Fergus Henderson
1996-10-31  0:00     ` David L. Shang
1996-11-01  0:00       ` Matt Kennel
1996-11-04  0:00         ` David L. Shang
1996-11-05  0:00           ` Matt Kennel
1996-11-06  0:00             ` David L. Shang
1996-11-04  0:00       ` Robert I. Eachus
1996-11-01  0:00     ` Jon S Anthony
1996-11-02  0:00       ` Fergus Henderson
1996-11-04  0:00       ` David L. Shang
1996-11-05  0:00         ` Jon S Anthony
1996-11-02  0:00     ` Darko BUDOR
1996-11-02  0:00       ` Fergus Henderson
1996-11-03  0:00         ` Matt Kennel
1996-11-03  0:00         ` Darko BUDOR
1996-11-03  0:00     ` Jon S Anthony
1996-11-03  0:00     ` Matthias Ernst
1996-11-05  0:00     ` Jon S Anthony
1996-11-10  0:00     ` Marcos F. F. de Macedo
1996-11-11  0:00       ` David L. Shang
1996-11-12  0:00         ` Fergus Henderson
1996-11-12  0:00           ` David L. Shang
1996-11-12  0:00             ` David L. Shang
1996-11-16  0:00             ` Fergus Henderson
1996-11-18  0:00               ` David L. Shang
1996-11-18  0:00             ` Kai Quale
1996-11-18  0:00               ` David L. Shang
1996-11-25  0:00                 ` Kai Quale
1996-11-15  0:00         ` Paul Johnson
1996-11-12  0:00       ` Alexander Asteroth
1996-11-11  0:00         ` Marcos F. F. de Macedo
1996-11-12  0:00         ` Matt Kennel
1996-11-12  0:00         ` Benedict A. Gomes
1996-10-30  0:00   ` Eiffel and Java + Ada dispatching Robert I. Eachus
1996-10-30  0:00   ` Eiffel and Java David Petrie Stoutamire
1996-10-30  0:00   ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-04  0:00     ` Don Harrison
1996-11-04  0:00       ` C to Ada Ali Mirhosseini
1996-11-04  0:00         ` Matthew Daniel
1996-11-04  0:00         ` Robert Dewar
1996-11-05  0:00       ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-05  0:00         ` Don Harrison
1996-11-06  0:00           ` Jon S Anthony
1996-10-31  0:00   ` Jon S Anthony
1996-11-01  0:00     ` Jean-Marc Jezequel
     [not found]     ` <E06F2B.Az7@syd.csa.com.au>
1996-11-01  0:00       ` Jon S Anthony
1996-11-04  0:00         ` Don Harrison
1996-11-05  0:00           ` Jon S Anthony
1996-11-02  0:00       ` Robert Dewar
1996-11-04  0:00         ` Norman H. Cohen
1996-11-05  0:00         ` Don Harrison
1996-11-05  0:00           ` Robb Nebbe
1996-11-06  0:00             ` To overload or not to overload (was Eiffel and Java + Ada dispatching) Don Harrison
1996-11-06  0:00               ` Robb Nebbe
1996-11-07  0:00                 ` Don Harrison
1996-11-07  0:00                   ` Jon S Anthony
1996-11-07  0:00                   ` Juergen Schlegelmilch
1996-11-08  0:00                     ` Don Harrison
1996-11-08  0:00                       ` Don Harrison
1996-11-14  0:00                         ` Jon S Anthony
1996-11-14  0:00                     ` Jon S Anthony
1996-11-07  0:00                   ` Jon S Anthony
1996-11-11  0:00                     ` Don Harrison
1996-11-08  0:00                   ` bill.williams
1996-11-11  0:00                     ` Don Harrison
1996-11-07  0:00                 ` Norman H. Cohen
1996-11-06  0:00             ` Eiffel and Java + Ada dispatching Jean-Marc Jezequel
1996-11-07  0:00               ` Robb Nebbe
1996-11-08  0:00             ` Robert I. Eachus
1996-11-05  0:00           ` Joachim Durchholz
1996-11-06  0:00           ` Robert I. Eachus
1996-11-08  0:00             ` Don Harrison
1996-11-08  0:00               ` Jon S Anthony
1996-11-08  0:00               ` Robert A Duff
1996-11-12  0:00                 ` Don Harrison
1996-11-12  0:00                   ` Joachim Durchholz
1996-11-15  0:00                     ` Richard Riehle
1996-11-16  0:00                     ` Interfacing contracts (Was: Eiffel and Java + Ada dispatching) Geert Bosch
1996-11-17  0:00                       ` Robert A Duff
1996-11-12  0:00                   ` Eiffel and Java + Ada dispatching Robert A Duff
1996-11-13  0:00                     ` Don Harrison
1996-11-13  0:00                       ` Robert A Duff
1996-11-14  0:00                         ` Don Harrison
1996-11-13  0:00                       ` Jon S Anthony
1996-11-15  0:00                         ` Don Harrison
1996-11-19  0:00                           ` Jon S Anthony
1996-11-20  0:00                             ` Don Harrison
1996-11-14  0:00               ` Robert I. Eachus
1996-11-14  0:00                 ` Robert A Duff
1996-11-15  0:00                 ` Don Harrison
1996-11-15  0:00                   ` Robert I. Eachus
1996-11-19  0:00                     ` Don Harrison
1996-11-18  0:00                       ` Vincent Celier
1996-11-22  0:00                         ` Don Harrison
1996-11-19  0:00                 ` Jon S Anthony
1996-11-15  0:00               ` portmanteau (was Re: Eiffel and Java + Ada dispatching) Robert I. Eachus
1996-11-07  0:00           ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-07  0:00           ` Robb Nebbe
1996-11-12  0:00           ` Jon S Anthony
1996-10-31  0:00   ` Joachim Durchholz
1996-11-01  0:00   ` Eiffel and Java Matthias Ernst
1996-11-01  0:00     ` Benedict A. Gomes
1996-11-01  0:00     ` William Clodius
1996-11-02  0:00   ` Eiffel and Java + Ada dispatching Jon S Anthony
1996-11-02  0:00   ` Jon S Anthony
1996-11-04  0:00   ` Eiffel and Java Robert I. Eachus
1996-10-30  0:00 ` Jon S Anthony
1996-11-01  0:00   ` Don Harrison
1996-11-01  0:00     ` Jon S Anthony
1996-11-07  0:00       ` Marcos F. F. de Macedo
1996-11-11  0:00         ` Ian Joyner
1996-11-12  0:00         ` Don Harrison
1996-11-13  0:00           ` Norman H. Cohen
1996-11-15  0:00             ` Don Harrison
1996-11-14  0:00           ` Jon S Anthony
1996-11-15  0:00             ` Don Harrison
1996-11-19  0:00               ` Jon S Anthony
1996-11-21  0:00                 ` Don Harrison
1996-11-12  0:00     ` Jon S Anthony
1996-10-31  0:00 ` Joachim Durchholz
1996-11-01  0:00 ` Jon S Anthony
1996-11-02  0:00 ` Jon S Anthony
1996-11-03  0:00 ` Eiffel and Java + Ada dispatching Joachim Durchholz
1996-11-04  0:00 ` Eiffel and Java Richard A. O'Keefe
  -- strict thread matches above, loose matches on Subject: below --
1996-10-28  0:00 cosc19z5@bayou.uh.edu
     [not found] ` <01bbc7f6$b1c0b7a0$LocalHost@gaijin>
1996-11-01  0:00   ` Ranjan Bagchi
1996-11-01  0:00   ` Alan Lovejoy
1996-11-01  0:00     ` Chris
1996-11-02  0:00 Ell
1996-11-02  0:00 ` traymond

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox