Wednesday, January 24, 2007


Gobo 3.5 released

Eric Bezault has announced the release of version 3.5 of the Gobo Eiffel package, a substantial set of Eiffel libraries and tools (more details).

Major new libraries and tools since the last release include an elegant and powerful Eiffel library for command-line argument passing, an XSLT processor written entirely in Eiffel using the Gobo Eiffel XML library, and an Eiffel compiler - "still under development but already able to compile all the Eiffel code contained in the Gobo package".

Over the years, Eric has been known for his herculean efforts to support as many Eiffel compilers as possible. Even so, the Gobo Eiffel Package has had to move with the times and this is likely to be the last version that supports Visual Eiffel (on account of its lack of support for language features such as agents which have been supported in other compilers for many years). SmartEiffel 2.x is also not supported, because of its language changes. As Eric says, "it implements another language than the one supported in Gobo".

The Gobo package supports ISE Eiffel 5.6, 5.7 and 6.0 but Eric has marked the support for 5.7 and 6.0 as "unofficial" as a protest against the way that these versions have slugged users with the ECF system files, leaving some users stuck with 5.6 for now at least.

Finally, there's the great news that future versions of Gobo will be released under the MIT license.

Tuesday, January 23, 2007


EiffelStudio to move to FreeElks

Emmanuel ("Manu") Stapf has confirmed on the ES-devel mailing list that EiffelStudio will eventually replace its "base" library classes with the corresponding classes from the open source FreeElks project, which is administered by Emmanuel Stapf and Eric Bezault.

At first glance this seems rather odd. FreeElks was established (with ISE's blessing and initial donation of code) to provide a free implementation of EiffelBase - but this was before EiffelStudio itself became open source.

So why the switch? There's one key difference between the FreeElks and EiffelStudio libraries - FreeElks will not have any dependencies on the EiffelStudio runtime. This will make it possible to use the same core kernel library library - with bug-for-bug compatibility - for both EiffelStudio and Eric's Gobo Eiffel Compiler.

Manu advises that the switch will take place "when elks compiles". Although freeelks is under active development, it may be a while yet before it's a "drop-in replacement".


Thursday, January 18, 2007


Design by Contract to Improve Software Vigilance

Yves Le Traon, Benoit Baudry and Jean-Marc Jézéquel have written a very useful article on how DbC improves vigilance and diagnosability. It appeared in the IEEE Transactions of Software Engineering, vol 32, no. 8, August 2006 (yes, magazine somehow ended up at the bottom of my stack). Abstract:
Design by Contract is a lightweight technique for embedding elements of formal specification (such as invariants, pre and postconditions) into an object-oriented design. When contracts are made executable, they can play the role of embedded, online oracles. Executable contracts allow components to be responsive to erroneous states and, thus, may help in detecting and locating faults. In this paper, we define Vigilance as the degree to which a program is able to detect an erroneous state at runtime. Diagnosability represents the effort needed to locate a fault once it has been detected. In order to estimate the benefit of using Design by Contract, we formalize both notions of Vigilance and Diagnosability as software quality measures. The main steps of measure elaboration are given, from informal definitions of the factors to be measured to the mathematical model of the measures. As is the standard in this domain, the parameters are then fixed through actual measures, based on a mutation analysis in our case. Several measures are presented that reveal and estimate the contribution of contracts to the overall quality of a system in terms of vigilance and diagnosability.

The article uses the Franck's Pylon library, which isn't maintained anymore. The article would have even been more useful if the authors had looked at the widely used Gobo libraries.



JSON support in EJAX

EJAX has now support for JSON output. I recently had a real need for this when I had a page that was rendered differently depending on if the user was logged on or not. Using my optional login technique I could not simply depend on the browser returning an optional Authentication header. This can be faked, because for optional authentication the browser always send this header, but the server doesn't validate it.

So the parts of the page where personal information was shown was loaded using a script tag which got its information from a protected part of the site, where the Authentication header was really checked. This part returned JSON wrapped in a callback function. Works great.

The JSON is returned by simply emitting the result of a SQL call (using ECLI) as JSON.

Wednesday, January 17, 2007


EiffelStudio is Jolt Award finalist

EiffelStudio 5.7 has been selected as one of the finalists in this year's Jolt Product Excellence and Productivity Awards in the category of Development Environments.

Other contenders in the category are IntelliJ IDEA (from JetBrains), IronPython (from Microsoft), Microsoft XNA Game Studio Express, Microsoft XNA Framework, NetBeans IDE (from Sun Microsystems) and Wolfram Workbench (from Wolfram Research).

The winner will be announced in March at SD West 2007 in Santa Clara.

EiffelStudio was also a finalist back in 2002, in the category of Languages and Development Environments.


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