[comp.lang.eiffel] JOOP letter on Eiffel type checking

bruce@menkar.gsfc.nasa.gov (Bruce Mount 572-8408) (02/24/90)

In the current JOOP (Jan/Feb 1990, page 10), Hans-Stephan Jansohn questions 
the type-checking ability of Eiffel in a detailed letter to the editor.

Briefly, he shows a code example that circumvents Eiffel's type-checking
by redefining a function in a descendant class and then accessing that
function via polymorphism.

I, to my extreme chagrin, do not have access to an Eiffel system.

     1.  Has anyone tried Jansohn's example?
     2.  If so, is his point valid?
     3.  If valid, are there workarounds?
     4.  Is this IS a problem, will it be addressed by 3.0 (hello ISE)?

Feel free to contact me for details, if needed.  I would be happy to summarize
responses to the net.

=================================================
| Bruce Mount                 "Brevity is best" |
| bruce@atria.gsfc.nasa.gov                     |
=================================================

bertrand@eiffel.UUCP (Bertrand Meyer) (02/25/90)

From <2829@umbc3.UMBC.EDU> by bruce@menkar.gsfc.nasa.gov
(Bruce Mount 572-8408):

> In the current JOOP (Jan/Feb 1990, page 10), Hans-Stephan Jansohn questions 
> the type-checking ability of Eiffel in a detailed letter to the editor.

The matter at hand (on which I receive about two letters a week
reporting it as a newly discovered problem) was discussed in
excruciating detail long ago. Please see <176@eiffel.UUCP>
and <177@eiffel.UUCP>, a two-part article posted on July 10,
1989 in this newsgroup.

Briefly:

	- No other policy than the Eiffel one is possible to write
	realistic object-oriented software (as opposed to toy
	examples).

	- The question was addressed too summarily in my book
	``Object-Oriented Software Construction''. The topic of the
	book was the method, however, not the language per se,
	which is covered by ``Eiffel: The Language'', currently
	a manual available from Interactive.

	- The current Eiffel implementation misses some erroneous
	cases which are easy to concoct in artificial examples but
	seldom arise in practice. (I cannot recall a single
	example in our own experience of writing hundreds of
	thousands of lines of Eiffel.)

	- The strategy for dealing with these cases was outlined in
	the net article mentioned above. It will be implemented
	as part of Interactive's version 3 of Eiffel.


-- Bertrand Meyer
bertrand@eiffel.com

alonzo@microsoft.UUCP (Alonzo GARIEPY) (03/10/90)

In article <255@eiffel.UUCP| bertrand@eiffel.UUCP (Bertrand Meyer) writes:
| From <2829@umbc3.UMBC.EDU> by bruce@menkar.gsfc.nasa.gov (Bruce Mount):
| | In the current JOOP (Jan/Feb 1990, page 10), Hans-Stephan Jansohn questions 
| | the type-checking ability of Eiffel in a detailed letter to the editor.
| 	- No other policy than the Eiffel one is possible to write
| 	  realistic object-oriented software (as opposed to toy examples).

Given the magnitude of this compromise and of the criticism it has
engendered, it would be good to see a supporting argument.  Example
programs that demonstrate the flaw are not artificial, but inevitable.
Indeed, it seems that only toy examples can be guaranteed to avoid it.
Your article of July 10th is not compelling and the policy statement 
above sounds too much like famous last words.

Such a hole in what purports to be a type safe language is shocking, to 
say the least.

Alonzo Gariepy			-- This message is not a representation of the
alonzo@microsoft		-- policies or opinions of Microsoft Corp.

bertrand@eiffel.UUCP (Bertrand Meyer) (03/11/90)

    I would really like to refrain from further comments on the
issue of Eiffel type checking for the time being. for several
reasons:

    - My July article explained in detail why the Eiffel type rules
    are what they are, and why we believe they are the right ones.
    Although, as always, I would certainly try to improve that article
    if I were to rewrite it (which I will), I have nothing fundamental
    to add or change to it. 

    - In spite of the above, there was a discussion of this topic
    in the newsgroup comp.software-eng recently (which I assume
    Mr. Gariepy had not seen when he posted his article).
    I posted a fairly long article (<264@eiffel.UUCP>) providing
    further material. See also <259@eiffel.UUCP> and, for other
    people's comments, <Ec.3251@cs.psu.edu>, <259@eiffel.UUCP>,
    <9790@medusa.cs.purdue.edu> and <102100004@p.cs.uiuc.edu>,
    all posted in comp.software-eng.

    - I will feel much more comfortable when our type checker catches
    all the cases it currently misses. (Let me reiterate, however,
    that in disagreement with Mr. Gariepy I do think they are
    artificial, as confirmed by our own experience.)

    - Finally, we are trying to convene a good set of panelists
    so as to have a useful, comprehensive live debate on the topic of
    type checking for object-oriented languages at TOOLS '90 in
    Paris in June.  I hope differing viewpoints can be exposed and
    argued in depth. We should all learn in the process.

-- Bertrand Meyer
bertrand@eiffel.com