Friday, May 19, 2006


Eiffel or Java - nine years later

Nine years ago, in May 1997, Thomas Beale wrote a piece called Eiffel: An Industry Experience, in which he gave the reasons why his team chose Eiffel ahead of Java, after an initial assumption that Java would be used.

Thomas's points in favour of Eiffel were many, including:
As a design formalism, Java is missing Multiple Inheritance (MI), genericity, and assertions. We use all of these extensively in the design sense...
...the browsing mentality behind the ISE environment is superior in conception to what most other C-based language environments seem to offer...
The library is the real language you design and implement in, so it is (IMO) more important than the language itself. Consequently, extensive libraries programmed in a powerful formalism like Eiffel provide a more powerful language to work in. I have come to the conclusion that the use of formal software contracts in the library is the difference between a library you can trust and one you can't.
Thomas concluded:
In summary, two words differentiated Java and Eiffel at the time of taking the decision ... maturity and comprehensiveness.
The project team has not regretted the choice to date, and I don't see that changing.
If there is one thing to learn from this kind of experience (even if you are a diehard C/C++/Java person), it is: do NOT believe marketing hype. It makes fools of competent software engineers. Make a proper investigation, for YOUR project, with YOUR criteria, and decide using facts.
Sure enough, nine years later, Thomas is still using Eiffel.

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?