On 18 Jun 2018, at 15:33, Noel Chiappa
<jnc(a)mercury.lcs.mit.edu> wrote:
When you say "if implementation of the specification is too complicated it
will fail", I think you mean 'the specification is so complex that _any_
implementation must _necessarily_ be so complex that all the implementations,
and thus the specification itself, will fail'?
Yes, except that I don't think the specification itself has to be complex, it just
needs to require implementations be hard, computationally expensive, or both. For
instance a specification for integer arithmetic in a programming language which required
that (a/b)*b be a except where b is zero isn't complicated, I think, but it requires
implementations which are either hard, computationally-expensive or both.
And for "in which case the specification which allowed the simple
implementation will eventually become a problem", I think that's part of your
saying 'you get to pick your poison; either the spec is so complicated it
fails right away, or if it's simple enough to succeed in the short term, it
will neccessarily fail in the long term'?
Yes, with the above caveat about the spec not needing to be complicated, and I'd say
something like 'become limiting in the long term' rather than 'fail in the
long term'.
So I think your idea was that, if there's a choice between a do-the-right-thing,
future-proof (variable-length-address field) solution or a will-work-for-now,
implementationally-simpler (fixed-length) solution, then you should do the right thing,
because if the thing fails it makes no odds and if it succeeds then you will regret the
second solution. My caveat is that success (in the sense of wide adoption) is not
independent of which solution you pick, and in particular that will-work-for-now solutions
are much more likely to succeed than do-the-right-thing ones.
As I said, I don't know whether this applies to IP.
--tim