Linked by Thom Holwerda on Sat 26th Nov 2005 17:02 UTC, submitted by Megatux
Gnome "I followed the debate about a successor for the C/C++ combination as the primary language for developing the GNOME core desktop platform very closely last month. There has been discussion about a number of options. What I would like to do on this page is give an overview how a probably less well-known language might be a viable compromise as a C/C++ successor. This language is called Eiffel and exists for over a decade. Eiffel takes the principle of Object-Oriented programming to its extremes and, as a consequence, is a very easy to learn language."
Thread beginning with comment 65074
To read all comments associated with this story, please click here.
To all you disinformed opinionated bloaks
by on Sat 26th Nov 2005 20:34 UTC

Member since:

Here's a little definition of Eiffel for you.
Think about it before you go blurting out you lack of knowledge about Eiffel:

Think of Eiffel as a Java (OOP, Garbage collection, documentation) but *C* fast. Gcc fast.
Code in Eiffel is written with Design by Contract. This is a vaccine against bugs.

This is Eiffel. It's been around for years.
And the only thing stopping it from being used are a couple of non-techical factors:

1) Disinformation
2) Prejudice
3) Lack of marketing (not Sun, not Microsoft, not IBM (read linux))
4) Because there were few Eiffel vendors, all quite content making good money to a selected clientelle. But there's SmartEiffel now.

The problem with C/C++ ???!! What ??!! Don't you know ??! Are you aware of the hundreds of exploits because of unsafety ???!!

Microsoft is moving away from C++ (in fact, Microsoft Research has hired some of the very best people from industry and academia. Already they have formal verification of device drivers). Will we not ? We want to be the community that gets listed on a daily basis on security lists because of buffer overflows ?!

My guess: the free software community will reject Eiffel on the basis of ignorance. Why ? Simply because not too many coders are willing to stop and actually /think/ about the piece of code they're writing (the "release early, release often" Got root?

Eiffel grants you no excuse for not using a language with garbage collector. There's no performance trade off. Even C++ freaks will eventually resort to garbage collector in a sufficiently large program.

See these two free books on techniques of programming:
http://www.eng.unt.edu/~ian/books/poa.html
http://www.cs.toronto.edu/~hehner/aPToP/

Reply Score: 4

Member since:


Think of Eiffel as a Java (OOP, Garbage collection, documentation) but *C* fast. Gcc fast.

Hehe. I'd bet you think java is a good language, too.

Code in Eiffel is written with Design by Contract. This is a vaccine against bugs.

Example?


And the only thing stopping it from being used are a couple of non-techical factors:

1) Disinformation
2) Prejudice
3) Lack of marketing (not Sun, not Microsoft, not IBM (read linux))
4) Because there were few Eiffel vendors, all quite content making good money to a selected clientelle. But there's SmartEiffel now.

The problem with C/C++ ???!! What ??!! Don't you know ??! Are you aware of the hundreds of exploits because of unsafety ???!!

Microsoft is moving away from C++ (in fact, Microsoft Research has hired some of the very best people from industry and academia. Already they have formal verification of device drivers). Will we not ? We want to be the community that gets listed on a daily basis on security lists because of buffer overflows ?!

My guess: the free software community will reject Eiffel on the basis of ignorance. Why ? Simply because not too many coders are willing to stop and actually /think/ about the piece of code they're writing (the "release early, release often" Got root?

Eiffel grants you no excuse for not using a language with garbage collector. There's no performance trade off. Even C++ freaks will eventually resort to garbage collector in a sufficiently large program.

For an informed view of language popularity, you should probably read this:
http://www.paulgraham.com/popular.html

This is also a decent read:
http://www.paulgraham.com/noop.html

I'd also like to point out that I am not a lisp fanatic. I don't particularly like it at all, but some of the ideas and coding styles based around it are interesting nonetheless.

-bytecoder

Reply Parent Score: -1

Member since:

I know Common Lisp and Scheme. For the life of me, I just can't imagine GNOME coders getting their heads around macrology. Let alone the Common Lisp Object System, the most sophisticated object system there is. There's not a free lisp universally available for all platforms, and that includes UNIX, that meets the requirement of decent compilation (there's bytecoded Lisp, though - CLisp - but I think the garbage collector is borking on OpenBSD recently).

Eiffel is sufficiently close to the Algol-derived syntax most are accustomed to (C, C++, C#, Pascal, Delphi, Java, Python, etc). Not a problem. Unless you're retarded.

Also, the object system does not present "problematic" concepts for mainstream developers.

Python and Ruby are little languages that demonstrate poor design. Look at Smalltalk, Lisp, etc and you'll see. Plus, you don't compile.

Eiffel has been around, it's tested. Why didn't it spread like fever? Well, first Microsoft wanted they're Visual C++, then Sun their Java. That's what sets the trend for the majority of programmers. C has been around for portability, efficiency and historical reasons.
Now Microsoft moves away from C++, MacOS uses ObjectC and we're going to stick to C ?! Come on, how long will C hold ? Can you envisage a 20-year horizon of free software development *at large* without *at least* a garbage collector ?

Eiffel is currently under development. Sure, it lacks some documentation but it's better now then it was then. People took up GNOME and Mono when there was poor documentation. Why can't the same be done for SmartEiffel ?

It's safe (garbage collected). Supports discipline (DBC) and methodology for large projects.

It compiles, and it compiles fast.

Java, for those who like Java, needs a VM that is proprietary. That excludes free UNIXes, for instance.

People ought to stop reinventing the wheel and just take what's there. SmartEiffeil is also from the free software community, you know ?

And besides, C and C++ are a proven failure in terms of code safety. When people say "the problem is not the language" they just show they don't understanding software engineering at large, they show they've *no* idea of the requirements of a large project.

All in all, I think Eiffel was an excellent proposal because it fits right in the current mainstream thinking (at least, that's how I see it. OCaml and Clean, although both approach C performance, would not - they're functional languages).

Reply Parent Score: 1

ma_d Member since:
2005-06-29

"Think of Eiffel as a Java (OOP, Garbage collection, documentation) but *C* fast. Gcc fast. "
You'd be surprised how fast Java is when comparing the same code against c, practically the same... IE, if you need to import in your java code, it's wrong.

"Code in Eiffel is written with Design by Contract. This is a vaccine against bugs. "
From my brief readings onf wikipedia. It looks to me like DBC is a runtime check that validates the IO of your function calls? I guarantee that'd cause slow downs...

"The problem with C/C++ ???!! What ??!! Don't you know ??! Are you aware of the hundreds of exploits because of unsafety ???!!"
Bugs are the fault of developers, don't blaim the language. C lacks a toolset to help you avoid them, but it's still your fault for writing them. All that code is being run as *essentially* c code at some point anyway...

"Microsoft is moving away from C++"
That's because c++ is probably the most obnoxious language in history. It's not a superset of C, but when you're staring at its compiler errors you'd swear it was. And, when you read other peoples code you end up finding the same stupid mistakes you were making in your c code (pointer issues). And adding in GC has been fairly problematic.

"My guess: the free software community will reject Eiffel on the basis of ignorance."
Probably. It is entirely practical for the choosing of the language to be a democratic thing; and there's just not many Eiffel developers. That may or may not be Eiffel's fault, but there's no reason to tell everyone to learn a new language.. This is probably one of the worst things going against Python; it's so unpopular in Academia (amongst classes I've heard of) and professionals.. If you think about it, chunks of Gnome are already written in Python.. (Gnome panel applets). It may still be better to go with c# or Java, because so many professionals use it (which means many amateurs will be using it or are using it at work). I wouldn't say that if the languages weren't good enough; but I think they certainly are.


"Eiffel grants you no excuse for not using a language with garbage collector."
So... Is someone advocating using c++ instead of c for gnome?

I see no reason to choose Eiffel over any of the more popular languages which have been developed. I'm actually getting a bit sick of learning new languages... I don't have time to actually use them anymore!

Reply Parent Score: 1

jayson.knight Member since:
2005-07-06

""Code in Eiffel is written with Design by Contract. This is a vaccine against bugs. "
From my brief readings onf wikipedia. It looks to me like DBC is a runtime check that validates the IO of your function calls? I guarantee that'd cause slow downs...

Think of it more as built in unit testing, without the hassle of having to write seperate tests (it's baked into the code itself, and _all_ code needs unit tests). I read the wiki as well...it's pretty vague. Read this link for a much more thorough examination of DBC: http://archive.eiffel.com/doc/manuals/technology/contract/

At it's root, DBC is more closely aligned to test driven development than anything else.

Reply Parent Score: 1