Re: [GD-General] Eiffel
Brought to you by:
vexxed72
From: Kent Q. <ken...@co...> - 2001-12-19 23:12:49
|
Brian Hook wrote: > (quick note: if you have an interest C++'s weaknesses, please check out > Ian Joyner's fantabulous paper on the subject at: > http://www.elj.com/cppcv3/ ). Thanks for the link. I haven't finished it yet, but what I've read so far is interesting, intelligent and well-reasoned (unlike most rants about C++ or other languages). > I won't bore you folks with my typical rant about how languages kinda > suck, and development environments suck even worse, and how the two > really need to be the same thing (yeah, I know, SmallTalk...), but > instead I'll just ask: anyone here actually use Eiffel relatively > recently for any projects, and if so, what did you think about it? Can I attempt to summarize? Some languages are good at expressing really powerful data abstractions: I'd include most of the OO languages in this space, including C++, Java, Smalltalk, Eiffel. Some languages are good at expressing really powerful programming abstractions, such as template programming, reflection, lambda calculus, and the like. I'd include here C++, Smalltalk, Java, Python, Objective Caml, Haskell. Some languages are supported by a wide range of platforms and compilers. Among these are C, C++, Java, Fortran, Perl, Python, and BASIC (although the different versions of BASIC are so different that code is rarely ported). Some languages are known for good performance, particularly for performance-sensitive environments. Among these are C, C++, Java, and Fortran. Some languages support an extensible, fast turnaround, high-performance development environment. I'm going to define this to mean that if the time from edit to running the edited code is more than a couple of seconds, it's too long. I personally include Java in this list and exclude C++, but YMMV. Some languages have a broad base of support in a particular industry: clearly C++, Java, Perl fit this mold. So the question revolves around choosing a language that can meet your needs for a particular project. The bigger the project, the larger the team, the more likely you are to need such things as performance and broad-based industry support. I'd really rather work in some other language than C++. I spent a while trying to use Smalltalk as a production language, and while I love it, I came to the conclusion that at least at that time, it wasn't an appropriate way to roll out a commercial product. C++ is by no means the perfect language. But it supports large-scale programming, high-end data abstractions, and high-end code abstractions (the STL is sheer brilliance, IMO, and while it's a bit more cumbersome than I'd like, I don't want a language that doesn't support that kind of programming). And I've been looking around to see what else might work. I've used Java for a lot of things recently, and there's a lot to like about it. But it doesn't support the higher-level abstractions. I definitely want to look into OCaml some more. But Eiffel seems a bit too much like a religion -- it's Pascal and Modula-3 taken to the next step, and I have always found that school of language design to be a bit too cumbersome. It's also single-source, isn't it? I wouldn't mind being proven wrong -- but paying $2000-3000 to find out seems a bit steep. Are there multiple implementations of Eiffel? Kent -- ----------------------------------------------------------------------- Kent Quirk | MindRover: "Astonishingly creative." Game Architect | Check it out! ken...@co... | http://www.mindrover.com/ _____________________________|_________________________________________ |