Hijacking

eao197 eao197 at intervale.ru
Mon Aug 6 13:05:26 PDT 2007


On Mon, 06 Aug 2007 21:30:43 +0400, Walter Bright  
<newshound1 at digitalmars.com> wrote:

> eao197 wrote:
>> Eiffel has same feature for more than 20 years and it really works :)
>
> Eiffel has many good ideas, but we must be careful thinking of Eiffel as  
> an endorsement, as it failed to catch on. I think one reason it failed  
> is because of the syntax.

No, I don't think so. I spent last 1.5 month to study Eiffel. Eiffel  
syntax isn't a problem (moreover I think Eiffel/Ruby syntax is more  
attractive than old C curly braces tradition).

By main opinion the main Eiffel's problems are:

1. Only one paradim. Only OOP and only by following the Eiffel method.

2. Comand/query separation principle. For example, you can't do something  
with object and get the result, as in C++/D:

auto sent_result = mail_box.send_message(msg);

In Eiffel send_message must be command, and mail_box must have a query to  
retrive last send result:

local
	send_result: SEND_RESULT
do
	mail_box.send_message (msg)
	send_result := mail_box.last_send_result
	...
end

3. Very different exception mechanism. For example see my question about  
resouce cleanup in the case of exception:  
http://tech.groups.yahoo.com/group/eiffel_software/message/11062


But 'DesignByContract' and inheritance (and various forms of inheritance  
conflicts resolving) are really great part of Eiffel.

So I vote for mandatory 'override' keyword in D too.

-- 
Regards,
Yauheni Akhotnikau



More information about the Digitalmars-d mailing list