Path: utzoo!attcan!uunet!ncrlnk!ncrcae!hubcap!gatech!bloom-beacon!apple!vsi1!daver!athsys!jim From: jim@athsys.uucp (Jim Becker) Newsgroups: comp.lang.c++ Subject: Managing C++ Libraries: C++ too complex !! Summary: My two cents regarding C++ usage Keywords: complex,too,flames Message-ID: <179@tityus.UUCP> Date: 9 Nov 88 02:21:00 GMT Organization: Athena Systems, Inc., Sunnyvale, CA Lines: 74 *** Note that this is a combination of the two running topics... *** and may be considered by some to be a *flame of C++*!!! BEWARE! I have been reading these articles with some mirth, after having dealt with these problems at my current company for the past year. I find it all very funny. C++ is an amazing language, or extension to a popular language. So amazing, in fact, that even the instructors teaching the language from the source don't understand it all. The language has been designed to "simplify the code development process" and "hide complexity". Our experience has been the exact opposite, as there is so much interdependency in the class definition nesting and the overloading and the friend functions.... et al. We have a fairly large commercial application written in C++, about 800,000 lines. It is all intertwined. Please tell me the source files that "trivially" need to be recompiled when I change one of the include files. I have written a scanner that understands the interdependencies at the file level, but not at the internal usage level. We do all the normal things to minimize rereading include files, yet some of our singular source files depend on over three hundred (300) include files. Please tell me how this can be simplified.. :-) :-) As I sit here typing this another person comes to me to ask this question... "I changed one include file, what do I..." I don't know of much of the code that can be extracted from it's current place and "re-used", as is so widely touted. It all depends on itself, and is incestual in nature. I'm not saying that it's the best use of the language, but it is a typical commercial application as far as the development team. Not all superstars, but trying to make it. If this language is so great, why do we need all these papers from PHD level intellectuals telling us how to use it?? I believe that there is a great deal that can be done without buying into the entire C++ methodology, and I do it in vanilla C. My applications are compact, easy to understand and read. They can be comprehended fairly easily and code maintenance isn't too hard, as the program can be understood in a couple of hours at most. I don't want to totally pound on C++, I think that it can be a great base to use in creating an entirely integrated CASE development environment (not just a toolkit mind you). There are quite a number of possible advantages that are possible using it. Unfortunately, noone has moved the CASE world beyond the Version Control, Configuration Management, and Editor/Linker/Debugger toolset toward the fully integrated "software development production world" yet (that I have witnessed). The question that I pose is one of it's impact on the new programmers out there and the question of continuing code maintenance. Is this a language that is great for the super human programmers, and one that becomes "write only" after a master has been at work?? Or is it a general extension to make the language more flexible and easier for a novice to intermediate programmer to create cleaner and more well understood code?? How much will a new programmer have to read to understand and modify existing code in C++?? Can an average programmer write better code, or more confusing and obscure code?? Everyone isn't a star coder out there. I've worked in over a dozen languages, and have to laugh at the big ruckus over C++. It's certainly got it's merits, but in my book I'll stick with the simplier and make it look better and read easier. I don't want to hide the logic of what I am coding from the uninitiated further down the software timeline.. Burners back on warm!! :-) -Jim Becker (C programmer in a land of C++ programmers)