News
Eiffel unveils .NET plug-in update
- By Rich Seeley
- March 31, 2003
Eiffel Software has released Eiffel ENViSioN! 1.1, the latest iteration of its Eiffel-language plug-in for Microsoft Visual Studio .NET.
Eiffel ENViSioN! 1.1 is a component of The Eiffel Development Framework. The Eiffel software, though not widely known, played a pivotal role in the development of object-oriented programming. It set the stage for newer approaches such as Java and .NET, and still has its adherents.
Rex Fowler, founder and CEO of Fowler Software Design LLC, Denver, which develops applications for businesses, said it is easier to train programmers in the plain English syntax of object-oriented Eiffel than C++.
For example, a simple Web service class written in Eiffel looks like this:
class
MY_WEB_SERVICE
inherit
WEB_SERVICE
feature
update is
-- Update database
require
valid_connection: connection.open
do
if changed then update end
ensure
refreshed: old changed implies updated
end
.
changed: BOOLEAN
invariant
valid_connection: connection /= Void
end -- class
MY_WEB_SERVICE
In Fowler's experience, programmers find favor in working with Eiffel. He values the language's simplicity, and notes that his business has fewer turnovers now than when he ran a C++ shop.
Eiffel was created in 1985 by Bertrand Meyer, a computer scientist now based in Switzerland and no longer directly involved with the California company he founded, according to Chris Ambarian, Eiffel executive vice president. But beyond inventing features such as auto documentation, Ambarian said, a key to the language's success is Meyer's trademarked Design by Contract mechanism, which prevents more than ''90% of bugs'' and thus saves on debugging costs.
Noting that Design by Contract pre-dates models such as Extreme Programming by almost 20 years, Ambarian said, ''It builds a validity test into the code and it's native only to Eiffel. What it does is to take those modules of code, which we call classes, and, at the beginning of the class, it sets pre-conditions.''
Before the class is run, he explained, those conditions must be met. ''What that does is ensure complete 'bulletproof-ness' of the system that you create,'' Ambarian said.
While agreeing that C++ may allow more freedom for programmers to go where they want to go, he argued, it could lead to disaster.
''Anything you can do in C, you can do in C++,'' Ambarian said. ''Anything you can do in C, you can do in Eiffel. There's a difference, however, and that is that Eiffel claims there is a right way of doing things, whereas C++ says you can do it any way you want. To get from point A to point B in Eiffel, there is a straight line. Whereas in C++ you can go from point A to point B through the mountain pass, you can also drive the car off the cliff and kill everybody in it, which you can't do in Eiffel. It is literally impossible to Design by Contract and write an invalid routine.''
Links:
For other Programmers Report articles, please go to http://www.adtmag.com/article.asp?id=6265
About the Author
Rich Seeley is Web Editor for Campus Technology.