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.