EiffelStudio O-O Programming Suite for Mac OS X
name_already_in_use writes "Eiffel Software released their object-oriented programming environment for Mac OS X. It is a powerful language offering all the usual O-O wonders as well as few unique features of it's own (Design by Contract, generics). All compiled code can be run on multiple platforms including Windows, Linux, Solaris, and of course now Mac OS X, so there's no need to re-write code for different architectures."
quoting from various places on the website:
"The Free Edition license is for non-commercial use only. Pricing for the Windows, Linux, and Mac versions of EiffelStudio is US$ 4,799.00. Pricing for the Unix version of EiffelStudio is US$ 7,999.00."
Almost thirteen grand for a "cross-platform" setup. Nuts to that.
one, two, one two like a duck
It doesn't take over your higher brain functions and make you ask questions about it in every forum you can like Python and Ruby.
That is a plus!
They shot themselves in the foot with licensing. The Eiffel model and syntax is actually much more logical (and some would say better) than C and Java. But they made their compiler and dev kit obscenely expensive, while the others were free. I just don't see them ever recovering from that. C/Java type syntax has become the standard and switching to something completely different would be difficult.
-You may license this sig for only $6.99.
Anyone notice you can't download it with Safari? The website keeps griping about not having cookies enabled, even though they are. If they didn't even test their website with the most common Mac browser, then I wonder how well QA-ed their Mac port is.
They also want your address for the free edition. Right. I wish companies would just let us download their software and have fun with it, hassle free. I could barely download RealOne player the other day because accounts for jkl@jkl.com, asdf@asdf.com, etc. were all taken. Meh.
Eiffel is designed for large-scale programming. For that purpose it has strong typing, generics (roughly: C++ templates done right), a good module system, design by contract (rougly: assertions on class members). All in all it is a well-designed language with two big flaws: it has a quirky syntax (sometimes different for the sake of it), and it is not popular; the price of the official compiler doesn't help.
Python is in its own way also a well-designed language, but you don't want to write large programs in it, i.e. software that requires a team to implement. I don't know Ruby, but I suspect the same applies.
Eiffel is also interesting in that the designer has never released a really free version of the compiler. Usually that is deadly for an obscure language. After all who would be mad enough to pay for a compiler without knowing the language? Somehow Mr. Meyer has earned his living all these years selling Eiffel compilers. I don't know any other language designers that have managed this.
Just one: it sucks.
No, really.
Well, just kidding, actually. I happened to have to develop a 25000+ lines of code project for college. In three months (along with other subjects of course). In Eiffel. It helped a little that there were three of us to complete it.
The professor was the worst I have ever had in my long career. He basically told us: "you must complete this project with this zillion features to pass, it will be coded in a language called Eiffel, it is great, go get some documentation on how to code in it".
It was a coding nightmare, coding 12h *everyday* for the last month. There is simply no other way to code a 25000+ lines project in an unfamiliar lang in so short a time. The bastards gave us a 'C'.
Eiffel might be great and all, but please understand whenever I stand up and deface it.
There, I had to say it, now I feel better. =)
Eiffel is designed for large-scale programming.
It may have been intended for that, but a language that for years didn't even support type-safe separate compilation clearly wasn't designed for large-scale programming.
All in all it is a well-designed language
No, it is not a well-designed language and it never was. It is a language that sounds appealing to a software engineer because it seems to embody good software engineering practices (whether it does or does not is a separate debate). But in order to be a well-designed language, it first needs to get the basics right: the type system, separate compilation, a reasonable set of language constructs, etc., and Eiffel fell short there for years.