[NICE: The Nonprofit International Consortium for Eiffel]

Eiffel Class Struggle 2003 Judging


Every entry is judged according to the criteria laid down on this page. The criteria are divided into 13 areas. Every entry can get up to ten points in an area. The areas have been setup so every entry can focus on its unique strengths, like portability or construction.

For a gold score you must attain at least 95 points. For a silver score you must attain at least 70 points.

These criteria should not discourage you. Every library and every application is welcome. Beginner or professional, you will learn a lot by just participating. And remember: this contest does not have loosers, only winners!

We will ask the judges to not only submit a score, but also to submit verbal comments and suggestions. Authors have valued this a lot in the past.


Documentation is divided into three aspects. For each aspect up to ten points can be scored. The three aspects are: installation of the library or application, use, and construction. An entry is judged how well these three aspects are described in the documentation:

  1. No documentation present.
  2. They say, some documentation is better than nothing.
  3. There are some notes.
  4. There is documentation, but it's confusing, unclear and incomplete.
  5. There is documentation, but it's neither complete nor very useful.
  6. Useful documentation.
  7. Good and complete documentation.
  8. Very good and complete documentation.
  9. Have you considered a career in documenting? You're pretty good!
  10. Maybe you should contact Rick Berman & Brannon Braga. They seem to need a lot of help to write decent scripts.

So a perfect entry can score 30 points in a documentation. But it is expected that a score of 24 (three times an eight) is more realistic.


Innovation, or community value, consists of two aspects. For each aspect up to ten points can be scored. The two aspects are:

  1. Is the application or library new in the Eiffel World?
  2. Is the application or library innovative in the Open Source field?
  1. You mean my program actually has to do something?
  2. It did something, but could you next time please ask for a confirmation before reformatting my hard drive?
  3. It was difficult to see the trees because of all the wood.
  4. Been there, seen that.
  5. A useful, but incomplete application or library. Perhaps a wrapper around a C-library.
  6. Interesting.
  7. This entry shows great promise. Don't abandon it!
  8. A solid contender. The Eiffel World thanks you.
  9. The application is unique and excellently implemented.
  10. You really have gone were no man has gone before. Perhaps you're a woman?
Portability among Eiffel compilers
  • If your program compiles with one Eiffel compiler, you score four points.
  • Eight points if you support three compilers.
  • You've reached Eiffel Nirvana: ten points.
Portability among platforms
  • You get two points for every of the following platforms your program is confirmed to run on: Linux, FreeBSD and NT/XP.
  • You get an additional point if you support all three platforms.
  • You can one point for every other supported OS. Up to three points can be scored here. Not that those OSes are of lesser value as the previous three OSes, but your program is actually tested against the previous three OSes.

How easy is it to install the application or library?

  1. No judge lived long enough to install this.
  2. It costed the judges blood, sweat and tears.
  3. It costed the judges blood and sweat.
  4. It costed the judges sweat.
  5. Not too difficult.
  6. A bit unconventional, but not very difficult either.
  7. An installation that was almost recognizable.
  8. Followed conventional standards like ./configure, make and make install.
  9. Wow, prepackaged!
  10. You mean it is already installed?

An entry is also judged how well it was constructed. Did it use patterns for example? Was it complete? Did it not abstract away too much? Read Joel on Software's the Law of Leaky Abstractions for example. You can score up to ten points here.

Source code
  • You can score up to seven points for readability:
    1. This must be BASE64 encoding.
    2. When you let a team of monkeys type long enough, an Eiffel program will emerge.
    3. You're sure this wasn't meant as an entry for the obfuscated C contest?.
    4. Sometimes I think I understand it.
    5. Understandable.
    6. Easily understandable.
    7. The judge learned something.
  • You can score up to three points for following conventional Eiffel source code formatting conventions like detailed in OOSC2. The Gobo source code conventions are mostly equal to this:
    1. Not followed.
    2. Sometimes followed.
    3. (Mostly) followed.
Use of the Principles of Design by Contract

Design by Contract is one of the corner stones of Eiffel. Use it well.

  1. We really meant it that DbC is a neat idea.
  2. "I thought that as well, but turning it into actual program code is not easy."
  3. At least you tried.
  4. You can turn of DbC for the final version of your program, so it actually won't slow you down!
  5. Try to read the relevant chapters in OOSC2 again and study actual Eiffel source code.
  6. You're on your way. Next time remember that invariants are actually useful. Also, preconditions for not exported routines make sense.
  7. Good use, but not complete.
  8. A shining example of the power of DbC.
  9. Almost perfect.
  10. You are Eric Bezault!
Ease of Use

How easy is it to use this application or library? Entries are judged if they are applications or libraries.

If the entry is an application:

  1. "I didn't write this for weenies!"
  2. It's a bird! It's a plane! It's an X-Window!
  3. Perhaps I should have listened better in primary school.
  4. If there was an online help, I'm sure I could have figured it out.
  5. You're on to something!
  6. Usable, but rough.
  7. Beginners are comfortable quite soon, and experts are not hindered.
  8. In addition it is powerful as well.
  9. An example that shines brightly in the Open Source world.
  10. This ease of use will be the story of legends.

If the entry is a library:

  1. "I didn't write this for weenies!"
  2. Is there a use for this?
  3. Probably usable, but doesn't feel OO-like.
  4. Probably usable, but doesn't feel Eiffel-like.
  5. Provides loadpath.se for example or portions you can copy and paste in an .ace or .esd file.
  6. It provides a library.xace.
  7. The classes provided are well-designed.
  8. And very powerful!
  9. Who needs C anymore?
  10. This will change the life of every Eiffel programmer.

How much effort is likely to have been spent?

  1. You're a script kiddy.
  2. It seems the closing date was very inconvenient to you.
  3. You must have heard of the Eiffel Class Struggle too late.
  4. You're a hacker.
  5. You spend some time on this.
  6. You certainly must have spend time on this.
  7. We can see that you spend quite some time.
  8. I suppose you barely had enough time between the announcement of this International Eiffel Programming Contest and the closing date.
  9. Have you been paying attention to your family lately?
  10. A life's effort.