Out of curiosity for the language I just read this entry, and I got to say, though the author(s) clearly have been trying to be objective it /is/ a quite biased account. The neutrality of the article feels very superficial, and the tone of the contents is clearly of a ardent advocate. I had no preconceptions of the language but after reading the article I find myself slightly put off simply from the subtextual bias. -- Mikademus
This all reads a bit like advertising copy for the ISE commercial product. Is there someone out there who actually knows Eiffel, but also knows something else and can give a more realistic appraisal. (Yes, it does look like a nice language, but there are other nice languages, and this stuff is just over the top.) -- Geronimo Jones. (This comment is now largely obsolete due to much work on the page. Thanks guys.) -- Geronimo Jones.
I have taken out a lot of preachiness in the recent changes to the "facism" section and tried to make it more factual; however, it was so absurd to begin with (and I am such an Eiffel advocate) that it may require more work.
Also, I removed unsubstantiated and inflamatory claims that Eiffel compilers are somehow "smarter" than C++ compilers. The discussion of moving runtime analysis to compile time presumably refers to the SmartEiffel compiler's ability to devirtualize method calls, and even to inline dynamically dispatched methods. However, this alone (while clever) is no great compiler breakthrough---Self and Smalltalk have had devirtualization for years---and it certainly doesn't allow SmartEiffel to claim that it's "smarter" than C++ compilers (some of which, in fact, can also do some devirtualization). On the contrary, SmartEiffel produces C code, and therefore leaves all the difficult aspects of compilation to the C++ compiler (eg. optimization, register assignment, etc.).
Silly section
For what it's worth, I think the section Elegance, simplicity, or fascism? is really silly. There are a variety of languages that are simple and more high-level than C, and these comments could apply to any one of them. Moreover, "clever coding tricks" are not what I'd call optimization hints to the compiler; they are hand-optimizations. Finally, "Eiffel seeks to produce a quality software system over anything else" seems to imply that other languages are not designed for this purpose, which is silly — even C was not designed primarily for performance. Fascism is pretty over-the-top too — I dare anyone to design a "fascist" language. I'm seriously considering deleting this whole section, if there are no objections. Deco 21:13, 15 Nov 2004 (UTC)
- I agree. The section is a sales pitch. Eiffel leans more toward clarity (over efficiency for example) than many other languages, but this section as it stands doesn't explain that very well. There are probably a couple of nuggets in that section that could be reworked into the article a different way, but on the whole I think the article would be improved by this section's deletion. --P3d0 14:38, Nov 16, 2004 (UTC)
- Really, this article needs a serious cleanup. The trouble is, I have found that computer science articles don't stay cleaned up for long. Well-meaning CS people come along and add in their opinions, seemingly unaware that they are not objective facts. That's why I have turned my attention more towards science and astronomy articles lately. :-) --P3d0 14:40, Nov 16, 2004 (UTC)
Pure OO
In the section where it is claimed that Eiffel is pure OO, it introduces control structures that are not in any way object oriented. I'm not a purist or formalist, but if you claim a language to be pure OO, "special form" control structures like loops and ifs should be replaced by message sends (like in Smalltalk). This page really is a sales ad!
- Yeah, the claim of "pure OO" is meaningless, as everyone has different ideas of what constitutes purity. Probably the fact all Eiffel types are classes (even INTEGER and NONE) contributed to this claim, but as you say, there are different dimensions of purity. --P3d0 18:33, Dec 13, 2004 (UTC)
The loop example is silly, it would be better to show an example using the COLLECTION interface or at least *even* an example of that, since you almost always use that interface which is available in every kind of sequence/list/array/data structure.
from
x.start
until
x.after
loop
x.forth x.
end
Reflective?
The article began like this: "Eiffel is a reflective, object-oriented programming language[...]" Eiffel is not reflective. I don't know where did that come from, but Eiffel is a statically typed, *compiled* language (it's usually compiled to C). The runtime system includes a garbage collector (usually mark-and-sweep) and not much else. Of course this doesn't mean one cannot write an implementation of Eiffel which provides facilities for reflection, but I haven't heard of such an attempt and it would be against the "nature" of Eiffel, as far as I can tell. Maybe we are talking about a different kind of reflection? Regarding programming languages it usually has the meaning defined at the famous [[1]] but Eiffel is famous for inventing their own terms for everything (features instead of methods, etc).