bobr@zeus.UUCP (Robert Reed) (09/18/86)
I've finished reading the C++ book and think that it embodies some great concepts, but I am concerned about the surrounding programming environment, and in particular, the notion of tags. The combination of function overloading and base/sub-classes introduces semantics to the language which greatly complicates the ability of a developer to move around the system; that is, function overloading requires that a tags package (available in Emacs and built into vi) receive not only a function name, but a sequence of parameter types, in order to find the specific function desired. The notion of classes requires knowledge of the class of an object to resolve requests for names representing a sequence of virtual functions. All these features are very powerful and valuable additions to the languaged structure, but make maintenance of large software systems more difficult via decreased accessibility. We rely heavily on the use of tags for maintaining a substatial software package (around 150,000 lines of c). We use an extended tags scheme which starts with ctags, and then using syntactic conventions for various data structures, adds typedefs, structs, unions, defines and global data to the tags file. Is anyone working on developing a tags package for c++? Use of such a system would require source code changes for vi to support the additional input, and though it may be possible to write a lisp extension to handle it in Emacs, efficiency may require code changes there, too. OTHER TOOLS. We also implement a module scheme on top of C by automatically generating our .h files. The additional syntax of c++ poses possible headaches in this area, too, though one thought was to incorporate header generation into the normal cfront preprocessing step, thereby creating the header as a side effect.