[comp.lang.c++] Arbitrary Complexity

coggins@proline.cs.unc.edu (Dr. James Coggins) (11/15/88)

In article <187@tityus.UUCP> jim@athsys.uucp (Jim Becker) writes:
>From article <5278@thorin.cs.unc.edu>, by coggins@piglet.cs.unc.edu (Dr. James Coggins):
>> The problem is not in ourselves, but in our software user interfaces.
>
>	This is true. It is also part of the evolution that is
>occurring with the "Information Age". There is an increasing amount of
>material that needs to be digested if one is going to "keep up" with
>the world. This needs to be presented to the user in as familiar and
>understandable a format as possible.
>> 
>> I can agree that learning to use C++ effectively is challenging right
>> now, but this is not the fault of the language and not an indication of
>> a C++ Programmer Master Race. The problem is that we lack educational
>> materials right now.  [clipped]
>
>	Again we are in agreement. The wrench that I would like to
>throw into the works is the changes that are taking place around us.

>It would
>be wonderful if we had the educational materials and the effort and
>money and energy to do this. 

>Here in California we are spending more money than ever on
>education, but the average kid sure isn't the Einstein you would
>expect.

North Carolina can't understand why their kids' SAT scores are still
49th highest in the nation in spite of increased spending.  (South
Carolina - where I grew up- is 50th)

> Therefore, until the time when we create new kids that are
>really bright, part of the solution may be to make the tools that are
>used in all forms of development more easily understandable to
>"average" level users. Hence my argument toward making higher level
>toolkits for users.
>
>-Jim Becker
>[attach your own name..]

I sympathize with your political stance.  
I'm not as sure about the extrapolation to the technical domain.

We software engineers have a hard job because we must deal with
arbitrary complexity.  We are the only discipline that faces arbitrary
complexity daily.  Mathematical methods can't handle complexity;
Physics falls apart in the face of arbitrariness. Software engineers
need all the tools we can get to manage arbitrary complexity.
Sometimes we can find an effective metaphor like the "Desktop" that
lets us use what we know from other domains to understand what our
computer systems can do and are doing.  We face applications that are
not easily captured by such metaphors.  Therefore, we need tools that
are sophisticated enough to help us deal with arbitrary complexity.
Sophisticated tools are going to be complex until an appropriate
metaphor or model can be found. 

The Object-Oriented Design paradigm is a metaphor that leads us in
what appears to be a productive direction.  Its implementation in C++
achieves some things at the expense of others.  In particular, the
decision to keep C++ compatible with C has far-reaching consequences,
some clearly good, some clearly bad. 

We are developing tools that allow us to express the required
precision in a form that is highly abstracted and therefore easier to
understand and manipulate.  I think we are moving in a reasonable
direction but we have far to go.  Newton said he was able to see
farther because he stood on the shoulders of giants.  Computer
scientists don't see very far because they are always standing on each
others toes.  We don't have mechanisms that allow us to use each
other's results effectively. 

We can produce simpler languages for educational purposes that can
develop good thinking patterns and some useful experience.  But we
still need the power tools for the difficult and complex problems we
face. They will always be there.

I'm impressed at how C++ imposes a structure with conceptual integrity
on top of a structure that has none (well, little). I call that
progress. 
---------------------------------------------------------------------
Dr. James M. Coggins          coggins@cs.unc.edu
Computer Science Department   
UNC-Chapel Hill               Not a member of the putative 
Chapel Hill, NC 27514-3175    C++ Programmer Master Race.
---------------------------------------------------------------------

jim@athsys.uucp (Jim Becker) (11/17/88)

	Sorry about the extended rantings and ravings on this topic,
I'm going to try to keep it to a minimum from now on. (I also have
work to do..). I'll try to let progress continue w/o my active 
discussion. Then I'll have time to make the progress!!


-Jim Becker