Eppur si sugat

Joe Armstrong joe@REDACTED
Tue May 27 17:41:02 CEST 2003


On Tue, 27 May 2003, Hrvoje Nezic wrote:

> >  It's not about OO software construction. It's more
> > 
> >  "generally good design principles" + how to code things in Eiffel.
> 
> This is simply not true. OOSC2 is not a book about Eiffel.
> Meyer's book is about software construction, from his 
> own point of view, of course.

  What???


  I was referring to  "Object Oriented Software construction" by Meyer
(the first edition published in 1988) - I don't have the second version
so I can't comment in it.


  The book is about Software  construction in Eiffel - That's what the
"+" means. How  can a book with hundreds of examples  in Eiffel not be
about Eiffel. It's not *exclusively*  about Eiffel, since this is a lot
of stuff  of software design  - but it  certainly IS about  Eiffel AND
software  design. It is  certainly not  about general  software design
since many  of the mechanisms  described in the  book do not  apply to
other languages - they are specific to Eiffel and similar languages

  It seems  to me  to be  very much a  book about  Eiffel -  The first
chapter in part II is  called "Basic Elements of Eiffel programming" -
thereafter follow loads  of small code fragments all  in Eiffel as far
as I can see.

  Appendix C  is the Eiffel grammar  - and a quick  check reveals that
all the code fragments appear to be written in Eiffel.

  As I  pointed out part I is  mostly general common sense  and is not
exclusively owned  by any school  of programming, ADTs  and information
hiding are general techniques applicable to any style of programming.

> 
> Most books about programming languages just describe 
> syntax and semantics of a given language. Meyer's book
> is very different and almost unique: he discusses various 
> possibilities, dilemmas, why some features had to be rejected,
> etc.

  "almost unique"  - I  doubt it  - there are  *many* good  books that
discuss language-design tradeoffs - how about "Abelson and Sussman's -
structure  and   interpretation  of  computer   programs",  Wirth  and
Gutknecht's Oberon book, Brinch Hanssen's operating system principles,
Allen's anatomy  of lisp ... Meyer's  book is certainly  good but not
unique.

> 
> And this is a fine book, and Eiffel is a very fine language
> ("arguably the best object-oriented language"). 
> Of course, if O-O is considered bad by definition, 
> this means nothing. 
> 

  Yes Eiffel is one  of the better OO languages - O-O  is *not* bad by
definition. Particular  OO language  are bad, for  particular reasons,
Java is bad  because the concurrency model is  screwed up, C++ because
you can easily confuse or break the type system, ..

  I have even designed an OO language (OIL = Object Inspired Language)
- << son of Erlang :-) >> - and  I can image a good OO language, but I
just havn't seen one yet (apart from OIL, that is :-)

> For me, O-O (especially in elegant and well-designed 
> languages, like Eiffel) means big progress from C and alike, 
> freedom from having allocating memory by hand, 
> dealing with pointers etc, etc. 
> In this way Eiffel is light years ahead of C.
> 

  So  is LISP -  we had  GC etc  in 1959  in lisp  1.5 -  freedom from
pointers  etc.  has  nothing to  do with  OO.  Many  languages (logic,
functional, OO,  imperative, have freedom from pointers  - even visual
basic :-)


> I am open minded, I love to learn new things and explore
> new possibilities. That is why I am on this list.
> I like at least some aspects of Erlang (especially
> processes).
> 
> However, stating that some other paradigms,
> like O-O, are completely wrong, is too much
> in my opinion.

  I have never said O-O is  completely wrong (I said it "sucks") - and
if you choose  a title like "Why OO sucks" more  people will read your
article than if you say "a few things I don't like about OOPLs"

> 
> >   The fact  the "OO"  word is on  the cover  and the word  "eiffel" is
> > absent from the cover notes is probably to sell more titles.
> 
> This is not a fair statement and not a right way to criticize "ideological
> enemy",

  This  statement was  not intended  as a  criticism -  and he's  not an
enemy.

  Meyer said a lot of sensible things in his book. If you write a book
about a  relatively obscure language  it might be  a good idea  not to
mention it on the cover - you might sell more that way - that's a fact
of life.

> like Meyer. Meyer's book is about object oriented
> programming. He obviously had to include some program examples
> in the book. What were his options? To use pseudo-code?
> To use C++? Simula? Smalltalk? Java (nonexisting when
> he wrote the first edition)? Eiffel was invented because there
> were no other suitable O-O language. So, he obviously used
> Eiffel, not only because he invented it, but because it is
> in many ways superior to alternatives.


> By the way, OOSC-2 is not the only Meyer's book.
> His book about Eiffel is called "Eiffel the Language".
> If OOSC-2 was book about Eiffel, why he wrote ETL? 
> Of course, you can say that he wrote it to make more 
> money, but again, I think this would not correspond to
> facts.

I assume he wrote it to promote eiffel.

The fact that he wrote a book called "Eiffel the language" is irrelevant 
to any discussion of OOSC.

> 
> Regards,
> Hrvoje Nezic
> 
> 

/Joe




More information about the erlang-questions mailing list