[ Chapter: toc | 1 | 2 | 3 | 4 | 5 | bib | web | (c) | ij ] [ elj.com | ps | pdf ]

[Select]
[C++?? : A Critique of C++ (3rd Ed.)]

C++?? : A Critique of C++ (3rd Ed.)

and

Programming and Language Trends of the 1990s

Copyright © Oct. 1996 Ian Joyner. All rights reserved.

[http://www.elj.com/oue1/]

[ To: next | prev | top | bottom ]

About Ian Joyner

Ian Joyner did his honours year in Computer Science at Sydney University in 1979. It was during this course that he was introduced to Simula 67, and realised this was a good way to design and implement programs. This was long before the term 'object-oriented' was in common use. His main honours project during this year was implementing a C virtual machine as an interpreter on a Burroughs B1700 in Microcode Implementation Language (MIL).

He started his career at AWA, where he found Structured Design a great step back from the data abstraction facilities in Simula. He then moved onto Burroughs and supported their large systems (now A Series and ClearPath). These machines have a very clean stack architecture, and all programming is done in high level languages, no assembler. After that he worked at NetComm with three other people in a house. NetComm is now Australia's largest modem manufacturer. NetComm developed an Algol style compiler for the Apple II, which was used to develop the highly successful NetComm Program. This was 'sleeves up' work, using a logic analyser to trace programs and find faults.

NetComm obtained an early Lisa from Apple, and then one of the first Macintoshs in Australia. Ian set to work developing communications software on the Macintosh. When the MacApp object-oriented framework was released on the Macintosh, He was the first MacApp developer in Australia, using MacApp to develop The NetComm Program for Macintosh.

During this time, he also worked at the Basser Department of Computer Science Sydney University as a programmer. After that, he worked for Information Gateways, teaching Systems and Programming, and Algol courses for Burroughs, and implementing a Burroughs version of SNA.

After that he worked at Graphic Notes in Adelaide on a Music Publisher. This was a real application of object-oriented techniques to a large scale program. This job also suited Ian's musical interests. Music Publisher was also done in MacApp in Object Pascal. Multiple inheritance would have been nice, as Object Pascal only had single inheritance.

Then Ian contracted for a while, and helped Apple Computer Australia set up a Developer Training program. He also developed courses for Apple in MPW and MacApp.

Since 1990 Ian has been working for Unisys, developing systems software, including X.500. He has also worked on A Series SQL catalogs, A Series SQL*Star and Transparent Gateway, and the Unisys 4GL LINC.

The X.500 project was done in C++, which some in the group raved about as being the only true way. So Ian started noting down the gotchas and bad points, and this grew very large. It was clear that C++ had mangled OO very badly, and brought the problems of the old world to OO, which hampered OO's move to cleaner, well defined, more modern languages. The critique was submitted to comp.lang.c++ in early 1992 as the first edition of the C++ Critique. During 1992, he did more research into C++, and revamped the critique, which was released as the second edition of the Critique at the end of 1992.

After this he decided that he should do something more positive towards OO, and developed an A Series Eiffel compiler in his spare time. This generated native A Series code, and handled most of the Eiffel language, including all aspects of Eiffel's multiple inheritance mechanism, genericity, most validity clauses. Development of the Eiffel compiler also gave insights into the difficulties of building an Eiffel compiler, as the design of Eiffel makes no concessions to the compiler writer, insisting that life for the application developer be kept simple. However, the Unisys A Series SLICE compiler development system was a great help in this effort, providing the internal compiler symbol tables, parse trees, code generation, and optimisation, including inlining. This large system is all written in Pascal.

During 1996, he read up about Java, and realised most of the things Java left out were things that were criticised in the 2nd edition of the critique. So he set about including comparisons to Java. As much of his OO experience over the last four years had been developing an Eiffel compiler, much of the insights gained from this were also folded into the critique, along with comparisons to the Eiffel mechanisms. He realised that while Java is a step in the right direction, Eiffel is most way there already. The result of this effort is the vastly revamped 3rd edition of the C++?? Critique, which also includes some of the more recent changes made to C++ since 1992.

[ To: next | prev | top | bottom ]


[ Chapter: toc | 1 | 2 | 3 | 4 | 5 | bib | web | (c) | ij ] [ elj.com | ps | pdf ]

[Select]
[C++?? : A Critique of C++ (3rd Ed.)]

Comments to author: i.joyner@acm.org

All contents copyright (C) 1996, Ian Joyner. All rights reserved.
Updated: 01 Jan 2000; Moved: Nov 16, 1997