RE: we need better tools...

James Rogers (jamesr@best.com)
Wed, 04 Dec 1996 14:22:02 -0800


At 02:27 PM 12/4/96 -0500, you wrote:
>On Wednesday, December 04, 1996 1:04 PM, James Rogers wrote:
><My point is essentially that the complexity that you perceive is in fact a
>useful tool. This complexity is unnecessary and can be eliminated only for
>a relatively small class of problems. Most general classes of problems
>require complex languages like C++.>
>
>You should qualify what you mean by "general classes of problems".
>
>Perhaps you are thinking of the creation of software-development tools, or
>general-purpose/'commodity' tools (like word-processors or spreadsheets),
>or real-time process-control applications, or multimedia, or network
>management applications - situations where you really are dealing with
>'objects' and where performance is paramount.
>
>I've designed or built a number of budgeting / accounting and other types
>of general business or database applications. I currently support systems
>to create and process samples used in calculating the U.S. Consumer Price
>Index. In these types of 'business' applications I work with, I have no
>need or desire for the 'heaps & stacks' of complexity you're talking about.
>The machinery is totally irrelevant to these types of applications. While,
>it might be nice to improve performance, the cost of having people who
>understand the machinery, or build optimized, special-purpose objects from
>scratch *far* outweighs any performance advantage of working at this
>level.

Absolutely. But even entry-level programmers understand how to use the
basic constructs of programming and data structures. I believe any
"serious" development environment must assume at least this level of knowledge.

>My impression is that the primary goal of object-oriented development
>environments, at least as far as the business world is concerned, is to
>create reusable, general-purpose objects that can be easily extended to
>handle the particulars of a new problem to be solved, while hiding as much
>complexity as possible. Portability and simplicity of maintainance (mostly
>meaning cheap, entry-level programmers wherever possible) is far more
>important than performance for these types of applications (which still
>account for the bulk of the world's computing, though that is changing ;)

This is exactly correct. C++ allows you to simplify the environment as much
as possible without losing any of the flexibility of the language. I think
this is the way it is supposed to be.

I am not advocating complexity. I am advocating the ability to access the
system at any level of complexity you desire or require. Complexity is also
a subjective and relative term. C is a more complex language than assembly
code. But assembly code programming is generally considered more complex
than C programming primarily because the language is simpler. I haven't met
a language (and I know about a dozen) that I would consider truly complex.
They only seem complex if you don't know that much about programming. (Of
course, there are a couple bastard languages that stand as exceptions, but
we will ignore these.)

And for the record, I usually program at a high level for development cycle
efficiency. Let the hardware make up for the performance loss ;)

-James Rogers
jamesr@best.com