views:

1683

answers:

8

I think it's a very carefully designed language. I like the programming concepts it promotes. After the first touch I was very impressed.

I was wondering if there are any job ads for this language. The license price is a bit prohibitive so I think there are very few small companies that will choose it.

Have you worked on large projects involving Eiffel? What kind of path should I follow if I plan to apply in the future for job involving Eiffel?

Update: Short version of the question is: Can you make a living by knowing Eiffel or it's just the type a language that makes you a better programmer?

A: 

Andrei,

Be very , very careful of questions like this.. To be honest, I am considering closing it off.. Can you perhaps consider rephrasing your question to be less subjective? (I am cutting you slack because you are new).

This all boils down to peoples opinions, which can be hard, hence the reason it is avoided on StackOverflow, as per the FAQ:

What kind of questions should I not ask here?

Avoid asking questions that are subjective, argumentative, or require extended discussion. This is a place for questions that can be answered!


Please do not up/downmod or "accept" this answer, it is here for moderation purposes.

Rob Cooper
-1 But you aren't a moderator. And it's not an answer. So good intentions not withstanding, it should be a comment.
Oorang
You are the second person to comment on an answer like this. THIS WAS CREATED OVER A YEAR AGO. Before any "rules" etc. existed. This answer is way down on the page (for a good reason). Also, at the time of writing, I was one of (relatively few) active participants who DID have the more "mod-like" abilities. People will not see it. No one cares. Please get out more.
Rob Cooper
+7  A: 

I love Eiffel - It was the first language taught at the university I went to (though I'd spend a bunch of time in high school playing with Basic then C and a little C++ in my own time).

A few reasons why I like it :

  • Design by contract is really helpful
  • It has a sensible implementation of multiple inheritance
  • An object field is indistinguishable from a method which returns a value and takes no parameters - Avoids the need for the scourge of 'get' methods.
  • Covariance of generic types - it just makes sense.
  • One loop type, simple control flow (no returns) etc force you to write very readable code.

I don't know if it's improved much since I last looked, but as I recall the main problems were always the lack of good libraries and IDE/tooling.

I have never seen any job in my part of the world (Canberra, Australia) involving Eiffel, and probably wouldn't try to push it myself. No matter how lovely the language is, practical concerns like being able to hire people is probably far more important. Even going to be a lecturer at ANU isn't an option, as I believe they've since switched to teaching Java.

Anyway, if you were serious about getting into the Eiffel world, your best bet for finding jobs would probably be to try to get heavily involved in the GNU Eiffel compiler, SmallEiffel. Having worked in there would stand you in good stead for any job which involved Eiffel, and you've got a much better chance of making the right connections to find such jobs if you get into the Eiffel community at large.

Best of luck

Matt Sheppard
+4  A: 

Here's my completely subjective answer based on my personal experience:

Eiffel is the single reason that I transferred out of CS at RIT. Its obscure syntax is so unlike anything else that the majority of the class was people asking questions attempting to relate the language's features back to C/C++, Pascal, and Basic.

Eiffel is the single language that I was never able to get a firm grasp on. Pre-Eiffel, I had learned: Pascal, Basic, and batch scripting. Post-Eiffel I have learned: C++, VB, Lingo, VBScript/VBA, JavaScript, Java, Perl, Bash, XSLT/XPath, C#, VB.Net, and SQL.

I have never seen a single job advertised that used Eiffel, and just thinking about !!SomeObject and SomeObject.Make puts a chill up my spine.

In short, I hate Eiffel. :-)

travis
Fair enough. Odd as it may seem, learning Eiffel > 15 years ago gave me a much firmer grasp on C++ and helped me read and understand the ARM. Though I never had problems with the syntax, it is certainly understandable that others (many!) have. I know people that know Eiffel but I never found any job description requiring it.
Abel
I don't get how you can hate Eiffel based on a couple syntax points while you mention baroque syntaxes like batch, C++, Perl, XSLT, Bash...As said in another answer, Eiffel does need a bit of typing, but programming rarely requires you to fight the language. Try doing dictionaries with bash, or understand how many expansions a bash expression will go through before it's actually evaluated...
Damien Pollet
travis
+9  A: 

I like Eiffel. So please read this answer with care because I can't be objective. I will try to list facts / features / advantages of the language. I tried to collect a few links, so you can make your own opinion. There are far more places I should list, but I guessed I should just list the ones that are the most important for me.

Can you make a living by knowing Eiffel or it's just the type a language that makes you a better programmer?

It makes you a better programmer. I have rarely seen jobs that require Eiffel. But for me, it is the language I have searched for for years.

The Language

  • The best page for a language overview is probably Eiffel on Wikipedia
  • It is very different to other languages but also very simple (there are only a small amount of keywords to learn), see Eiffel on Wikipedia
  • Eiffel code is long compared to C (or similar languages). I. e. you have more words than symbols (end instead of }; from-until-loop-do instead of for(...; ...; ...) {...}). You can love or hate it.
  • Every part of the language is defined as much as possible (i. e. there is a BNF for the whole syntax). See ECMA Standard
  • Design by Contract (DbC) is part of the language (preconditions, postconditions, class invariants, state-checks, exception handling deeply connected to DbC, etc.).
  • Garbage Collected (GC) or not - you can choose

Tools

  • Apart from different compilers (see Links below) there is an IDE called EiffelStudio with a lot of integrated tools (UML / BON diagrams, eiffeldoc (similar to javadoc), debugger, etc.). The IDE should run fine on Windows and plattforms that support GTK (I only tested on Windows and Linux).
  • There are compilers that target .Net (Eiffel Software), Java (SmartEiffel), interpreted (Beta, TEComp) and C (which is compiled to native code)

Libraries

  • There are the commercial ones from Eiffel.com
  • Free, active ones like: Gobo and EWLC
  • A lot of dead ones :( , yeah, that is a BIG disadvantage of eiffel

Links

  • A big collection of links at Cetus
  • The leader in the eiffel world. You will also find the possibility to promote yourself as an eiffel developer there: Eiffel Software. They implement eiffel according to the ECMA Standard.
  • SmartEiffel is the GNU compiler for eiffel. It does not implement the new ECMA standard of eiffel.
  • There are some other implementations, like this one: Visual Eiffel (commercial) or this one TEComp (Beta, it is an interpreter that shall follow the ECMA standard)
  • Very good overview for the eiffel language: Eiffel on Wikipedia
Remi Meier
+6  A: 

At the ETH Zurich, Switzerland they teach an Introduction to Programming course using Eiffel.

The course material will probably enable you to get a basic understanding of the language and to get an opinion of your own: http://se.ethz.ch/teaching/2008-H/eprog-0001/english_index.html

The course script can be found here http://se.inf.ethz.ch/touch

Last year's material can be found here: http://se.ethz.ch/teaching/2007-F/eprog-0001/index.html

They used to have video recordings of the lectures which have been removed from the site. If anyone is interested, I could up a torrent. It's roughly 1.5 DVDs - so > 6 GB.

Juan Romero Abelleira
I would love to have the videos. Can you set up a .torrent agarcia [at] google's mail service. com
elviejo
+5  A: 

If you're a programming practitioner, my advice is to digest Eiffel's distinctive features (query/command separation, DbC) and move on. The language's niche is too small to have any chance of affecting your career and, unlike other niche languages, it's too heavy to be used in one-off scripts and home projects. The ideas behind Eiffel are more useful than Eiffel.

Constantin
I Agree. Pre- and postconditions are a very nice way to describe the behaviour of a method in a precise way. I don't believe in command/query separation as leads to more objects that are more stateful than necessary.
SealedSun
+2  A: 

Eiffel jobs are not so common, but they exists. Usually, their switch to Eiffel was the result of an Eiffel enthusiast that was recognized in the company as a technical expert and was empowered to influence the decisions on technological choices.

The chance that you find an Eiffel position is quite low. But it doesn't mean that you should not continue to investigate Eiffel. If you train yourself in Eiffel, this knowledge will definitively be a good asset for your career. You will have a better understanding of the OO concepts. You coding will be influenced and you may even adopt some of the Eiffel concepts.

If you grow into your position and that you are still convinced that Eiffel is the tool of choice, you may have the opportunity to introduce Eiffel in your company. The likelihood of this scenario is not low. A lot of people are just followers. It seems you are interested in alternative technologies, you will be part of the few people who are making proposals. If the management of your company is open to changes and looking for new solutions, you may be lucky.

Chris
+4  A: 

You should talk to the Eiffel community - go to http://www.eiffelroom.com for instance.

bengrine