home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!eiffel!bertrand
- From: bertrand@eiffel.com (Bertrand Meyer)
- Newsgroups: comp.lang.eiffel
- Subject: Re: Intro. book on Eiffel Programming...?
- Message-ID: <105@eiffel.eiffel.com>
- Date: 28 Jul 92 15:49:25 GMT
- References: <Brssyv.Boo@news.cso.uiuc.edu> <pyhmn2d.nagle@netcom.com>
- Organization: Interactive Software Engineering, Santa Barbara CA
- Lines: 73
-
- From <pyhmn2d.nagle@netcom.com> by nagle@netcom.com (John Nagle):
-
-
- > 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.
- >
- > If you want OOP the easy way, use Smalltalk.
-
- Another of Mr. Nagle's provocations. I can appreciate a good joke;
- still, it may be useful to mention once again that ease of
- learning and ease of use have always been major design goals for Eiffel.
-
- Whether this goal has been reached or not is for others to
- judge (for me Eiffel is easy enough, thanks); but every time the
- question has come up on the net Eiffel users and teachers have posted
- loud and clear messages, especially those who had also used other
- object-oriented languages. I can dig up my archives if anyone is
- interested.
-
- Mr. Nagle's mention of Hoare is highly unfair.
- Anyone familiar with the work of Tony Hoare and Hoare himself
- knows his lifelong quest for simplicity. He has an instinctive
- repulsion for anything that looks complicated, and will work on a
- problem over and again until he can explain the solution clearly
- and convincingly to any competent person. (Mr. Nagle would have had more
- of a point if he had been referring to E.W. Dijkstra. Although Eiffel,
- like all serious modern software engineering, has been heavily influenced
- by Dijkstra's work, I do not share EWD's somewhat ascetic view
- of software construction.)
-
- Coming back to Eiffel and the designer's conscious view (whether
- or not realized in the language, which is there for everyone
- to examine), please allow a self-quotation, from
- the book ``Eiffel: The Language'', Prentice Hall, 1991,
- page 504 (part of a section called ``Tolerance and discipline''):
-
- ====================== BEGIN QUOTE ================================
-
- A somewhat disciplinarian attitude is not infrequent in the
- software community. One commonly hears such phrases as ``preventing
- the programmers from doing their dirty tricks''. It is as if
- language designers were invested with a moral duty, and languages
- were a rampart against the threat of the developers' natural
- uncleanliness.
-
- I disagree with this view. (This will seem surprising to
- those who have heard Eiffel being categorized, I believe quite
- wrongly, as a language of the restrictive school.) Programming
- language designers are not in the chastity belt business. Their
- role, to repeat a comment which I first heard many years ago from
- C.H.A. Koster, is not to prevent developers from writing bad
- software (a hopeless endeavor anyway), but to enable them to write
- good software; and perhaps to make the task pleasurable as well.
-
- This must be applied together with the Principle of Uniqueness
- stated above [IN THE BOOK]. If you exclude a certain facility, be
- it the goto or
- function pointers, it is not to save humanity from some abomination
- (although you may also be doing that) but because you are providing
- elsewhere a better way to achieve the goals which the excluded
- constructs purported to address. Loops and conditionals are better
- than gotos, and dynamic binding under the control of static typing
- is better than function pointers.
-
- ====================== END QUOTE ================================
- --
- -- Bertrand Meyer
- Interactive Software Engineering Inc., Santa Barbara
- bertrand@eiffel.com
-