Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.misc > #2261

Re: A good subset of C

From "Rod Pemberton" <dont_use_email@xnothavet.cqm>
Newsgroups comp.lang.misc
Subject Re: A good subset of C
Date 2014-05-17 16:00 -0400
Organization Aioe.org NNTP Server
Message-ID <op.xf0siais6zenlw@localhost> (permalink)
References (14 earlier) <ll06iv$pvs$1@dont-email.me> <op.xfvelvyg6zenlw@localhost> <ll0s6v$1mu$1@dont-email.me> <op.xfviucge6zenlw@localhost> <ll84id$b6a$1@dont-email.me>

Show all headers | View raw


On Sat, 17 May 2014 13:00:05 -0400, James Harris  
<james.harris.1@gmail.com> wrote:
> "Rod Pemberton" <dont_use_email@xnothavet.cqm> wrote in message
> news:op.xfviucge6zenlw@localhost...
>> James wrote:

>>> Just on C's facilities for hiding information, though, I see your
>>> comment that you don't recognise a mechanism for it. Could it be
>>> that you naturally use information hiding in C without thinking
>>> of it as such?
>>
>> If the code isn't hidden from me, then I know not only the interface,
>> but I can read, understand, modify the code too.  I.e., as a maintenance
>> programmer, or the original author of code, the "no other information"
>> contraint aspect has been violated for Parnas' Principles.  AISI, his
>> rules could only apply for a non-programmer user, or a programmer
>> interfacing with a closed-source module or "black-box".
>
> Difficult to know how to respond to that! In no particular order:
>
> I don't see how that answers the question.
>
> I'm no authority but I do not believe the principles are intended to  
> apply to users (people) of programs.

Ok.

> You may be looking at the ideas from the wrong end.

...

> Rather than considering how you can use a program module consider later
> having to change that same module.

If I'm the original author or a maintenance programmer with complete access
to the code and the authority to change it, perhaps dependent upon a code
review, I don't see where having to change a module is a relevant issue.
Changing things is the job of the original author or maintenance  
programmer.

> Put another way, if there are N users of a common piece of code, X, and
> any or all of the N could have been written with access to the internals
> of X, then changes to X could break the other N pieces of code. By
> contrast, if the N modules have been written without knowledge of X's
> internals then each of the N would have to interact with X via its narrow
> and documented interface. Then maintaining X becomes easier and safer: as
> long as the interface conditions are maintained the N modules will still
> work with it.

I tend to look at programming in terms of the "work" which must be done.
"work" is an arbitrary, unspecified, mental concept, which I use.  It's
not defined to be anything specific.  It can mean how much actual work
is done by the code, or how efficiently the code gets the job done, or
any other issue where I recognize a restraint or constraint or bottleneck
or inefficiency might shift or increase the amount of actual work, etc.
Perhaps, it can be thought of as entropy or complexity or inefficiency
of the issue, and the programmer is attempting to minimize complexity,
increase efficiency, or decrease entropy (i.e., increase order).
"Throughput" is another related term that comes to mind.

 From that sense, when you say there are "changes to X [which] could break
the other N pieces of code" and you've chosen not to make that change,
I see you preserving the inefficiency, constraints, restraints, or  
bottlenecks
etc inherent to X.  At the same time, due to preserving those problems  
within
X, you're also shifting "work", outside of X.  This "work" might've been
implemented most efficiently within X, not outside of X.  This "work" is
shifted into the, perhaps numerous, "other N" code pieces.  This could
possibly increase the complexity, inefficiency, etc of the N code pieces.
This could possibly increase the overall "work" that must be done by the
entire process too.  By that, I mean the work that the N's and X do  
together.

Perhaps, it might be best to view this using the overlapping circles
used in set theory?  I.e., the intersection of the circles represents
the efficiency or throughput or constraint or "richness" etc of the
code interface.  What you're saying to me is that it's best to restrain
the size of X's circle (code base) allowing N's circle (code base) to
get bigger, and/or to restrain the size of X and N intersection (limit
the efficiency or throughput of the interface).  In reality, it may
be best to allow X's circle (code base) to become larger.  It may also
be best to allow the interface to be or become "richer" in terms of
features or capabilities.


Rod Pemberton

Back to comp.lang.misc | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-05 08:47 +0100
  Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-05 10:56 +0100
    Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-05 19:41 +0100
      Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-05 21:08 +0100
        Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-05 21:58 +0100
          Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-05 22:55 +0100
            Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-06 00:01 +0100
              Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-06 00:44 +0100
          Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-06 09:45 +0100
  Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-05 07:33 -0400
    Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-05 19:14 +0100
    Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-05 20:12 +0100
      Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-05 18:57 -0400
        Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-07 11:55 +0100
          Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-07 19:04 -0400
            Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-08 10:14 +0100
              Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-08 07:35 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-08 16:22 +0100
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-09 16:45 -0400
                Re: A good subset of C "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2014-05-10 09:04 +0200
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-10 16:30 -0400
                Re: A good subset of C "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2014-05-11 11:59 +0200
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-11 11:06 -0400
                Re: A good subset of C Kaz Kylheku <kaz@kylheku.com> - 2014-05-12 00:26 +0000
                Re: A good subset of C "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2014-05-12 09:54 +0200
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-12 20:01 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-14 17:45 +0100
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-14 18:11 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-14 23:54 +0100
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-14 19:43 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-17 18:00 +0100
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-17 16:00 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-17 22:17 +0100
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-17 19:58 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-18 07:59 +0100
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-18 13:10 -0400
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-19 00:54 +0100
                Re: A good subset of C Andy Walker <news@cuboid.co.uk> - 2014-05-15 01:31 +0100
                Re: A good subset of C BGB <cr88192@hotmail.com> - 2014-05-14 23:43 -0500
                Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-17 18:38 +0100
                Re: A good subset of C Ian Collins <ian-news@hotmail.com> - 2014-05-25 11:04 +1200
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-24 20:36 -0400
                Re: A good subset of C Ian Collins <ian-news@hotmail.com> - 2014-05-25 12:53 +1200
                Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-24 21:34 -0400
                Re: A good subset of C Ian Collins <ian-news@hotmail.com> - 2014-05-25 14:11 +1200
                Re: A good subset of C Kaz Kylheku <kaz@kylheku.com> - 2014-05-25 06:47 +0000
                Re: A good subset of C Kaz Kylheku <kaz@kylheku.com> - 2014-05-25 06:43 +0000
  Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-05 20:59 +0100
    Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-05 22:28 +0100
      Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-05 18:57 -0400
        Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-06 00:26 +0100
      Re: A good subset of C George Neuner <gneuner2@comcast.net> - 2014-05-06 14:21 -0400
        Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-07 15:43 +0100
          Re: A good subset of C George Neuner <gneuner2@comcast.net> - 2014-05-07 16:03 -0400
            Re: A good subset of C "BartC" <bc@freeuk.com> - 2014-05-07 21:31 +0100
          Re: A good subset of C BGB <cr88192@hotmail.com> - 2014-05-07 15:41 -0500
    Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-05 18:46 -0400
      Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-06 00:42 +0100
        Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-06 06:48 -0400
          Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-07 15:40 +0100
            Re: A good subset of C "Rod Pemberton" <dont_use_email@xnothavet.cqm> - 2014-05-08 06:50 -0400
              Re: A good subset of C "James Harris" <james.harris.1@gmail.com> - 2014-05-08 15:43 +0100
                Re: A good subset of C George Neuner <gneuner2@comcast.net> - 2014-05-08 14:41 -0400
  Re: A good subset of C BGB <cr88192@hotmail.com> - 2014-05-05 19:08 -0500

csiph-web