News

Eiffel unveils .NET plug-in update

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.