- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Sun, 30 May 2004 20:32:58 -0500
- To: Mikko Rantalainen <mira@cc.jyu.fi>, www-style@w3.org
Mikko Rantalainen wrote: >> Which means you have to reverse-engineer the reference >> implementation, basically? > > I understand 'reverse-engineering' as reconstructing "blue prints" > from finished product. Reference implementation (source code) is an > *exact* blue print description of only allowed behavior [1]. This makes the assumption that all behavior of the reference implementation is there on purpose. I find it very hard to believe that this would actually be the case in a program of any complexity. For example, if the reference implementation segfaults under certain conditions, is that part of the specification? If not, then what parts of the behavior of the reference implementation _are_ part of the specification? > Sure, it isn't in English, but it's far from reverse-engineering. Well... Unless one lifts the reference code completely, one has to implement one's own code that behaves the same. How does one decide that it behaves the same? Either you perform analysis of the reference source, trying to figure out what it's trying to do, or you perform analysis of the behavior of that source. The latter is precisely reverse engineering; the former is not much simpler (if you think it is, I can point you to some table layout code and ask you to describe how you'd implement it...) > As I said, that's the "most strict spec". One can have bugs in any > spec, it's only that the bugs in reference implementation can be > more easily found than from a human language written description. I'm not sure I agree here. The human language description is probably much simpler to read and bugs in _design_ (as opposed to _implementation_) are much simpler to find. > The point I was trying to make was that if Andrew couldn't come up > with a spec that described the requested feature well enough, he > could just publish his reference implementation instead. That wouldn't really be a sufficient substitute, since reading a reference implementation is orders of magnitude harder than reading a properly written specification of behavior. In short, there's a reason people create written specifications... -Boris
Received on Sunday, 30 May 2004 21:33:03 UTC