Monday, September 18, 2006

 

Whither SmartEiffel?

A few fairly innocent questions by Phil Taylor on the SmartEiffel mailing list led to an extraordinary amount of vitriol from main SmartEiffel contributors. In the end, one of the main SmartEiffel users outside the inner SmartEiffel circules decided to leave as well. Roger Browne, main contributor to this blog wrote:
That creates an atmosphere in which I can't contribute usefully to SmartEiffel. Bye.
Strange how the one compiler that opened up Eiffel to the open source community is led by people who have a talent and willingness to plant the boot into the face of everyone actually using their product. Very sad.

Outside the core SmartEiffel contributors we now only have Daniel F. Moisset, the guy behind the SmartEiffel Transitional release and Cyril Adrian, who wrote in the same thread:
Note that ESE will be my last attempt to do something viable with SmartEiffel. I'm quite fed up with hearing that the project is not open enough when we have been doing all we could to open up, KNOWING THAT SmartEiffel is not easily "openable" itself since it is primarily a research project (and the lab is a bit lukewarm in that respect).
Kinda vague. Greg C., another Eiffelist who has been around, wrote:
Over two hundred messages on this one lame topic?

That's it. I'm done.
Let's just hope that the Gobo Eiffel compiler will be ready soon. Although ISE Eiffel is open source, compiling a simple program with ISE Eiffel isn't simple. And although with my new laptop compilation is fast, it wasn't with my old Pentium III 650. And ISE takes up a huge amount of disk space. The story changes of course for large programs, where ISE Eiffel is a must. Recompilation speed with ISE is blindingly fast in such cases, and painful with the SmartEiffel approach.

Labels:


Comments:
> As for the SmartEiffel team,
> they are quite mad.

Which of the following definitins apply to your use of 'mad'?

1. mentally disturbed; deranged; insane; demented.
2. enraged; greatly provoked or irritated; angry.
3. extremely foolish or unwise; imprudent; irrational: a mad scheme to invade France.
4. wildly excited or confused: frantic: mad haste.
5. overcome by desire, eagerness, enthusiasm, etc.; excessively or uncontrollably fond; infatuated: He's mad about the opera.
6. wildly gay or merry; enjoyably hilarious: to have a mad time at the Mardi Gras.

"mad." Dictionary.com Unabridged (v 1.0.1). Based on the Random House Unabridged Dictionary, © Random House, Inc. 2006. 19 Sep. 2006. Dictionary.com
 
Peter, once one has learned the ins and outs of EiffelStudio it's easy enough to compile a simple program.

But for the novice who has already used their text editor to write hello_world.e, it's not at all obvious how to compile that using EiffelStudio.

Should one "Add Project"? No, because the dialog only wants to know about *.ecf files.

Should one "Open project"? No, there's nothing there yet.

Should one change the "Action" from "Open" to "Compile"? Perhaps - but doing this doesn't change the dialog box button from "Open" to "Compile". What's going on?

Should one "Browse..." at the Location prompt? (No, because hello_world.e is grayed out).

So it must be "Create project"! We click on "Basic Application" then click "Create".

Now we get asked to "Choose Your Project Name and Directory". So we set the system name to "hello_world", and the root class to HELLO_WORLD. What should we name the root cluster? Perhaps the beginner will leave it at the default of "root_cluster".

Next we browse the project location, and set it to the directory that contains file hello_world.e. But don't change the "System name" after you've done this or EiffelStudio will corrupt your Location path!

The "Compile project" checkbox is ticked, so we click "OK".

EiffelStudio chugs away and creates 32 Megabytes in the EIFGENs directory, whilst spending 15 seconds on Eiffel compilation and 45 seconds on background C compilation (all this just for Hello World!).

Now we are ready to run our compiled program. We look at the tooltips. Some refer to "Starting" the program; some to "Executing" it. Undeterred, we press the biggest one, labelled "Start".

Some clunky things happen to the screen, then (if we are lucky) we notice that "Hello World!" has been output to the terminal window from which we launched EiffelStudio. If we are not lucky, EiffelStudio covers that window and we don't see anything happening...

I agree with Berend that this process is not "simple". EiffelStudio is incredibly powerful for big, complex systems, but the hurdle of entry is quite high.
 
Peter, perhaps the word "simple" wasn't the right word. It is simple. For me it is either "geant compile_debug_se" or "geant compile_debug_ise". That's just one character.

But it takes quite a bit longer to compile an ISE program for the first time. Perhaps not if you're on a Pentium 4 4Ghz or so.

That's was my point basically: first time is noticably longer (2nd time is superfast of course) and takes up quite a bit more disk space. All for small programs, for large programs the recompilation hit with SE is a show stopper.

One more thing: I like the SE stack dump. Far superior to ISE. Another reason for me to use SE in certain circumstances.
 
Peter, yes it's Linux I'm referring to. The computer is a 3GHz x86-32 with 1GB RAM. Maybe EiffelStudio just works faster under Windows (but remember I'm timing the first compilation, not the subsequent melts).

Berend - yes the SmartEiffel stack dump is better, provided there's no "rescue" clause in your call chain. Then it falls to pieces, losing everything from the call frames between the exception and the rescue clause.
 
Post a Comment



<< Home

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