Fork me on GitHub

You are here

About EiffelHub

A Vision
EiffelHub is the open community for Eiffel developers and users.

Today's Eiffel users know it as the best general-purpose industrial strength language, with capabilities far in advance of the current mainstream languages. However it is not widely used, for various reasons. Aside from historical questions of who won the 'language marketing wars' the main one might be summed up as 'Eiffel solved all the hard problems first'. Some of the less technical problems, such as easy installation and deployment, easy integration of large components to build e.g. database-backed web servers, and most importantly, a cohesive online community have not been well addressed. It is clear from the growth of communities around newer languages like Python and Ruby that the question is not so much one of language, as one of overall usability-in-the-large.

EiffelHub provides a place where we may address these challenges. Its mission includes the following.
1. To grow the use of Eiffel worldwide.
2. To turn today's programming tools and libraries into an enterprise-level technology stack.
3. To provide a single location for developers to find, share and integrate Eiffel libraries, components and tools.
4. To provide a place for new users both novices and experienced IT professionals to learn Eiffel.

And of course, to have some fun...

Evolution
For some time, one of the key challenges of the community will be to create some order in the numerous disparate Eiffel libraries and tools of today. We can think of this in the following stages:

Identify
discover the existence of a component, a name for it, and where it can currently be found
Describe
describe the component according to a defined set of criteria, including: what compiler versions compatible with; has (auto) test cases; dependencies; currently maintained etc. The aim is to know what is possible with this component in isolation.
Accession
put the component into the EiffelHub controlled code based along with other 'described' components, and get it compiling and basically usable.
Integration
the ultimate challenge is to connect the component to other components, and bring it up to a common standard of quality - i.e. to make it properly re-usable. In some cases this might not involve much; in other cases, it might involve rewriting the code based on the design. In many cases, we would expect non-trivial code changes.

Target State
It may be premature to describe too fully the ultimate 'Eiffel Technology Environment' of the future. However, we can certainly identify some key things that are needed in it - most of them mundane, yet an endless source of code re-invention, such as:

  • Standard application error representation and handling
  • Standard application config file handling
  • Standard application resource / environment approach

There are many others, of greater importance, such as being able to easily create a database-backed web server, various kinds of model visualisers, and so on. Over time, we will try to build up an overall architectural map of such components, defining a more powerful application development environment than we have today, and also a roadmap of how to get there.

Building the Community
The ultimate key for EiffelHub to function is an effective human community. This needs to be based on real interaction as well as mailing lists and sharing code. To that end, we will start with webinars and 'hangouts' and hopefully work our way to face to face user group meetings.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer