firstly I wish to thank you for the incredible body of work you have undertaken. The open and honest approach to addressing the difficult question 'How do we progress, and in so doing, improve the software quality and standing of a truly great programming language i.e. Eiffel' is a breathe of fresh air in a very stale environment. Not content with being a devotee of the language or a disciple of Eiffel's creator you have openly challenged mainstream thinking about not only Eiffel, but OO design as well. Your mathematical 'proof' style of argument is a contributor too, as it takes out the emotive and less scientific aspects of such arguments. Such emotion (in argument) usually indicates, not true passion, but a background agenda which often pollutes the environment of such discussion, and 'muddies-the-waters', so to speak.
In a thirty year journey as a programmer I have encountered many languages and associated technologies and many great ideas. However in that time I have encountered only four (up until now) literary works which I could honestly say 'Changed my way of thinking'.
1. The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie.
2. An Introduction to Database Systems, by C. J. Date.
3. Design Patterns, by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides.
4. Object Oriented Software Construction, by Bertrand Meyer.
These, IMHO, great works stand out in a (overall) rich body of work done by many others in the computer science arena. They have one common attribute, I believe. That being 'clarity of concept'. They each, in their own way, leave the reader with clear understandings of not only the subject detail but most importantly, the underlying concepts and motivation behind the authors work. The revered gentleman quoted in number four above would probably disagree with me but (in my thirty odd years) the most elegant and truly outsatnding lines of code ever written are contained within the work quoted in number one above. They appear in the chapter entitled '5.5 Character Pointers and Functions' and are as follows:
/* strcpy: copy t to s; pointer version 3 */
void strcpy(char *s, char *t)
while (*s++ = *t++)
This is like computer science poetry. Stunningly simple, succint and elegant. If you understand this you gain an understanding of one of the most contentious of all programming concepts, pointers, for free!!! If all programmers of similar vintage to myself, had studied the above code more closely, then the gentleman from number four would have had little cause for some quite disgraceful utterances, which somewhat tarnish (in some eyes) a genuinely valuable contribution to computer science discussion.
Why am I ranting about historical notions and happenings? Well I wanted to explain the genuine regard I have for your work here. In particular your 'Proof Engine' concept gives me a somewhat similar feeling to that which accompanied my initial reading of the code quoted above. But I have perhaps embarrassed myself enough with what may appear to be (to others) over-the-top praise (maybe even embarrasses your good self). Let me simply summarise my thoughts and state a simple 'Thank you very much Helmut' for all that is contained here and the manner and spirit of it's presentation. You have, with these efforts, made substantial contribution to not only Eiffel but to more generalised programming concepts. I for one will follow the evolution of your fascinating study with great interest. I may not always agree, I may not always understand, but I will always appreciate your open and simply honest approach.
I wanted to keep this post seperate, as I have a following enquiry regarding a 'tecomp' error. I actually could have ranted on in far greater detail about the effect your work has had upon my own thoughts but really a simple 'thank you', with sincerity, says it all. Thank you Helmut!!!
PS: I wish to dispell the notion immediately that I harbour contempt of any kind for Eiffel's creator. I do not seek to minimise what is a genuinely significant contribution to computer science. The now infamous 'C Hackers' observation and subsequent intrigues regarding language standardisation and the role of ISE in that melee, serve only to demonstrate that one Bertrand Meyer is a human being! No less significant and no less worthy of high regard as an innovative thinker or contributor to his field. He is, and will likely always be regarded as one of 'the greats'. At least in this aging programmers eyes. I echo the thoughts of another Eiffel devotee (one Paolo Redaelli, on the Liberty Eiffel blog )
Long life and prosper, dear Meyer! Thanks for Eiffel and OOSC!
My apologies to Paolo for quoting without permission….his article is a delightful light-hearted re-visit to an older offering (now quite famous). It essentially takes a tongue-in-cheek look at the link between successful computer languages and facial hair! A good read and very amusing.