Metaprogramming and Free Availability of Sources
Thu, 1 Jul 1999 09:03:30 -0400
If we follow your reasoning, we'll
have to require that cars are sold we the complete building
instructions and detailed physical characteristics, because it's
probably the only way to know how the car behaves when used on a
road. But you could tell this by just inspecting it and analysing it.
Any idea turns into something foolish when exaggerated sufficiently.
That's not a persuasive argument.
I think that when there's no clear separation between concepts, we
should not try to impose one, whatever the goal you pursue.
This principle is not wise. Consider as an example the laws against
driving while intoxicated. There is no clear separation between drunk
and sober; a continuum stretches between them, so any place to draw
a line is inevitably arbitrary.
However, driving while intoxicated is a serious problem. Therefore,
instead of throwing up our hands and saying "We can't find any natural
way to distinguish drunk from sober", we draw an arbitrary line.
Distinguishing software from other kinds of products is a much easier
problem. While there are similarities as well as differences between
various kinds of products, they are not a mere numerical continuum; it
is possible to grapple with them.