From: d8andjo@dtek.chalmers.se (Johan Andersson)
Newsgroups: rec.games.mud.lp
Subject: Re: Gamedriver engineering (Was: Re: Gamedriver survey [LONG])
Date: 13 Oct 92 15:06:34 GMT
	<14926@chalmers.se> <1992Oct13.040029.29654@rhrk.uni-kl.de>
Organization: Chalmers University of Technology, Sweden
In-reply-to: behrends@arctecws-12.dfki.uni-kl.de's message of 13 Oct 92 04:00:29 GMT


On reuse of software and software engineering.

In article <1992Oct13.040029.29654@rhrk.uni-kl.de> behrends@arctecws-12.dfki.uni-kl.de (Karl Reimer Behrends) writes:
	
> I wrote:
> |> It is preferable to have the responsible programmer at armslength so you
> |> can twitch his ear when a nasty bug crops up.
>
> This sounds logical, but is far too restrictive an assumption to be of any
> use in a real programming environment. If you don't ever rely on code written
> by other people you go on inventing the wheel again and again.
>
Yes, yes. I said 'preferable'. The very best programmers are rarely at
armslength and of course one wants to use their code.

> I wrote:
> |> As for software reuse, the key is that understanding of someone elses code
> |> must not take longer than writing up the same functionality yourself. What
> |> that implies for Joerns code is left as an exercise to the reader.
>
> No. The idea of software reuse is not at all that simple.
>
> The proof is simple:
> If this was the key to software reuse, you could only use software delivered
> in source form.
>
Nah, my statement above should be slightly modified. In the general case
all software offers me a certain functionality. If the time it takes for me
to learn how to make use of that functionality is longer than it takes me
to code up the functionality myself, then I will 'reinvent the wheel' and
I will be correct to do so.

In the case of Joerns code, understanding the source is necessary if I
want to use it. If you wish, a part of the offered functionality is that
it can be integrated with other source code and that it allows changing 
and fixing of bugs. To make use of that functionality I need to understand
the code.

In a complete program, such as Framemaker I'm not supposed to make changes,
I'm not offered that functionality, i.e. I do not need the source.

In a library package, I'm just offered the functionality of a number of 
'black boxes', I'm not supposed to make changes within the boxes, i.e.
I do not need the source to the boxes.

And back to different gamedrivers:

> |> Right and as Lars codes in a readable way, people could continue where
> |> he left off.
>
> So who has besides Amylaar if it's that easy? People are known to have
> implemented simple bugfixes or written new efuns, but who has really
> picked up where he left?
>
I did not say it was easy. But people has made more than bugfixes and
new efuns. We at CD have, the TMI crowd have and the aussies have.

> |> True until Joern tires of mudding. Then when leftover bugs crops up,
> |> noone, or at least exceptionally few, will be able to continue where
> |> he leaves off.
>
> Same with any other gamedriver. Sorry.
>
No, it is not the same at all. The point is that continuing after Joern
will be orders of magnitude more difficult because of his style of coding.

/Johan
--
Johan Andersson           | "You don`t have conversations with microprocessors
Chalmers, Sweden          | you tell them what to do, and then you helplessly
Email:                    | watch the disaster when they take you literally."
d8andjo@dtek.chalmers.se  |	Sah`ot in David Brins "Startide Rising"