Cool Things You Can Do with Eiffel!

Part of the marketing challenge of Eiffel is that Eiffel does so much for so many situations.

Of course, you can build great software from scratch with Eiffel. But since Eiffel is so open, operating on multiple platforms and interacting with multiple languages, it acts like the "glue" between disparate worlds. Think of it as the "Swiss Army Knife" of tools.

So we thought we'd just make a list of just a few of the possible scenarios where Eiffel Software can make a huge difference in what you can do. Sometimes Eiffel just makes life faster, or more robust, or easier to construct/maintain/extend. Often, however, Eiffel allows you to do things that you simply can't do with anything else.

Did you know you can also use Eiffel to: Description  
Easily add contracts to classes for robust, unbreakable code Rapidly becoming recognized as the design technique of the next decade, the Design by Contract feature is native only to Eiffel. DbC makes your code much easier to reuse (and thus more likely to BE reused)... and Native DbC makes DbC easier to use than after-market implementations in other languages.
You need: EiffelStudio or EiffelEnvision
Add contracts to existing .NET assemblies You can consume .NET assemblies with Eiffel, and wrap the types with Eiffel classes that can then have contracts like any other classes created in Eiffel.

Click here to learn more

You need: EiffelStudio or EiffelEnvision
Make libraries much easier to use with Design by Contract Design by Contract is also the easiest, most effective way to ensure the fast and correct usage of library classes.
You need: EiffelStudio or EiffelEnvision
Easily migrate a C or C++ application from Unix to .NET It's easy - you simply encapsulate the application (or the desired parts of it) in Eiffel, compile, and you are done.
You need: EiffelStudio
Code an application once and compile anywhere Create applications (including GUIs) that will run identically on Unix, Linux, and Windows using Eiffel and our multi-platform GUI library, EiffelVision2.

Click here to learn more

You need: EiffelStudio, EiffelVision2 & EiffelBuild
Create an application in Eiffel and port to an embedded system Develop easily on a desktop platform using Eiffel's easy and powerful IDE, and then compile your Eiffel source down to optimized embedded code.
You need: EiffelStudio
Integrates into Visual Studio.NET Eiffel now plugs directly into Visual Studio .NET, showing up just like any other .NET language.
You need: EiffelEnvision
Use essentially unlimited multiple and/or repeated inheritance This is an essential difference between Eiffel "True O-O" and other partial O-O languages, and is a key to making efficient systems.
You need: EiffelStudio or EiffelEnvision

Click here to learn more

Inherit from non-Eiffel classes in .NET And you can do multiple and repeated inheritance with .NET classes, just as if they were Eiffel classes.
You need: EiffelStudio or EiffelEnvision
Use XP and Agile techniques with Eiffel Eiffel's Melting Ice supports the XP notion of always having a running system. XP also makes you go back to the design often, and Eiffel's design naturally supports this. In XP, you design the test before you do the implementation - and the tests look a lot like Eiffel's Design by Contract.

Click here to learn more

You need: EiffelStudio or EiffelEnvision
Create a Company Knowledge Repository The high degree of reusability of Eiffel objects (classes) makes it ideal for capturing company experience in a large library or "knowledge repository", which is then easily shared with more employees.

We have case studies that  thoroughly deal with this concept. To request case studies click here.

You need: EiffelStudio & EiffelEnvision
Create Windows Device Drivers The high degree of reusability of Eiffel objects makes Eiffel ideal for easily creating new device drivers for different hardware platforms without requiring rewrites.

 

You need: EiffelStudio
Create robust, rich, award-winning games If you have a great game concept (e.g., with lots of variables/scenarios), Eiffel is a superb way to express your concept - and it is very easy to maintain on multiple platforms, and to extend into subsequent releases without giving up your prior work!

More info at:  http://www.furysoftware.com

You need: EiffelStudio
Make even your first Eiffel application reusable and extendable Whether you designed it to be or not - because Eiffel code is reusable and extendable by nature.
You need: EiffelStudio or EiffelEnvision
Contain WinForms components in EiffelVision2... And vice-versa!
You need: EiffelStudio or EiffelEnvision
Have your domain experts contribute directly to your design Eiffel's syntax is so understandable, even non-programmers can understand the code!  Domain experts (e.g., business users and analysts, doctors, etc.) can thus help design -- or even write Eiffel code directly -- using the CASE tool.
You need: EiffelStudio or EiffelEnvision
Make executables that run faster than work done in other languages Eiffel itself makes it easier to inline and compile to an optimized ANSI-C, and then takes advantage of platform-specific optimized C-to-machine code compilations.  Resulting code is often much faster than hand-coded C/C++.
You need: EiffelStudio or EiffelEnvision
Catch bugs and errors earlier and keep them from being serious ones Design by Contract catches fundamental logic errors at compile (dramatically reducing the amount of runtime debugging). Runtime errors are fewer and simpler to track down and fix.

Click here to learn more

You need: EiffelStudio or EiffelEnvision
Create your business model and then use it directly to implement You model the system in Eiffel (graphically AND with code and contracts)... and when it's done, that's what you use as your starting point for implementation. No more throwing away the model and starting over!

Click here to see how

You need: EiffelStudio or EiffelEnvision
Bring new programmers in to your team with almost no learning curve With Eiffel, it is typical to be able to become familiar with a 100kloc system in 3 days.
You need: EiffelStudio or EiffelEnvision
Make refactoring easier ... using the same tools you use to create the system!  In Eiffel you can browse the existing code a lot more efficiently, use the diagram tool on the fly (to add specific class types, features, inheritance, client-supplier links, or make classes generic), and rename classes much more easily.
You need: EiffelStudio or EiffelEnvision
Automatically document your system and publish it to an html document You can create a website describing the latest rev of your system in minutes, complete with all assertions and class structure shown via hyperlinks:

Click here to see how!

You need: EiffelStudio
Use Java applications from .NET or non-.NET platforms Using the Java Native Interface API, you can create instances of Java classes on a JVM, and query and do other neat stuff too:

Click here to learn more

You need: EiffelStudio and Eiffel2Java
Call Eiffel from other languages Can call classic Eiffel from C code (with EiffelStudio only), or within .NET using either EiffelStudio or EiffelEnvision you can call Eiffel from any .NET language:

Click here to learn more

You need: EiffelStudio + CECIL, or EiffelEnvision
Easily use the same application with different databases ... by changing just a single line of code!
You need: EiffelStore
Multiply your productivity by 10 In reuse situations by building a robust, generic library of your commonly-used business objects; and in any maintenance situations just by using Eiffel's clear syntax and DBC features.
You need: EiffelStudio or EiffelEnvision
Easily track down bugs at execution (without debugging -- and almost without cost) And you don't have to go to your customer's site to find them -- just use Eiffel's exception tracing features.  Instead of having to visit your customer, just have them send you the Eiffel exception trace, and you can easily figure out the cause of the violation, right there over the phone.
You need: EiffelStudio
Create an application on Unix, and move to .NET whenever you want at the touch of a button Eiffel source code is common to ALL platforms EiffelStudio targets. So you can create one set of Eiffel source code, and compile it to any platform AND IT WILL RUN, AND RUN IDENTICALLY on every platform. Including .NET (and soon Mac OS X)!
You need: EiffelStudio
Write your ASP.NET pages in Eiffel Use the new "EiffelCodeDOM" ASP.NET plug-in (available here), and you are set!
You need: EiffelCodeDOM (click here to download)
Migrate a CORBA system to another platform (including .NET) As long as it does not use any C aspects of the Eiffel runtime, it is possible to take an application that uses even complex CORBA interfaces, and recreate it easily in Eiffel, and then migrate that to a different platform (even .NET)! There's no other way to do this as far as we know!
You need: EiffelStudio and Orb2 CORBA-Eiffel binding available at:

http://www.2ab.com/orb2.htm

Save 30% of code duplication ... using Eiffel generic types.
You need: EiffelStudio or EiffelEnvision
Model real life much more closely and easily ... using Eiffel's powerful multiple inheritance mechanisms.
You need:  EiffelStudio or EiffelEnvision
Save your company up to 80% on cost of app development ... or even better, free up existing resources to focus on fun and proactive things, like how to get more customers with cool new capabilities.
You need: EiffelStudio or EiffelEnvision
Use your C++ classes from Eiffel You can wrap those classes in Eiffel.
You need: the Eiffel "legacy++" library that is included with EiffelStudio or EiffelEnvision
Add contracts to COM components to make them more robust When you consume a COM component in Eiffel it generates a skeleton with contracts so that Eiffel can call the COM component - and in this skeleton we can add contracts of the COM components.
You need: EiffelStudio
Use DBC transparently across COM servers A contract violation caught at the COM server will be displayed at the COM client.
You need: EiffelStudio
You can Eiffel-code on whatever OS you like to work on Then send it to the machine your boss MAKES you work on.  : )
You need: EiffelStudio
Offer your team the option to use the IDE they prefer best You can work on your project from either EiffelStudio, or Visual Studio.NET - whichever makes your team most productive given your particular circumstances.
You need: EiffelStudio or EiffelEnvision