Talk:Eiffel (programming language): Difference between revisions

Content deleted Content added
 
(317 intermediate revisions by 55 users not shown)
Line 1:
{{WikiProject banner shell|class=Start|1=
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.)
{{WikiProject Computing|importance=mid}}
-- Geronimo Jones.
{{WikiProject Computer science|importance=mid}}
(This comment is now largely obsolete due to much work on the page. Thanks guys.) -- Geronimo Jones.
}}
 
[[/Expanded draft]]
----------
 
== Archives ==
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.
[[/Archive 1]]
 
== External links modified ==
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.).
 
Hello fellow Wikipedians,
----
 
I have just modified one external link on [[Eiffel (programming language)]]. Please take a moment to review [https://en.wikipedia.org/w/index.php?diff=prev&oldid=801214014 my edit]. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit [[User:Cyberpower678/FaQs#InternetArchiveBot|this simple FaQ]] for additional information. I made the following changes:
== Silly section ==
*Added archive https://web.archive.org/web/20040604193933/http://cetus-links.org/oo_eiffel.html to http://www.cetus-links.org/oo_eiffel.html
 
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
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. [[User:Dcoetzee|Deco]] 21:13, 15 Nov 2004 (UTC)
 
{{sourcecheck|checked=false|needhelp=}}
: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. --[[User:P3d0|P3d0]] 14:38, Nov 16, 2004 (UTC)
 
Cheers.—[[User:InternetArchiveBot|'''<span style="color:darkgrey;font-family:monospace">InternetArchiveBot</span>''']] <span style="color:green;font-family:Rockwell">([[User talk:InternetArchiveBot|Report bug]])</span> 10:58, 18 September 2017 (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. :-) --[[User:P3d0|P3d0]] 14:40, Nov 16, 2004 (UTC)
 
== Renaming mechanism flaw ==
 
Dear editors:
== Pure OO ==
 
In 2022, it was discovered that the Eiffel's renaming mechanism has
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!
serious semantic flaws, please refer to the following repo and pdf doc
 
for the report, and code example to demonstrate the semantic issue:
: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. --[[User:P3d0|P3d0]] 18:33, Dec 13, 2004 (UTC)
 
https://github.com/joortcom/eiffel_rename
 
https://github.com/joortcom/eiffel_rename/blob/main/eiffel_rename.pdf
-----
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.
Please verify the new findings as reported there, and update the
 
wikipedia page of the Eiffel language.
from
x.start
BTW, you can also check the following repo for a new design pattern
until
that solved the diamond problem of multiple inheritance cleanly and
x.after
generally, based on the above findings:
loop
x.forth
https://github.com/joortcom/DDIFI
x.
end
Happy editing!
: Have one question -- what is "x." you've used there? I'm not guru in Eiffel, but can you explain this for me? Why should this be placed in the article if this isn't clear? May it is better to use ''simple'' examples? -- Kolesnikov P.A. (ru-wiki) 17 June 2006
:: I guess that the x. is a typo, it has no mean in Eiffel syntax. Whereas x is a reference to an instance of a class that inherits from TRAVERSABLE[G] (in the eiffel base). [[User:Momet|Momet]] 16:33, 17 June 2006 (UTC)
Regards. [[User:Joeyz44|Joeyz44]] ([[User talk:Joeyz44|talk]]) 15:53, 21 June 2025 (UTC)
 
== 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 [[http://tunes.org/]] but Eiffel is famous for inventing their own terms for everything (features instead of methods, etc).
 
:Compiled languages can be reflective. There is no requirement that reflection has to be at runtime. Read [[Reflection (computer science)]] for more information. - [[User:DNewhall|DNewhall]]
 
== Bias ==
Out of curiosity for the language I just read this entry, and I have got to say, though the author(s) clearly have been trying to be objective it ''is'' quite a biased account. The neutrality of the article feels very superficial, and the tone of the contents is clearly that of an ardent advocate. I had no preconceptions of the language but after reading the article I find myself slightly put off from Eiffel simply from the subtextual bias present the text. -- Mikademus
 
:The group of people who have contributed to this article tend to be a self-selecting group of people who like the language, and may not even be aware of the biases we have inserted. We welcome any assistance in identifying the biased portions. --[[User:P3d0|P3d0]] 17:56, 19 November 2005 (UTC)
 
It is difficult to point out specific things since the entire text emits a promotional air, not overtly, but undeniably there. It goes to the credit of the authors, however, that much effort has obviously been spent on trying to retain NPOV. Nonetheless, one salient thing is the "contra-sed contra" argumentation style prevalent in the text. To provide one example from early in the article:
 
<blockquote>"Eiffel intentionally limits stylistic expression, providing few means for clever coding tricks or coding techniques intended as optimization hints to the compiler. Some software developers feel constrained by Eiffel's simplicity and compiler-enforced structure; the language has been referred to as a "bondage and discipline" language.<br><br>
 
In contrast, others feel that the simplicity of the language not only makes the code more readable, but also allows a programmer to concentrate on the important aspects of a program without getting bogged down in implementation details. Eiffel's simplicity is intended to promote simple, readable, usable, reusable, reliable and correct answers to computing problems. Eiffel seeks to produce a quality software system over anything else."</blockquote>
 
Though neutral by definition, the entire phrase "Some software developers feel constrained by Eiffel's simplicity and compiler-enforced structure" is designed as a counter-argument in itself, and the entire following paragraph is in turn a defence, then turns the table on the antagonist to show that the alledged weaknesses are really strengths, before finally, ending in close to pure promotion for the greatness of Eiffel. Again, I know nothing at all about the Eiffel language, but I do know marketing (even subconscious such).
 
This style is recurrant in the article, and, though from good intentions, is more reminescent of sales talk than encyclopaedic treatment or dispassionate analysis. Hope this helps!<br>
[[User:Mikademus|Mikademus]] 21:04, 19 November 2005 (UTC)
 
I think the sentence fragment that reads "which emphasizes the production of robust software" is questionable. It would be better (more accurate/NPV) to change this to something along the lines of "emphasises the production of software which is provable correct to a formal specification". Esp. given the Eiffel tendency to fail hard on contract breaches at the expense of absolute robustness.
 
== Thrown away Principles? ==
 
Does anyone know what exactly are these 'thrown away' principles?
 
This standard is not accepted by the SmartEiffel team, which has decided to create its own version of the language,
because they think the ECMA standard throws away important principles of the original language. Eiffel Software and
Gobo have committed to implementing the standard. Object Tools has not to date expressed a position.
 
--[[User:Rolandog|rolandog]] 02:08, 17 April 2006 (UTC)
 
== Begun? ==
 
What's [http://en.wikipedia.org/w/index.php?title=Eiffel_programming_language&diff=52354486&oldid=51516199 wrong] with starting a sentence with "begun"? --[[User:P3d0|P3d0]] 19:57, 9 May 2006 (UTC)