From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.sys.sgi:10638 comp.graphics:18561 alt.graphics:161 comp.lang.ada:5649 comp.lang.c++:14021 Path: utzoo!utgpu!cs.utexas.edu!uwm.edu!caen!uakari.primate.wisc.edu!news.larc.nasa.gov!hal.larc.nasa.gov!alan From: alan@hal.larc.nasa.gov (alan dare) Newsgroups: comp.sys.sgi,comp.graphics,alt.graphics,comp.lang.ada,comp.lang.c++ Subject: c++ vs ada results Message-ID: <1991Jun12.164741.412@news.larc.nasa.gov> Date: 12 Jun 91 16:47:41 GMT Sender: news@news.larc.nasa.gov (USENET Network News) Organization: NASA Langley Research Center, Hampton, VA USA Originator: alan@hal.larc.nasa.gov List-Id: Netlanders, A short time ago I put a request out for information on c++ vs Ada. I was hoping for several responses from people on both sides of the fence that were working on graphics applications. As my primary application is graphics. What did I receive? I received more requests to post the results than I received mail from people using c++ or Ada. I received only two messages from people using c++ in a graphics application and none from anyone using Ada. There were several messages from general users of c++ and only a few from Ada users. A kind soul FAX'ed me a document "A comparison of Experiences with the Maintenance of Object-Oriented Systems: Ada vs. C++". I didn't try to post a summary of the article (it's to big). The comments below were sent to me. I don't claim any responsibility for them. I don't currently use c++ or Ada. The comments are provided as a request from many people. Please don't use this posting to start a language war. The first post went to the following news groups: comp.sys.sgi comp.graphics alt.graphics comp.lang.ada comp.lang.c++ The comments below were edited only to reduce size, not content. ************************************************** *** Graphics ************************************* ************************************************** o I use C++ for graphics work. We considered ADA. Both have great pluses and a lot of minuses. Mostly the minuses are finding existing graphics packages which are compatible. They are rare with C++ and non-existent with ADA to my knowledge. o Ada has lots of features totally irrelevant to graphics which cost something in compile time even on a compiler that produces efficient code. It has no particular features to reccommend it for graphics particularly over any of the common block-structured languages. ************************************************** *** PRO ADA Comments ***************************** ************************************************** o The Ada MIL-SPEC and validation suites do a lot to insure a consistent interpretation of the language across platforms and vendors. No such validation or "frozen" specification exists for C++. This causes lost time and less portability. o Ada's Packages and Generic Packages are a lot easier to design for than C++ classes. o Ada has better support for embedded systems' work than C++. C++'s OO mechanisms (particurlarly dynamic binding) exact a performance penalty that will not be acceptable for some hard real-time systems. This will be less important in the future, as hardware gets faster and applications get more complicated (thus requiring the complexity-management mechanisms offered by languages like C++). Ada 9X will probably suffer similar performance penalties on the same kinds of mechanisms. ************************************************** *** CON ADA Comments ***************************** ************************************************** o The language is too big for the few benefits over C++ that it features. o Ada is a "weaker" language than C++ in expressing OO concepts (e.g. inheritance, polymorphism). Packages, Generic Packages and Ada's overloaded operators aren't enough. Ada 9X will supposedly deal with these issues, but it will be at least a decade before the Ada 9X environment is truly widely available at a reasonable cost. o ADA compilers tend to cost real money. o ADA suffers from having way too many features -- probably an artifact of the design-by-committee process. It's such a huge language that a programmer may never fully "learn" it. o Converting code to ADA from anything is a problem. o ADA still tends to be slow, though that problem is slowly going away. o Ada is only object-based (it has no inheritance), while C++ _is_ object-oriented. ************************************************** *** PRO C++ Comments ***************************** ************************************************** o The dynamic binding, polymorphism and inheritance mechanisms are *extremely* powerful, and very useful in graphical applications. Future enhancements including parameterized types (== Ada "Generic Packages") and exceptions (== Ada exceptions) are going to be equally powerful. o After extensive reading and personal evaluation, I came to the conclusion the ADA implementions are far worse than the C implementations (I use the stuff from GNU, don't see how anyone can write better software). o C++ compilers are cheap -- the GNU family is free, and runs on a number of different architectures. You can get the source code so that you can fix it if it's broken. o C++ seems to be a reasonably clean design; the features tend to be orthogonal and complete. A competent programmer can probably "learn" C++ pretty well in a month. o Converting code from C to C++ isn't a big problem. (And with some of the Fortran-to-C translators that are publicly available, the Fortran->C->C++ path, while a bit of a pain, isn't completely daunting.) o C++ runs just about as fast as C, i.e. it's plenty fast enough to write things like volume renderers. ************************************************** *** CON C++ Comments ***************************** ************************************************** o The tools for working with it maybe not as mature as ada tools. o C++ is hard to master. o C++ has reasonable OO mechanisms, but they are difficult to learn, and more difficult to use effectively. This is partially due to the low quality of the documentation, which is quickly changing. ************************************************** *** GENERAL Comments ***************************** ************************************************** o There are a lot more Ada people out there, at the moment, than C++ people. There will probably be a lot more C++ people in the future than Ada people, simply because the language is more accessable to more people (Gnu C++ is free, for example; "Turbo C++" costs ~$60; AT&T is very generous in licensing to Universities). o There will probably be a lot more C++ compilers available on a lot more platforms than Ada compilers in the future (the costs of validation are high; reuse of AT&T code or GNU code is cheap). I would like to thank the following for responding to my post : baker@csl.dl.nec.com blbates@aero36.larc.nasa brendan@illyria.wpd.sgi.com fmhv@inesc.inesc.pt jansm@cih.hcuge.ch jdt@voodoo.boeing.com jls@netcom.com jshumate@logdis1.wr.aflc.af.mil leisner.henr801c@xerox.com richard@elroy.Jpl.Nasa.Gov rsk@gynko.circ.upenn.edu uselton@nas.nasa.gov -- ********************************************************************* Alan Dare | Internet : alan@hal.larc.nasa.gov NASA Langley Research Center |