One good thing about John Nagle's postings is that they always provoke
discussion! John, will you be at TOOLS or OOPSLA? I'd like to meet you.
In article <pyhmn2d.nagle@netcom.com> nagle@netcom.com (John Nagle) writes:
>cwt26780@uxa.cso.uiuc.edu (Conrad W Taylor) writes:
>> I'm looking for an introductory book on Eiffel programming that in-
>>cludes a great deal of examples. The only source that I have at this time is
>>Eiffel: The Language which is more of a reference for the language instead of
>>an introductory book on programming in Eiffel. If anyone knows of such a text
>>, please e-mail me at ctaylor@ncsa.uiuc.edu or cwt26780@uxa.cso.uiuc.edu.
>
> Bertram Meyer's books are all there are, apparently. There are three
>of them (on design, the language, and the library) and each uses a different
>version of Eiffel. This, of course, will not bother the serious student.
>
I assume the design book you refer to is _Object Oriented Software
Construction_. The examples in OOSC are out of date in the sense that
many of them will not compile and run correctly in versions
of Eiffel released after the book was published. The _ideas_ in the book
will be a _long_ time going out of date. The language and library books
are out of synch right now because _Eiffel: The Language_, the reference
manual for Eiffel 3, has been generally available for some months, while
the rest of ISE's system, including the library manual, is still under
development. This situation should be remedied within the next couple of
weeks as Bertrand and ISE unveil a batch of Eiffel goodies. I've also
heard a rumor that _OOSC II_ is actively in the works. Anyone care to
confirm or deny?
Version 2.3 came with a batch of examples. If version 3 does likewise,
Conrad's problem may be resolved. In any case, once version 3 has been
available for a while, I'd expect to see more papers and books that
are centered around Eiffel. As another poster pointed out, Bertrand
is such a masterful and prolific writer that many of us have hesitated to
to try our hands at what he has already demonstrated he can do so
well. We Eiffel users need to break out of this shell. Tacitly forcing
Bertrand to be virtually our only spokesman is unfair to everyone,
most especially Bertrand!
> Remember, programming in Eiffel is supposed to be HARD. You have
>to SUFFER for your art. Eiffel is in the grand tradition of the the Hoare
>"programming is not for everyone" school. The formalism is not to be
>avoided, but studied with dedication until it is mastered. One can no
>more program properly without mastery of the formal approach than one can
>do physics without calculus.
>
I think I've heard this before. Hmmm... Let me think.... Yes!
By golly every time I heard it, it was John Nagle who said it!
You seem to be a cult of one, John :-)
I can only respond based on my experience teaching OOP via Eiffel 2.3
to more than 100 students in the past year and a half. Eiffel is
EASY to learn. It is FUN to program in. If by "formalism" you mean
assertion checking and the programming by contract metaphor, then
yes, a good Eiffel programmer will strive to master the "formalism."
Most students almost immediately see the value of programming in this
style. BTW, my students are almost all working professionals in areas
directly related to computing.
> If you want OOP the easy way, use Smalltalk.
>
> John Nagle
Smalltalk is a good language with a super environment. It's also been
around a long time, so both the language and environment are relatively
stable. As you point out Eiffel's language and environment are comparatively unstable. But, show me a language as young as Eiffel that _has_ stabilized.
Smalltalk is also the only commercially available OOP that is easier to learn than Eiffel. This is largely because it does not provide static type checking (the biggest single reason for the comparative complexity of Eiffel), multiple
inheritance, or assertion checking.
Once Eiffel matures a little more the _only_ advantage Smalltalk will have is
its extreme simplicity. Eiffel will be nearly as simple, and provide the
extra features listed above.
You pays your money and you takes your choice. :-)