From: Lothar Scholz Date: 2004-08-11T03:22:54+09:00 Subject: Re: Eiffel Hello Fitzgerald,Greg, FG> What do you guys think of the Eiffel language? I use Ruby for all my FG> personal projects, but when it comes to building huge (multi-million FG> line) systems, I look to the safety of statically-typed languages. I've FG> grown very tired of the deficiencies in C++ and am now hunting out a FG> better language to build highly-reliable code. I suppose Java would be FG> okay but everything about that platform seems boring and bloated. FG> Eiffel looks very impressive and seems to have many of the same language FG> abilities as Ruby. Not to mention, Design by Contract looks pretty FG> useful. Has anyone used Eiffel? Success stories? Crash & Burn FG> stories? It doesn't look like the language has changed much in the last FG> 6 years. Is that because the language is about dead or because it is FG> that stable? Arachno Ruby is a SmartEiffel program with about 200K LOC. With this i reached the limits of what could be pratical for compilation (it currently compiles eiffel into 135 files with 1098303 LOC). I think ISE can handle programs in a range upto 1 MLOC and it is pretty expensive but with 1MLOC i guess that 10000 Euro are not so much money anymore. Desin by Contract is nice. But you can simulate that with asserts. Using invariants is a "No Go" option because even current systems are a magnitude to slow to use them. Sure you could turn them off for specific classes but i guess that nobody who's telling you to do so have ever had to manage a huge ACE file and a lot of small test programs. DbC is much more a development philosophy then a technical implementation. The only good is that if your program crashs the chance is (in my case) 80% that i can fix the problem immediately because the crash is very near the error location and the stacktrace you get from SmartEiffel is extremely usefull. But on the other hand even very minor errors crashs the application and leaves a bad impression in your customers minds. The must important thing in my opinion is the static typing and the enforcement of a consistent programming style, well there aren't so many different ways to write code in Eiffel. This makes even larger refactoring much easier. The new eiffel version 3 (ETL-3) has changed a lot of things. Not huge things but as useful as an upgrade from Java 1.2 to Java 1.4 The real problems i found were that SmartEiffel don't support threads (theres a patched version for this) and it does not support DLL's. The last one may be a problem depending on your problem domain. Would i go again with Eiffel: I must say that i don't know. I only know that i will never go back to do and some java coding if i can avoid this. -- Best regards, emailto: scholz at scriptolutions dot com Lothar Scholz http://www.ruby-ide.com CTO Scriptolutions Ruby, PHP, Python IDE 's