Re: Joey's First Programming Language

Seth Golub (seth@thehouse.org)
Thu, 23 Jul 1998 01:14:24 -0700 (PDT)


Tom Whore <tomwhore@inetarena.com> writes:

> On Wed, 22 Jul 1998, Seth Golub wrote:
>>
>> "Joey should use language X." is not a complete statement, for any
>> value of X. Instead, try "Joey should use language X in order to Y.".
>> Only when you know Y can you solve for X.
>>

> Nice idea, but if you sat around waiting for your Y's to all qwuack
> in a row you could turn old and gray.

I'm not claiming that you should know all the effects of doing
something. I am claiming that when figuring out what to do, you
should have some idea of what problem you're trying to solve (in order
to pick the choice that helps you reach your goals).

> X for X's sake is often enough of a reason for some.

I don't think that's ever true. "It makes me happy" or "I'm bored and
can't think of anything else to do" are fine reasons to do something,
but they are reasons.

> "I should get lunch" is in itself complete if you are taking the
> staement as a state set of the system "I".

We can all guess that you're eating because you're hungry. Whether
we're right or not isn't related to my point. My point is not about
communication, it's about making rational decisions. When you decide
to get lunch, you are doing so because getting lunch will solve some
problem.

For something as common and simple as eating to deal with hunger, you
don't need to methodically go through the solution space, but for a
problem less common and less simple, such as "what first programming
language should a six year old learn?", the answers are less obvious
and the problem itself is also less obvious. In order to get a good
solution, it's helpful to be aware of the problem.

> Being that we are mostly a part of similar objects or classes of
> humaness we have certian "inheritence" and thus when communicating
> can use common language, procedures and or calls.

We can get by with statements that leave out vital information when we
already have it. In Joe's case, we don't.

I find that when people leave out the goals in statements like
this, they often haven't thought about the goals at all. If they want
to effectively address nontrivial problems, choosing goals before
choosing solutions may be helpful.