On Sun, Feb 3, 2013 at 9:24 PM, Tracy Harms <[email protected]> wrote:
> My experience has been that my openness to long chains of modifiers has
> increased as I get better at reading J. Also, I find value in the
> widespread idea that seven, plus or minus two, is a count of things that
> people can keep in mind simultaneously. I don't think it's worth proposing
> specific standards for what counts as "a thing" for such tallying, but do
> think it's worth noticing as a rough guide.

For me, there's a tension between "seeing the code" and "naming the code".

Sometimes I can think of names for every intermediate result.  But
expressing those names means that most of the screen is occupied by
names and copulas and the J itself becomes hard to see.  I think that
this makes it hard to read.

At the other extreme, sometimes I have trouble thinking of descriptive
names, and sometimes my lines become longer than I am comfortable with
(I do not like it when email software wraps my lines of code).

Meanwhile, I feel that to properly understand the code I need to think
about the data that the code will be manipulating.  This starts with
having good example cases, and sometimes I try to walk some readers
through the process of evaluation for sample cases.  These
walk-throughs tend to be quite a bit longer than the code, take time
to write, and can become irrelevant if the code needs to change.  So I
need some amount of audience involvement to write them in the first
place.

When reading other people's code, I have to choose between "seeing it"
and "trying it out".  If I do not try it out and inspect the data my
understanding of it will often be inadequate.  Sometimes an inadequate
understanding is still "good enough" and sometimes not.  Sometimes I
do not understand the surrounding context well enough to understand
what I am reading (seeing numbers does not equate to knowing enough
about the situation to distinguish between relevant and irrelevant
numbers).

I do tend to get impatient when I feel that the code is doing too
much.  For me, such code is harder to understand than code that gets
to the point.  This feeds into my decisions about whether I want to
try it out.  Note also that I am not always right.

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to