| Volume 2: No. 44 |
Franz Inc. (Berkeley, CA) has acquired Procyon Common Lisp for MS Windows. Franz will enhance and market it as ALLEGRO CL, including CLOS, editors, debugger, tracer, profiler, and a foreign function interface. (510) 548-3600. [AI Magazine, Fall 92.]
AI Expert had an article on Scheme, a small and elegant Lisp with lexical scoping. The IEEE/ANSI Scheme Standard is only 50 pages (including formal semantics), vs. a 4-inch manual for ANSI Common LISP and 95 pages for the CLOS interface. Chez Scheme and MacScheme are well-known commercial implementations. Experimental or teaching implementations -- not necessarily IEEE/ANSI-compliant -- can be FTP'd from pub/scheme in the Scheme Repository on nexus.yorku.ca (130.63.9.1). Ozan Yigit (oz@nexus.yorku.ca) can help. [Kenneth Dickey, AI Expert, 10/92.]
C++ is complex and difficult to debug, according to Kenneth Dickey. It has a baroque and ambiguous syntax, explicit destructor management, and potentially large global dispatch tables for virtual functions. Closures, garbage collection, and mixed compiled and interpreted code are difficult to add. Dickey prefers object systems in Scheme, including his on YASOS (Yet Another Scheme Object System). Scheme tends to take more data space than C, but execution speed can be comparable. (C is 10 times as fast on bit-level benchmarks, but 10-100 times slower on dynamic memory management.) YASOS is more applicative than CLOS, and less concerned with ADD-METHOD and side-effecting slots. CLOS would be better for huge problems, but such problems are rare. [Ibid.]
CASE vendors are attracted by object-oriented programming, which is said to be easier to reuse, port, and maintain. "All of the new tools will be C++," according to Doug Rosenberg of Iconix Software Engineering. Companies are having trouble getting beyond the buzzword stage, and find their engineers still writing structured-C and assembler styles in C++. New methodologies are proposed monthly, but none have caught on. Some companies like to hire experienced object-oriented programmers, others like to train their own. CAE experience -- networking protocols, multiple platforms, GUI design, distributed processing, multiuser transactions, heterogeneous architectures, cooperative processing -- is generally preferred over C++ experience. ("Experience" on a resume often means having read a C++ book and fooled around with a compiler for a few hours). CASE companies want programmers who can take responsibility for 350K-line projects. "The Lone Ranger with a PhD is becoming less attractive," according to Brian Gill- Price of Procase. [Amy Bermar, EDN News, 6/8.]
Several Fortune 100 companies have reported 300%-1000% productivity gains from OOP. 30% of the companies using OOP adopted it in the past year. Non-users are worried about multiplatform tools, retraining, and the technology's immaturity. [Object Magazine (SIG Publications Group). Bob Carlson, Computer, 10/92.]
Two PC C++ compilers are reviewed by Bruce Lowther and Paul Oman. Zortech C++ 3.0 has an awkward user interface; Borland C++ Professional 3.0 is sometimes inefficient because of incompatibilities with Soustrup's C++ specification. Both are quality programs suitable for industrial-strength programming, but neither is as easy to use as mature environments like Borland Pascal or Microsoft C. [Computer, 10/92.]
"The essentials of object orientation are simple, so simple that it takes years of training in functional programming to be confused by them." Instead of magically understanding a problem and then coding the solution steps, you start by modeling your resources and simulating their behaviors. You learn about the domain before having to code the solution. (Declarative programming has similar advantages. Then again, Dijkstra pointed out in 1975 that "if you don't know what your program is supposed to do, you'd better not start writing it." [John Erhman.]) Larry O'Brien recommends language-independent books by Shlaer and Mellor for bridging functional and OOP perspectives for software engineers. He also reviews other C++ and OOD books and mentions the CASE tools that support them. [AI Expert, 10/92.]
-- Ken