Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!pacbell.com!tandem!netcomsv!jls From: jls@netcom.COM (Jim Showalter) Newsgroups: comp.object Subject: Re: C++ and waitresses (long) Message-ID: <1991Jun6.225355.18611@netcom.COM> Date: 6 Jun 91 22:53:55 GMT References: <1991Jun6.004107.25123@netcom.COM> <2325@media03.UUCP> <1991May24.015856.9979@csusac.csus.edu> <4034@ssc-bee.ssc-vax.UUCP> <1991May25.073216.15040@netcom.COM> <948@trotsky.mrcu> <285@devnull.mpd.tandem.com> Organization: Netcom - Online Communication Services UNIX System {408 241-9760 guest} Lines: 49 >> Note that this in no way indicates a change to my bedrock conviction that >> Ada is the superior technical choice between the two languages for >engineering >> large complex systems. >> -- >Could you expand on this, Jim? Given that C++ is slated for both parameterized >types and exception handling, will your conviction still hold? It seems to me >that Ada has an edge on C++ for its concurrency support (the rendezvous), but >falls way behind C++, not having late binding (virtual) functions. Or >is it just a practical matter of C++ still paying out too much rope to >hang a project with? Comments? Ada has a proven track record, including successes on some of the most ambitious projects ever attempted. Compilers for the language are validated, the language definition is stable, and industrial strength tools that scale to multi-million line projects are commercially available. A number of textbooks and training materials are available that discuss how to use Ada for real systems. Ada was designed from the ground up for optimal software engineering support and does not suffer backward compatibility with a dangerous, non-engineering oriented hacker language. Ada was also designed for maximum readability and maintainability (yes, you can write wretched code in Ada, but you have to be perversely motivated to do so: you don't have to work hard to write readable code in Ada, since the language doesn't fight you in that effort but, rather, aids you as much as possible). Ada provides fewer of the options that were discussed on a different thread in this group, so learning one idiom is usually sufficient. Ada isolates the programmer from hardware peculiarities except when the programmer specifically asks to be not isolated--addresses, registers, and other such non-portable entities are conveniently abstracted away in the general case. The culture that has grown up around Ada is software engineering oriented, as opposed to the culture that grew up around C (and from who's ranks the C++ culture is being drawn). To put it another way, I would argue that C++ will be the equivalent of Ada for engineering large complex systems when it has a stable language definition, the compilers for it are validated, there are industrial strength tools available for it that scale cleanly to projects of arbitrary size and scope, there is a solid base of experienced C++ software engineers (as opposed to hackers) as well as an extensive set of cultural artifacts (e.g. style guides, textbooks, etc), and there are a number of proven success stories of C++ being used on significant projects. Until that day (and I argue that that day is quite a ways off), I stand fast in my claim that Ada is a better choice than C++. -- **************** JIM SHOWALTER, jls@netcom.com, (408) 243-0630 **************** *Proven solutions to software problems. Consulting and training on all aspects* *of software development. Management/process/methodology. Architecture/design/* *reuse. Quality/productivity. Risk reduction. EFFECTIVE OO usage. Ada/C++. *