Contribute to Eiffel

by Jocelyn-Fiat (modified: 2015 Dec 03)

Do you love the Eiffel language, method, tools and libraries but would like them to be even better? You can help. The entire technology is available under the GPL Open Source license so that all developers can participate in its evolution. The future of Eiffel is in the hands of the community.

There are many ways to contribute, each detailed in the following sections:

Everyone can be a contributor. If you are an Eiffel wizard, the community needs your experience. But even if you are fairly new to Eiffel, you can help! You will find that the community is always willing to support you and provide Eiffel expertise to complement your own special skills. As you read further, feel free to contact us directly at any time if you have any questions or if we can help you get started!

1. Libraries

Much of the Eiffel story is about reuse of high-quality components. Eiffel applications need these components. Library contributions can be of many kinds, some straightforward, some more ambitious:

  • In some cases, components are available in other languages such as C. Eiffel has a sophisticated C/C++ interface, which makes it easy to produce a simple Eiffel library that calls out to this existing code. Such a simple wrapper can be a significant contribution: it avoids duplication of effort and makes sure that everyone uses the same API, which can then be improved and extended for the benefit of the community.
  • Sometimes a wrapper already exists, but it is too low-level: not object-oriented, not equipped with contracts. Turning it into a real Eiffel library by adding a higher-level layer is an exciting project. For example, see the difference between WEL, the Windows Eiffel Library, a wrapper around Windows graphics, and the EiffelVision library, which internally relies on WEL (and similar wrappers on platforms other than Windows) to provide platform-independent graphics through an elegant object-oriented API.
  • There is always a need to extend existing libraries, such as EiffelBase (fundamental data structures and algorithms).
  • And of course there is room for many other pure-Eiffel developments in new areas.

How to get started

2. Documentation, Wikipedia, videos

There are lots of Eiffel documentation around, but also lots of remaining work:

  • Eiffel has undergone continuous improvements. Some documentation refers to earlier states of the technology. A useful contribution is to look for obsolete articles. Help clean up the documentation so that new and not-so-new users get a clear, consistent, up-to-date picture.
  • Eiffel offers innovative, forward-looking answers to many programming and software engineering issues. Wikipedia entries on these topics do not always mention the Eiffel solutions. Anyone can update Wikipedia to explain relevant Eiffel techniques. A list of Wikipedia entries that would benefit from new or improved Eiffel information is available at.
  • Some of the documentation, while good, is meant for experienced developers. Beginners need more tutorial-style presentations.
  • A particularly good way to produce useful documentation at modest effort is to record videos. There is an Eiffel YouTube Channel with excellent presentations, and a need for many more.

How to get started:

3. Community site (eiffel.org)

The http://eiffel.org site is the site for the entire Eiffel community and the natural place to go first for newcomers and experts alike. You can help continue improve it:

  • Share news of interest to the Eiffel community.
  • Share links to blogs and RSS feeds.
  • Link to eiffel.org from other sites.

How to get started:

  • Propose blog articles.
  • Contribute news items.
  • Contact us if you have Web expertise and can help with the eiffel.org site as an administrator.

4. Flagship applications

People want to know what others have done with Eiffel. Eiffel is routinely used to produce great applications, many of them deserving broader exposure. Do you know of an interesting application written in Eiffel? Do you have a story to tell about how Eiffel succeeded when everything else had failed? Do you simply want to showcase your project, large or small? Tell an Eiffel story.

How to get started:

Contact us to see where your Eiffel story best fits: blog, web page, interview...

5. Tools and ports to new platforms

Developers love tools. Even a small tool contribution can make a real difference. You can produce tools at many levels:

  • The keystone of Eiffel development is the EiffelStudio IDE (integrated development environment). EiffelStudio is big, but that has not detracted many open-source contributors from making significant additions. Thanks to Eiffel clear structuring mechanism, even a newcomer can dive into the system, find his or her way around, and make a contribution.
  • Developers also rely on many smaller utilities. If you prefer to start with something more modest than the full EiffelStudio, look at the many smaller tools that play a big practical role (Iron, compile_all, syntax_updater and others).

A related area is to port Eiffel to new platforms. The Eiffel compilation technology is highly portable; if you are aware of a new processor or operating system on which Eiffel is not yet available, you can produce the first Eiffel implementation for it.

How to get started

  • Read the EiffelStudio wish list.
  • Feel free to add to the list if your particular wish has not already been recorded.
  • Pick a tool to be implemented, and tell the community so that others can help.

6. Testing and bug fixing

Eiffel always requires improvement:

  • Even if you are not directly contributing software or documentation, you can help by testing the technology, particularly new features, new platforms, and combinations of features.
  • When you encounter a problem, do not just look for a workaround, but look around for previous reports if any, and if the problem has not been documented fill in a bug report. This is the best way to ensure that the problem is corrected.
  • There is always, of course, the possibility of contributing a fix yourself. But just reporting mishaps is already a significant contribution.
  • Beyond bugs, feedback on Eiffel mechanisms, their use and their possible improvements, is always helpful

7. Everything else

The above list is far from exhaustive. There are many other ways to contribute, many of them requiring only a few minutes now and then:

  • Posting about Eiffel on social networks.
  • Telling your friends and colleagues about Eiffel.
  • If you are an educator, using Eiffel for your classes (check the introductory programming text)
  • Helping novices and others on the Eiffel mailing list and other forums
  • Plus everything we have not thought of!