Thursday, February 08, 2007


Eiffel Wrapper Libraries Collection 0.1

Paolo Redaelli has announced the release of version 0.1 of the Eiffel Wrapper Libraries Collection, a set of SmartEiffel wrappers for many of the major Free Software libraries.

There's an incomplete yet working GTK+ library including the necessary Glib and Gobject classes, plus wrappers for libGlade (a dynamic interface loader for GTK+), SQLite and GnomeDB (databases), FFMPEG (a multimedia encoding/decoding library), Curl (a full-featured HTTP client library) and XMLRPC (a lightweight RPL library based on XML and HTTP).

The Eiffel Wrapper Libraries Collection project (EWLC) wants to break the chicken-and-egg vicious circle that has hindered the spread of Eiffel. Noboby is using Eiffel because there are no libraries, and there are too few libraries because too few people are using Eiffel. Ongoing development and downloads are at

The license is LGPL.

1. How would Eiffel be helped by having wrappers for libraries in other languages? Why not use those languages in the first place.

2. Writing wrappers is the most useless waste of your time since ewg came around. SmartEiffel might have a problem because it isn't Eiffel anymore, so it can't use ewg, but I wrap anything in the world in seconds with ewg. If I need to.

3. I believe the way forward for Eiffel has been identified by Eric Bezault: writing Eiffel libraries in Eiffel. Why rely on stuff you don't have pre- and postconditions for?
1. Reuse + being able to use Eiffel.

2. Low level wrappers, maybe. high-level wrappers, with added abstraction, type-safety, and contracts, no.

3. Glib based libraries, even when written in C, have contracts. Not as good as Eiffel libraries, but some of the best things around.
I think that the effort in creating wrappers not this badly.But target it only at SmartEiffel is wrong (IMHO).
Maybe we need to join forces into it and we can get more success.
1 - Because when you want to write programs you want to use standard features and libraries like GTK, GnomeDB, access database like Postgresql, SQLite and so on. Almost all widespread libraries have C interfaces.

2 - EWLC does not provide (only) low-level wrappers. We provide high-level, fully-object-oriented classes that feels and behave like any other Eiffel class. SmartEiffel is part of the GNU project and most of the more widespread libraries are part of the GNU project. So I found natural to write binding of Gnu libraries for the GNU Eiffel compiler.
Ewg - an admirable project - produce only low-level wrappers. I've already written in this blog that writing low-level wrappers is not the bottleneck when trying to provide binding of widespread libararies: Emacs regexps help quite a lot.

3- Most GNU libraries have preconditions and postconditions expressed implicitly in their documentation. We translate them into proper DbC clauses.

4 - We use the SmartEiffel base library extensively and the insert keyword. Yet most of our work is easily adaptable to non-GNU Eiffel compilers.

5 - Berend, have you actually tried to use EWLC before commenting? I don't want to start a flame, but it seems you haven't. Otherwise your comments would have been quite different.

Your truly,
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?