Path: utzoo!utgpu!attcan!uunet!husc6!mailrus!ncar!boulder!sunybcs!crovella From: crovella@sunybcs.uucp (Mark Crovella) Newsgroups: comp.lang.c++ Subject: Re: C++ considered disenchanting Keywords: C++,object oriented programming,C Message-ID: <2010@cs.Buffalo.EDU> Date: 17 Oct 88 13:52:03 GMT References: <441@grand.UUCP> Sender: nobody@cs.Buffalo.EDU Reply-To: crovella@sunybcs.UUCP (Mark Crovella) Organization: SUNY/Buffalo Computer Science, and Calspan Corp. Lines: 47 In article <441@grand.UUCP> day@grand.UUCP (Dave Yost) writes: > >[...] I pulled away from the C++ >conferences because I became disenchanted with C++. > >[...] C++ continues to amaze me with how hairy and >complex it is. I want a higher level language that >is easy to read, relieves me of details, and lets >me get on with the problem level. I don't see C++ >answering that desire. > >Yes, strongly-typed object orientation seems like >the right direction, but it can be a lot nicer than >C++. > > --dave yost Dave's observations are on target; however, I am not sure that his conclusions necessarily follow. Our experience with C++ on a medium sized project (5000 lines) is that (a) most of the expected benefits of object orientation *do* accrue and (b) a number of new problems crop up. These problems are primarily associated with readability and comprehesibility. For example: 1. It can take a while to determine which virtual function will be invoked when the class hierarchy is deep. 2. Constructor and destructor side-effects can be confusing, e.g., when unrelated to the class itself. These are minor points, but the overall result seems to be a perception that the language is a bit "hairy". As for Dave's conclusion (i.e., a disassociation between himself and C++), I think that in large part this may not be the fault of C++, but rather in the toolset we use and in the orientation we have to programming in C++. The problems we have had using C++ would be well solved through the use of a more comprehensive programming environment for the language. I propose a discussion of the necessary, appropriate, and/or ideal tools and techniques for C++ programming. For example, a tool to resolve virtual function scoping dynamically. A "Flavor Inspector" -- a class examination tool. An object inspector. A dynamic debugger which runs C++ interpretively. etc. The questions Dave raises are important -- I think it would be interesting to hear people's views on them. Mark Crovella "Reflect, ponder, excogitate, reply." - J.Joyce uucp: ..!{ames,boulder,decvax,rutgers}!sunybcs!crovella internet: crovella@cs.buffalo.edu bitnet: crovella@sunybcs.bitnet