Path: utzoo!attcan!uunet!husc6!cmcl2!rutgers!apple!vsi1!daver!athsys!jim From: jim@athsys.uucp (Jim Becker) Newsgroups: comp.lang.c++ Subject: Re: Managing C++ Libraries: C++ too complex !! Summary: Clarification of my intent in discussion (I hope!) Message-ID: <184@tityus.UUCP> Date: 12 Nov 88 03:32:26 GMT References: <179@tityus.UUCP> <5217@thorin.cs.unc.edu> Organization: Athena Systems, Inc., Sunnyvale, CA Lines: 111 >In article <5217@thorin.cs.unc.edu> coggins@retina.cs.unc.edu (Dr. James Coggins) writes: >> In article <179@tityus.UUCP> jim@athsys.uucp (Jim Becker) writes: >> If this language is so great, why do we need all these papers >>from PHD level intellectuals telling us how to use it?? > > (This tirade cuts close to home. You are a bit out of line here.) > (and it's "Ph.D.") My comment about Ph.D.'s (sp -- stand corrected) was NOT intended to be derogatory in any way, shape or form. What it was questioning is the intelligence level that is required for a person to utlize the task at hand. Although it would be fantastic for more people to have higher intelligence this is not always the case. Hence an increase in the base level of intelligence for a person to comprehend and use any given tool reduces the set of people that can use the tool. A better example of this is newspapers. The biggest paper local is the New York Daily News, which has the average level of literacy to comprehend at the sixth grade level. One the other hand, the Wall Street Journal requires a much higher level of understanding to read and comprehend. Therefore, although it has more content, the Journal has a much lower percentage readership in NYC than the Daily News. (Although this may not be the case worldwide, I don't know). This is also the case with the Mac vs. the IBM PC. There may be lots more firepower and wonderful software available with the PC, but normal people can easily make use of the Mac. The IBM PC learning curve is a lot steaper, and most users have to gain more computer literacy than average. Secretaries can take years to get really good on a PC, but I have taught several the Mac in an hour or less. The point that I was trying to make is that some people may be able to pickup and understand the C++ language easily, but most average programmers will not. I think that there are many things that could be done to make an integrated C++ environment better, but raising the "membership dues" of intelligence does not help to broaden the usage of the language. > > These passages and your reference to friend functions indicate that > you are using C++ as a "better C" and not using the object-oriented > design paradigm correctly. Indeed your 800K line project might be > excessively complex due to flawed design. Most everything that we are doing is object-oriented, possibly somewhat excessively. In all probability a rewrite of the code would result in a better design/implementation, as is true of most software projects. :-) > Maybe you could learn something from some Ph.D.'s that would REALLY > help you. I would love to learn as much as possible in my life, especially from Ph.D.'s. There are many _theoretical_ things that I have learned from those with Ph.D.'s, but I operate in the business world. I translate from theoretical to _business_. There is a difference in approach that one develops when out of the academic world and in the business world. This is the path I have taken. If I had the time and money I would pursuit a Ph.D., as I believe that there is much I could learn and many contributions that I could make toward improving the academic process through my work and interest in multi-media information systems. Unfortunately, I currently have to work commercially for a living. > >>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. > > Bad design yields bad code in any language, including C++. C++ gives > you more than enough rope to hang yourself, but it also provides > abstraction mechanisms that make it easier to write and understand > larger systems of code. Good management techniques can minimize the > incidental problems of managing headers. Good design minimizes the > essential problems of complex dependencies. > I find it difficult to read code that uses calls where the parameters may or may not be changed in the calling procedure. Also, if functions can come from any base class, and the resulting code executed can differ depending on the specific type of parameters passed, it results in a more "multi-dimensional" understanding of what a call is going to do. Basicially, there is a lot more, in terms of underlying behavior, that can be happening in a C++ program. You may not always be aware of it. I believe that if a few programmers write a project using good design it is very possible to get the advantages of these features. For me, to take an existing set of code that is intertwined and figuring out what exactly happens is more difficult with C++. This may be just my problem, as I also have problems picking up chess games in the middle, but I don't feel that this is an unusual. > ------------------------------------------------------------------------ > James M. Coggins, Ph.D. (and proud of it) > Computer Science My season basketball tickets > UNC-Chapel Hill came yesterday. > coggins@cs.unc.edu -Jim Becker ((the only) C programmer in a land of C++ programmers)