Daniel Bolgheroni wrote on Thu, Sep 10, 2009 at 05:09:09PM +0000:

> since Nick Holland touched on the DESIGN aspect in his e-mail regarding 
> supporting OpenBSD, I think this article pretty much reflects the 
> reality here.
> 
> http://www.osnews.com/story/22135/The_Problem_with_Design_and_Implementation
> 
> Just think it's worth reading.

Hardly; it's wrong because the author considers trivial tasks only.
By definition, for trivial tasks, specification and implementation
roughly agree in size and content, and no design is involved.

For a very small, yet non-trivial example, look at:

Specification:
 * double sin(double x) - the sine function, x in radians
 * sin(Inf or NaN) is NaN
Implementation: /usr/src/lib/libm/src/k_sin.c and s_sin.c

Even if i add a proper mathematical definition to the specs, e.g.
  e^z := sum(k in N0) z^k/k!, z in C; sin(x) := Im(e^ix), x in R,
the specification is still short and easy to understand,
the implementation is tricky, and both are not trivial to
convert to each other.

I guess libcrypto contains more scary stuff.

In any case, if that's what you were driving at, OpenBSD quality is not
caused by confusing design and implementation, but by keeping the first
simple and functional and the second correct and robust.

Reply via email to