Fog Creek Software
g
Discussion Board




Is Eiffel a contender?

I'm reading Betrand Meyer's OOSC2 and, like everybody, I'm intrigued by Eiffel.  Although he doesn't mention it by name it seems to make a lot of sense when he describes it.

Downloading an using Eiffel is even more impressive.  It suffers from a very slow compilation first time, but then melts very nicely.

It has extensive libraries, and can already compile to not only Window and Linux, but also the JVM and CLR.

This is all very impressive, except for one thing.  Nobody is using it.

Does anybody have any idea why Eiffel isn't more popular?

Did Meyer loose a golden opportunity by not mentioning Eiffel by name, but instead refering to it as his 'Notation'?

Should he have worked harder for a familiar, rather than correct, syntax?

Is the speed of execution too slow?

Is the cost to high?  It can be downloaded for free, but a commercial license costs thousands.

It Eiffel perfect, and it is all the IT industries fault for not recognising this?

Does it have glaring faults that become obvious once you try to use it for something real?

Ged Byrne
Wednesday, January 28, 2004

"Does it have glaring faults that become obvious once you try to use it for something real?"

Just one problem: I just ran a monster.com search for Eiffel in Maryland (where I live) - not a single hit.  Might be fun to use as a hobby, but I wouldn't consider a career change.  Kind of like being the only remaining Amiga owner - it might be cool tech, but who cares.

Mike
Wednesday, January 28, 2004

  Yes, but I think that's what Ged is asking about.  Why there aren't any job ads for Eiffel ?  Because nobody is using it.  And why is nobody using it ?

Ricardo Antunes da Costa
Wednesday, January 28, 2004

> Does anybody have any idea why Eiffel isn't more popular?

It has no backing from any large companies.  It's not taught at schools.  It doesn't solve any niche problems.  Most importantly, it doesn't do anything significantly better than other languages do.

Look at some languages that have been successful.  PHP is great for getting web pages up quickly.  Anyone can pick it up and write a web page without knowing programming theory or buying expensive tools.  Perl allows you to quickly manipulate text without dealing with compiling and linking and other junk.  Delphi and VB allow people to construct Windows GUIs with ease.  Due to its simple syntax and flexibility (OO is not required), Python has been very successful as a scripting language for many situations.  Java's nothing special, but it makes C/C++ programmers feel comfortable and it eliminates the task of garbage collection.  It also has plenty of backing from large companies and has done a decent job of keeping things cross platform.

The only thing Eiffel allows you to do is acquire OO sainthood in Bertrand's eyes.

Matt
Wednesday, January 28, 2004

  Good points, Matt.  And to get things worse, Smalltalk is often associated with  OO sainthood at the Universities.

Ricardo Antunes da Costa
Wednesday, January 28, 2004

One of the reasons Eiffel isn't a contender today is because Bertrand Meyer never understood the importance of mindshare until it was too late.

An example - I know someone who, back in 1988, wanted to use Eiffel for an internal project he was working on at IBM. An Eiffel compiler wasn't available for the computer being used. They were going to write their own compiler but never successfully negotiated the rights to use the Eiffel language. IIRC, it wasn't until a few years later that Bertrand Meyer let other people freely write Eiffel compilers.

The sad part is that from what I remember, Eiffel is a very well designed langage.

Semi-Anonymous Coward
Wednesday, January 28, 2004

>One of the reasons Eiffel isn't a contender today is >because Bertrand Meyer never understood the >importance of mindshare until it was too late.

Same problem that happened with brad cox
and software ICs.

son of parnas
Wednesday, January 28, 2004

> It's not taught at schools.
When I did my "Algorithms and Data Structures" course at CS school a few years ago, Eiffel was the language used for assignments. As far as I know that's still the case.

The keyword set is small and well-designed (though I didn't appreciate that at the time.). But like others have said, it's hard to identify the niche that would compell you to use it. It's very similar to ADA though, so maybe it sees some use in military real-time systems.

MugsGame
Wednesday, January 28, 2004

Back in the day Eiffel was THE teaching language at RIT.  I think it is Java now.

christopher baus (www.baus.net)
Wednesday, January 28, 2004

The OO classes at Rensselaer at Hartford are all taught in Eiffel, or were three years ago. I suspect they still are.

Eiffel is popular with those who style themselves as specifically software *engineers* rather than just developers. Most companies don't care about the engineering aspects, though.

Chris Tavares
Wednesday, January 28, 2004

Covariance violates Liskov's substitutability principle. I remember discussions about this Eiffel deficiency in the early 90s. Meyer didn't accept that it was time to reconsider his point of view. Now Eiffel is toast.

Alex
Wednesday, January 28, 2004

Oh yeah, like Eiffel is toast because of covariance!  "Gee Eiffel looked nice, but unfortunately it doesn't have the check next to 'inheritance system satisfies Liskov Substitution Principal' "

I read a paper once that expressed that Contravariance was a function of subtyping and Covariance was a function of specialization.  As usual, when there is a big argument about which thing is correct, the answer is usually "both"

Keith Wright
Wednesday, January 28, 2004

I know humor when I see it, right?

Alex
Wednesday, January 28, 2004

I tried to sell my manager on an Eiffel pilot project, but to no avail.  The development environment costs a lot relative to our MS environments, there were few people that had any degree of familiarity with the language (so we'd be hard to replace), and the boss just couldn't see how having anchored types, generics, DbC, and all that was necessary for us to get our work done.  It's a tough sell.

On the other hand, I met quite a number of people that *are* using Eiffel in their work and using it effectively.  Many seemed to come from financial companies and insurance companies, so maybe there's a niche being filled there.

Eiffel Hopeful
Wednesday, January 28, 2004

Interesting reading Joel's article, as the production of a linked executable is what really attracts me to Eiffel.

It seems to me that Eiffel would be perfect for the smaller software houses producing shrinkwrapped software, like Fogcreek, but they have priced themselves out of that market.

Ged Byrne
Wednesday, January 28, 2004

"Is the cost to high?  It can be downloaded for free, but a commercial license costs thousands."

Bingo.  A new language doesn't have a chance of becoming popular unless it is given away for free or cheap, or it is produced by a major company that's already well known for shipping software tools. If Microsoft or IBM buys Eiffel, it will spread quickly.

T. Norman
Wednesday, January 28, 2004

Theres an interesting comment about Pascal leaving a bad taste because it is so restrictive.

It strikes me that Eiffel also shares the same restrictive approach as Pascal.

It seems to me that freedom to shoot oneself in the foot is essential if a language is to succeed.  Programmers do not like to be protected from themselves.

Did Java survive because so many of its safety features, such as checked exceptions, are so easy to bypass?

Ged Byrne
Thursday, January 29, 2004

Eiffel popularised Design By Contract, and it is interesting to note that DbC was one of the most requested additions to Java.

It also has excellent documentation facilities built in such as the ability to view code in "flat, short" form - basically a precis without the specific code implementation details.

Then there's multiple inheritance available if you want it, and even more importantly, constrained generics as well.
The covariance "problem" (not really, it is rarely encountered in real life) could be solved by using multiple dispatch, but at a speed penalty.

I suppose we could say that Simula invented OO, but it didn't popularise it.  Eiffel may be in the same position with regards to DbC.

I also recommend looking at Eiffel's "Agent" facility.  Eiffel has lots of good ideas, and as a .Net language it may have been given a second chance.

David B. Wildgoose
Thursday, January 29, 2004

No language that doesn't have an extensive library allowing you to build real things quickly stands a chance anymore. Eiffel, Haskell and the like all suffer from this same problem - nice language; too much work to do anything with.

Look at the big, succesful new languages of late: Delphi, C#, VB, Java - all of them have major quickbuild tools bursting out of their seems.

Mr Jack
Thursday, January 29, 2004

So far Eiffels libraries are the best I've seen.

They include windows specific (WEL) as well as cross platform.

There are also libraries for other regular tasks, such as text parsing.

This is what puzzles me about Eiffels failure.  They seem to get so much right.

Ged Byrne
Thursday, January 29, 2004

I say so far because I haven't looked at .Net yet.

Ged Byrne
Thursday, January 29, 2004

To be perfectly honest, Eiffel, nifty language though it may be, suffered for a long time with sub-standard compilers and tools.  Sub-standard to the point where any benefits of the language itself were drowned out by the frustration of using it.  Now I doubt this is no longer the case, but the damage was done early on.  It is difficult to evangelize a language when it is so painful to work with.

Junkster
Thursday, January 29, 2004

Junkster,

Interesting.  Was this the ISE compiler of just the Small Eiffel open source version?

I did try the copy of Eiffel provided with the CD and found it baffling.  The latest version seems nifty enough, though.

Ged Byrne
Friday, January 30, 2004

*  Recent Topics

*  Fog Creek Home