Jump to content

Eiffel: Difference between revisions

From EDM2
Ak120 (talk | contribs)
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Image:Eiffel.png|200px|right]]
[[Image:Eiffel.png|200px|right]]
Object oriented structured programming language in the [[Algol]] family, originally designed by Bertrand Meyer and partially inspired by [[Simula]] and [[Modula-2]]. Much like [[SmallTalk]], Eiffel has also suffered in the last few years due to companies that built commercial tools for the language have turned their attention to [[Java]]. The language has a reputation as the language you turn to when other languages and tools have failed, particularly with large programming projects, although this has been downplayed a little as more tools for "programming in the large" appear for more mainstream languages. However the clean object-orientation features of Eiffel really have no like in other languages even with other O-O languages such as [[Smalltalk]] and Java, this means that creating code that is easy to re-factor or change outright makes it a really coherent tool for prototyping and for software that needs to be adjusted frequently such as market trading software.
Object-oriented structured programming language in the [[Algol]] family, originally designed by Bertrand Meyer and partially inspired by [[Simula]] and [[Modula-2]]. Much like [[Smalltalk]], Eiffel has also suffered in the last few years due to companies that built commercial tools for the language have turned their attention to [[Java]]. The language has a reputation as the language you turn to when other languages and tools have failed, particularly with large programming projects, although this has been downplayed a little as more tools for "programming in the large" appear for more mainstream languages. However the clean object-orientation features of Eiffel really have no like in other languages even with other O-O languages such as [[Smalltalk]] and Java, this means that creating code that is easy to re-factor or change outright makes it a really coherent tool for prototyping and for software that needs to be adjusted frequently such as market trading software.


====Sather====
Eiffel was forked into another programming language called [[Sather]] fairly early on in its lifetime.
Eiffel was forked into another programming language called Sather fairly early on in its lifetime, the main complaints the original authors of Sather had with Eiffel was that it was not available in a free version and that its performance was slow. Sather is more strongly typed than Eiffel in the [[Modula-2|Wirthian]] sense and takes on some of the features of [[Oberon]], it was quite popular for a while but interest in the language waned after the popularisation of [[Java]] as with all other object oriented languages, but also Eiffel itself over time has gained some of the characteristics that the authors of Sather were aiming for. There were a few dialects of Sather available, the main two were '''Sather-K''' developed by the Institut für Programmstrukturen und Datenorganisation (IPD) at the University of Karlsruhe  and the original version developed at the International Computer Science Institute (ICSI) at the University of California, the Sather-K version got mothballed after the IPD turned its attention to Java and the ICSI version died a quiet death after being handed over to the [[Free Software Foundation]] (GNU) for further development.  


There was at one time a EMX Sather port available for OS/2 but it has been lost in time, you can actually compile and run the ICSI, Sather-K and GNU versions and run it on eComStation but since there are no OS/2 bindings available any more that is a bit pointless exercise. The main advantage Sather still has over Eiffel is that it is slightly simpler and thus easier to learn, but as Eiffel is very easy to learn as well the difference is not great.
==OS/2 implementations==
* Eiffel/S (SIG Computer GmbH, Germany)
* [[ISE Eiffel]]
* [[SmallEiffel]] - Open Source - renamed to SmartEiffel
* [[Tower Eiffel]]


==A list of OS/2 implementations of Eiffel==
;Classes and bindings
* [[ISE Eiffel]] - Commercial - Discontinued
* [[SmallEiffel]] - Open Source - Discontinued
* [[Tower Eiffel]] - Commercial - Discontinued
 
====Classes and bindings====
* [http://efsa.sourceforge.net/archive/tower/tbooch.htm Tower Eiffel Booch Classes] - Freeware release of the old Booch classes that Tower used to sell, work with v2 of [[Tower Eiffel]].
* [http://efsa.sourceforge.net/archive/tower/tbooch.htm Tower Eiffel Booch Classes] - Freeware release of the old Booch classes that Tower used to sell, work with v2 of [[Tower Eiffel]].
* A version of the [[O2 System]] Object oriented database was available with Eiffel bindings for a while.
* A version of the O2 System Object oriented database was available with Eiffel bindings for a while.


====Foreign libraries with Eiffel bindings====
;Eiffel related programmer's utilities
* [[LibcURL]] - Internet URL (WWW, FTP, etc) access - Open Source - Current.
* [[Exuberant ctags]] - Creates index files out of Eiffel source files


====Eiffel related programmer's utilities====
==DOS implementations==
* [[Exuberant ctags]] - Creates index files out of Eiffel source files - Open source - Current.
*Eon/Eiffel - Shareware
*[[SmallEiffel]] - Open Source


====OS/2 text & programmers editors with Eiffel support====
;Editor support
* [[Boxer]] - Eiffel syntax support included by default - Commercial - Discontinued
* [[Boxer]] - Eiffel syntax support included by default - Commercial
* [[jEdit]] - Java based editor - Eiffel syntax highlighting built in - Current.


==A list of DOS implementations of Eiffel==
===Win-OS/2 implementations===
* [[SmallEiffel]] - Open Source - Discontinued
* [[ISE Eiffel]] - Commercial
====DOS text & programmers editors with Eiffel support====
* [[Boxer]] - Eiffel syntax support included by default - Commercial - Discontinued


==A list of Eiffel implementations that run under WinOS/2==
==Java implementations==
* [[ISE Eiffel]] - Commercial - Discontinued
* [http://efsa.sourceforge.net/archive/kalberer/jeiffel.htm J-Eiffel] - Eiffel to Java compiler - Open source
 
==A list of Eiffel implementations that run under Java==
* [http://efsa.sourceforge.net/archive/kalberer/jeiffel.htm J-Eiffel] - Eiffel to Java compiler - Open source - Discontinued


==Publications==
==Publications==
* Bertrand Meyer: Object Oriented Software Construction - ISBN 0136291554 - In Print
* [[Bertrand Meyer]]: ''Object Oriented Software Construction'' - Prentice-Hall 1988, ISBN 0-13-629155-4
:The book where Eiffel was first described, but is actually a textbook of object-oriented methods rather than a Eiffel tutorial, originally published in 1988.
:The book where Eiffel was first described, but is actually a textbook of object-oriented methods rather than a Eiffel tutorial
* Bertrand Meyer: Eiffel, the Language - ISBN 0-13-247925-7 - In Print
* Bertrand Meyer: ''Eiffel, the Language'' - ISBN 0-13-247925-7
* Frieder Monninger: Eiffel. Objektorientiertes Programmieren in der Praxis Gebundene Ausgabe - Heise Heinz - 1998 - ISBN-10: 3882290285 - ISBN-13: 978-3882290288 - Out of print
* Bertrand Meyer: [http://www.springer.com/gp/book/9783540921448 Touch of Class: Learning to Program Well with Objects and Contracts] - Springer 2009, ISBN 978-3-540-92144-8
:By the gent behind the old Visual Eiffel compiler & IDE.
* [https://web.archive.org/web/19961115031729/http://www.twr.com/twrweb/docs/omg.htm IDL Eiffel CORBA Binding] - By Tower Technology Corp., Cindy de la Torre Cicalese of George Washington University and Kim Rochat of IBM. - Initial proposal for standardisation by Tower Technology.
* [https://web.archive.org/web/19961115031729/http://www.twr.com/twrweb/docs/omg.htm IDL Eiffel CORBA Binding] - By Tower Technology Corp., Cindy de la Torre Cicalese of George Washington University and Kim Rochat of IBM. - Initial proposal for standardisation by Tower Technology.
* [http://www.bon-method.com/book_print_a4.pdf Kim Waldén & Jean-Marc Nerson: Seamless Object-Oriented Software]
* [http://www.bon-method.com/book_print_a4.pdf Kim Waldén & Jean-Marc Nerson: Seamless Object-Oriented Software]
* Richard Wiener: An Object-Oriented Introduction to Computer Science using Eiffel - 1996 - Prentice-Hall - ISBN 0-13-183872-5
* Richard Wiener: ''An Object-Oriented Introduction to Computer Science using Eiffel'' - Prentice-Hall 1996, ISBN 0-13-183872-5
* Richard Wiener: Object-Oriented Introduction to Data Structures Using Eiffel -1997 - Prentice Hall - ISBN 0-13-185588-3
* Richard Wiener: ''Object-Oriented Introduction to Data Structures Using Eiffel'' - Prentice-Hall 1997, ISBN 0-13-185588-3
* Pete Thomas & Ray Weedon: Object-Oriented Programming in Eiffel, Second Edition - 1997 - Addison-Wesley - ISBN 0-201-33131-4
* Pete Thomas & Ray Weedon: ''Object-Oriented Programming in Eiffel'' (Second Edition) - Addison-Wesley 1997, ISBN 0-201-33131-4
* Jean-Marc Jézéquel: Object-Oriented Software Engineering with Eiffel. - 1996 - Addison-Wesley - ISBN 0-201-63381-7
* Jean-Marc Jézéquel: ''Object-Oriented Software Engineering with Eiffel'' - Addison-Wesley 1996, ISBN 0-201-63381-7
* Bertrand Meyer: Reusable Software. The base Object-Oriented Component Libraries. - 1994 - Prentice-Hall - ISBN 0-13-245499-8
* Bertrand Meyer: ''Reusable Software. The base Object-Oriented Component Libraries'' - Prentice-Hall 1994, ISBN 0-13-245499-8
* Bertrand Meyer: [http://se.ethz.ch/~meyer/publications/aliasing/deadlock_psi.pdf An automatic technique for static deadlock prevention] - 2014
* Carlo Furia, Bertrand Meyer, Sergey Velder: [http://se.ethz.ch/~meyer/publications/methodology/invariants.pdf Loop invariants: Analysis, Classification and Examples] ACM Computing Surveys September 2014


;Introductionary articles
;Introductory articles
* Joab Jackson: [http://www.joabj.com/MiscTech/030818-Eiffel.html Eiffel: The language that OOP forgot?]
* Joab Jackson: [http://www.joabj.com/MiscTech/030818-Eiffel.html Eiffel: The language that OOP forgot?]
* Coryoth: [http://www.kuro5hin.org/story/2006/10/31/20640/115 Why Eiffel Might Be Worth a Second Look]
* Coryoth: [http://www.kuro5hin.org/story/2006/10/31/20640/115 Why Eiffel Might Be Worth a Second Look]
* Justin R. Erenkrantz: [http://www.erenkrantz.com/Geeks/WhatIsEiffel.shtml What is Eiffel?]
* Justin R. Erenkrantz: [http://www.erenkrantz.com/Geeks/WhatIsEiffel.shtml What is Eiffel?]
* Francisco J. García Peñalvo & Yania Crespo González-Carvajal: [http://www.infor.uva.es/~yania/eiffel.pdf Implicaciones de Eiffel en el Diseño Orientado a Objetos (fragmento)] - 1998 - In Spanish - PDF format
* Michael Floyd: ''THE OBJECT D'ART: Application frameworks are the new frontier'' - 1993
* Michael Floyd: [http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1991/9110/9110d/9110d.htm THE OBJECT D'ART: Application frameworks are the new frontier] -
* John C. Dvorak: [http://books.google.com/books?id=uaTgf95ualMC&pg=PA87 Eiffel and the Attack on Java] - [[PC Magazine]] 1997


;Tutorials and other learning material
;Tutorial
* [https://archive.eiffel.com/doc/online/eiffel50/intro/language/tutorial-00.html ISE Eiffel Tutorial]
* [https://archive.eiffel.com/doc/online/eiffel50/intro/language/tutorial-00.html ISE Eiffel Tutorial]


;Sather
;On-line courses
* [https://omohundro.files.wordpress.com/2009/03/omohundro94_the_sather_programming_language.pdf Dr. Dobbs Language Sourcebook Winter 1994: The Sather Programming Language]
* Marco Piccioni, Bertrand Meyer and Nadia Polikarpova: [https://www.edx.org/course/computing-art-magic-science-ethx-cams-2x Art, Magic, Science] - "Learn the basics of Information Technology and how to write quality programs in this introductory computer science course."
: Note, closed for new participants but all course material is online if you want to do some self learning.


==Links==
==Links==
* [http://sourceforge.net/projects/satherk/files/ Sather-K compiler at SourceForge] - Windows version only
* USENET [news:comp.lang.eiffel comp.lang.eiffel] - Low volume group
* [http://swt.informatik.uni-halle.de/software/satherkhalle/ Sather-K sources at Halle Uni]
 
====USENET====
* [news:comp.lang.eiffel comp.lang.eiffel] - Low volume group - Go to the [https://groups.google.com/forum/#!forum/comp.lang.eiffel Google groups version] if your ISP does not offer USENET access or you are in any other way newsgroup challenged.
==Standards==
==Standards==
* Bertrand Meyer: Object-Oriented Software Construction, Prentice Hall: The first edition (1988) and second edition (1997) are considered the first and third informal standards.
* Bertrand Meyer: Eiffel: The Language, Prentice Hall, second printing, 1992, is considered the second (informal) standard.
* Bertrand Meyer: [http://www.inf.ethz.ch/~meyer/ongoing/etl Standard Eiffel] (revision of preceding entry), ongoing, 1997-present.
* Bertrand Meyer: [http://www.inf.ethz.ch/~meyer/ongoing/etl Standard Eiffel] (revision of preceding entry), ongoing, 1997-present.
* [http://www.eiffel-nice.org/index.html NICE] - The "Nonprofit International Consortium for Eiffel" organisation, did some of the work on standards prior to ECMA-367.
* [http://www.eiffel-nice.org/index.html NICE] - The "Nonprofit International Consortium for Eiffel" organisation, did some of the work on standards prior to ECMA-367.
* [http://www.ecma-international.org/publications/standards/Ecma-367.htm Standard ECMA-367] Eiffel: Analysis, Design and Programming Language - 2nd edition (June 2006) - The first international formal Eiffel standard.
* ECMA-367 Eiffel: Analysis, Design and Programming Language - 2nd edition (June 2006) - The first international formal Eiffel standard, later adopted by [[ISO]] as ISO/IEC 25436:2006.


[[Category:Programming Languages]] [[Category:Eiffel]]
[[Category:Programming Languages]] [[Category:Eiffel]]

Latest revision as of 17:07, 4 October 2023

Object-oriented structured programming language in the Algol family, originally designed by Bertrand Meyer and partially inspired by Simula and Modula-2. Much like Smalltalk, Eiffel has also suffered in the last few years due to companies that built commercial tools for the language have turned their attention to Java. The language has a reputation as the language you turn to when other languages and tools have failed, particularly with large programming projects, although this has been downplayed a little as more tools for "programming in the large" appear for more mainstream languages. However the clean object-orientation features of Eiffel really have no like in other languages even with other O-O languages such as Smalltalk and Java, this means that creating code that is easy to re-factor or change outright makes it a really coherent tool for prototyping and for software that needs to be adjusted frequently such as market trading software.

Eiffel was forked into another programming language called Sather fairly early on in its lifetime.

OS/2 implementations

Classes and bindings
  • Tower Eiffel Booch Classes - Freeware release of the old Booch classes that Tower used to sell, work with v2 of Tower Eiffel.
  • A version of the O2 System Object oriented database was available with Eiffel bindings for a while.
Eiffel related programmer's utilities

DOS implementations

Editor support
  • Boxer - Eiffel syntax support included by default - Commercial

Win-OS/2 implementations

Java implementations

  • J-Eiffel - Eiffel to Java compiler - Open source

Publications

  • Bertrand Meyer: Object Oriented Software Construction - Prentice-Hall 1988, ISBN 0-13-629155-4
The book where Eiffel was first described, but is actually a textbook of object-oriented methods rather than a Eiffel tutorial
Introductory articles
Tutorial
On-line courses
  • Marco Piccioni, Bertrand Meyer and Nadia Polikarpova: Art, Magic, Science - "Learn the basics of Information Technology and how to write quality programs in this introductory computer science course."
Note, closed for new participants but all course material is online if you want to do some self learning.

Links

Standards

  • Bertrand Meyer: Standard Eiffel (revision of preceding entry), ongoing, 1997-present.
  • NICE - The "Nonprofit International Consortium for Eiffel" organisation, did some of the work on standards prior to ECMA-367.
  • ECMA-367 Eiffel: Analysis, Design and Programming Language - 2nd edition (June 2006) - The first international formal Eiffel standard, later adopted by ISO as ISO/IEC 25436:2006.