EiffelStudio Goes Open
WeiszNet writes "Bertrand Meyer, the creator of Eiffel the language and CTO of Eiffel Software in Santa Barbara, CA has announced in his Software Architecture course at ETH Zurich that the company's flagship product - EiffelStudio was released under the GPL today. Here is the press release: and the project's page.
Eiffel is an object oriented programming language supporting contracts. Last year the international standard (ECMA) for Eiffel was released and now the initiative to go open has been taken."
I'm having first year comp sci flashback! I remember at the time being taught Eiffel as my first OO langage used to teach OO techniques and design - I hated it back then it felt clunky, overly protective and claustraphobic. Now after almost 10 years as a programmer every so often I crack open the old textbooks and think "wow.. that is rather elegent and expressive". Eiffel is engineered/designed - it is deliberately not suited if all you want to do is hack about. It's funny, only yesterday I was using Eiffel as an example to my IT team as a language that forced strong contractual based interfaces.
I just can't be bothered.
At least according to this website I found via the Artima.com website.
It lets you compare any two languages that have compilers in Linux and it gives you a graph of speed vs memory usage in various kinds of programming patterns such as matrix math, branchy programs, etc.
Eiffel (compiled with SmartEiffel) vs C++ (GCC 3.3.4) is actually slightly faster than C++ in almost all of the tests that the author came up with. And the memory usage is just as efficient as C++.
I've looked at Eiffel, but the syntax isn't very pretty. However, for important projects I think Eiffel will be the right language for the job.
What are the differences between Eiffel and other free object oriented programming languages? What does Eiffel have that Ruby, Python, and Java do not?
Compared to Ruby, Python and Java the biggest thing Eiffel has going for it is raw speed. Consider the benchmarks and you'll see Eiffel is much much faster than Java, with considerably less memory use. You get that sort of performance from a langauge with an exceptionally clean, well designed and engineered OO system, and great support for Design by Contract, and a very clear readable syntax: learning Eiffel is very easy.
If you're doing very dynamic work that really calls for the flexibility of Python or Ruby, then Eiffel probably isn't for you. If you want something to build robust complex large scale systems then Eiffel is actually better than Java for producing robust, well documented, reusable, maintainable code - and its faster to boot. Java, of course, has its own advantages in terms of "run anywhere" and its huge standard library, but Eiffel is well worth acquainting yourself with.
Jedidiah.
Craft Beer Programming T-shirts
Not even close. Java most resembles Object Pascal with C++ friendly syntax.
Effiel was the first language with garbage collection if I remember correctly.
Lisp is the first language that I'm aware of to use it, but I bet someone else did it even earlier. Most functional languages use garbage collection. Eiffel is the first statically typed language I'm aware of to use garbage collection (as part of the language itself, not implemented in a library). This is probably the area where Eiffel most influenced Java.
Eiffel's most notable features are Design by Contract, Multiple Inheritance, and Generics, and it's been doing all that for over fifteen years (as opposed to Java and C# which only recently figured out Generics). Design by Contract is particularly nice if you are willing to spend a little extra effort to write very reliable code, but it would be even better if there were good theorum provers out there to verify that contracts will always hold and warn if they don't. The would be much more developer friendly than the predicate calculus normally associated with formal methods.
Eiffel's biggest drawback (to me) is the horrible Pascal like syntax. Some of Meyer's philosophy has also made the API a little clumsy in places. His belief that a method should never return a value and have a side effect is particularly bad. Writing a stack with get_top() and remove_top() instead of pop() is a little weird.
You aren't remembering correctly, he went after all open source and free software. His biggest criticism of Stallman and Linus was for not distancing the free software movement from the NRA when Raymond tried to link the two (he held Stallman more responsible since Linus being a Finn might not have known what the NRA was...). He attacked FreeBSD explicitly for poor quality.
r e.html
What is funny though he lists a whole bunch of reasons vendors turn something open source that pretty much amount to "it isn't worth keeping as commercial product for reason X" where he lists the possible X's. Anyway here is a reminder:
http://www.apostate.com/programming/bm-freesoftwa
The thing is that companies by and large don't want to hire great programmers because they cost too much. They would rather hire a bunch of mediocre or crap programmers and make them use a bondage language like java or eiffel. The idea is that you need one sort of smart guy to design the application (writing the interfaces, contracts etc) and then an army of easily replaceable monkeys to do the actual implementation.
I don't think people will use eiffel for personal projects because there is no sense in putting yourself into bondage like that. The super l33t programmers seems to prefer really fluid languages like lisp and smalltalk.
evil is as evil does
"It's kind of like Ada and Modula in that respect; the concepts are sound but the syntax is too bulky to become popular."
Unfortunately when a programmer tosses around the word "syntax". What they really mean is "Hey this isn't C/C++"! Even Python's whitespaces gets chewed up, and spat out. That's partially why Java has done as well as it has with it's "feels like" syntax.
Have I missed any?
By the way, here are some useful links related to the newly-open-sourced EiffelStudio, and you can find additional Eiffel libraries and tools at EiffelZone.
Paid Q&A/Research