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