day@grand.UUCP (Dave Yost) (12/22/88)
From: kimr@tekcrl.tek.com Date: Sun, 13 Nov 88 21:23:53 PST Eiffel At OOPSLA A Trip Report This report details several activities pertaining to Eiffel at the Object Orient Programming Systems and LAnguages (OOPSLA) conference held September 25-30 in San Diego. Eiffel is a commercially available object oriented language and environment from Interactive Software Systems, Goleta, CA. These activities included the first North American User's Group meeting, a Tutorial on Object-Oriented Software Construction which used Eiffel for programming examples, and an Eiffel Birds-Of-A-Feather session. SYSTEM SUMMARY: Eiffel is an object-oriented language designed for engineering reusable, reliable software. It has multiple inheritance, garbage collection, typing, dynamic binding, genericity, and polymorphism. The development environment runs on Unix and Xenix platforms, including mainframes, applications can be delivered to any system that has a C compiler, and you can easily interface C to Eiffel. Base class and X11 graphics libraries are available, as well as site and source licenses. LEGAL STATUS: During the week, a number of questions came up regarding the legal status of the Eiffel language. The Eiffel language will be licensed at no cost and royalty-free to other developers, similarly to the model Adobe is using for PostScript. The intention is to be able to control the definition of the Eiffel language, while making it easy for others to develop tools, compilers, and libraries in it. A letter from ISE will be published in SIGPLAN Notices formally announcing this policy. As always, the libraries and runtime system may be delivered with any application in binary form with no license or royalties. EIFFEL USER'S GROUP MEETING: The 2nd Eiffel User's Group Meeting held in San Diego in conjunction with OOPSLA on September 25, 1988. Approximately 30 people attended, of which about 20 were current Eiffel users and 10 were interested parties. Eight presentations were given by Eiffel users, and Bertrand Meyer talked about what were coming in the short term. My primary purpose in attending was to find out how "real" the system was. All of the people who spoke had been using Eiffel for 6 months or less. There are currently about 50 licensees in North America with another 50 in Europe. ISE expects to have 1000 licensees within the next 12 months. Eiffel has been available since the fall of 1986. The biggest user represented was Cognos of Ottawa, Canada. They have 400 employees and develop 4th generation business languages, and had been using an in-house object oriented language. Their advanced development team of 30 people dropped it in favor of Eiffel over a weekend and were productively using Eiffel within 2 weeks. The sizes of applications reported on ranged from 34 classes to more than 400 classes (at Cognos). The general experience was that programmers could learn Eiffel in a couple of weeks, but doing good object oriented design (in any object-oriented language) was a hard problem - a theme repeated throughout the week at OOPSLA. Users from the academic (2) and scientific programming (2) communities also made presentations. The presentation I liked most described work at Sandia Labs using Eiffel to design a visualization framework, and then combining FORTRAN math libraries, C graphics libraries, a relational DBMS, and a User Interface Management System with Eiffel. ISE wishes the North American User's Group to be independent of ISE, and a request was made for volunteers to undertake the formation of an user's independent group, but no one present volunteered to assume that responsibility. PHILOSOPHY: Dr. Meyer described the Eiffel philosophy as follows: Eiffel is "structured programming taken seriously", the first language combining CASE with OOP, as well as being the first commercial application of systematic programming and formal specification research. ISE'S GOAL: To make Eiffel one of the four major programming languages and environments. PROBLEMS WITH THE SYSTEM: Not everything's perfect, right? So there I was, waiting with baited breath to find out if the Eiffel system really worked. The primary complaints the users had were that the YACC-based parser gave up after the first syntax error, and that the FORTRAN language interface hasn't been added yet. Perhaps the worst problem reported is the fact the the intermediate compiler files which are stored to allow incremental compilation are shared, so if multiple people are working with the same classes, and one compiles with debugging on, and another compiles with debugging off, the whole system get recompiled, and whoever was last gets it their way. The work-around is to make private copies of whichever classes you want to compile with nonstandard options. Another problem is that the C package generator does not properly include the debugger, so constructing a cross-debuggable application requires some manual tweaks. Finally, only basic C types can currently be passed back and forth between C and Eiffel. The next release will be able to pass struct types. Only one performance problem was reported, and that was with initialization time for the Cognos system. The problem hasn't been analyzed by the program author's yet to see if they did anything silly. ISE claims the performance of Eiffel is within 20% of the same program hand coded in C. COMING ATTRACTIONS - SHORT TERM: The next system release is scheduled for December (they've been happening once every 6 months). Coming in that release or the next is version management, a means for grouping classes (which will not be a part of the language), a reduction in the number of intermediate files stored for a class, uniform treatment of simple (real, integer, float, character) and class types (primarily through the introduction of the predefined class Number, which simple types will inherit from, plus limited operator overloading so arithmetic operators can be used with class types. A "continue" recovery action will be added to the exception mechanism (which currently allows retry or failure). MEDIUM TERM: Concurrency, using a simple (possibly semaphore) synchronization model upon which more interesting abstractions can be built. Persistency for objects beyond the load/store mechanism using the already existing memory paging mechanism. Porting to DOS. An independent User's Group and class exchange. New compiler front end with better error recovery. Regular expression, string searching, and finite state machine routines to be added to the library. TUTORIAL: I didn't attend the tutorial on the assumption that it would be a presentation of the material in Dr. Meyer's Object-Oriented Software Construction Book. It turns out that was what it was, and he didn't have time to get through all the prepared material. People who I spoke to what took it had widely varying reactions - from "it was all obvious" to "it was good stuff" to "I just read the book 3 weeks ago." BIRDS OF A FEATHER: This session, held at the end of the week, was more technical, delving into the language design in the areas of control structures (the looping construct) and typing. Kim Rochat Software Productivity Technologies Tektronix, Inc kimr@tekcrl.tek.com