Re: What a reference implementation is

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The definition I prefer is that a reference implementation is an implementation written with the intention of faithfully implementing a specification such that it can be used as a reference against which other implementations may be measured.

Alternatively we have cases in which a specification is written to describe a widely used implementation to allow interoperable implementations to be written. One (in)famous example of that being SGML, the original specification of which can only be understood if one imagines writing a description of a FORTRAN deck.

My systems are a bit in-between since I always start by writing a specification, then I write code and then I modify the specification to track changes introduced while coding. And I suspect that is the case for most specifications since as my college tutor used to say waterfall design methods don't work, PHB's corollary being that they work very well as a means of extracting cash from consulting clients.

My code being synthesized from the specification to a large degree, much of the normative text in my docs consists of text taken from a schema or state machine specification and test traces generated from the reference code, my specifications and reference code are much closer than usual and while there are certainly cases where the two diverge, that does not happen unless the specification has also become inconsistent.


On Sat, Jun 3, 2023 at 10:38 AM Joel Halpern <jmh@xxxxxxxxxxxxxxx> wrote:
To amplify Rich's point, there are two very common definitions of
"reference implementation" which while similar are not the same:

1) The best known implementation, often used to test interoperability.

2) An implementation whose operation is considered to be the definition
of the system it implements.

For example, in OpenFlow, the implementation done in conjunction with
the ONF was the reference implementation.  In case of a conflict between
the specification and the code, as I understood it, the code was
considered correct and the document would be fixed.

In contrast, for any protocol defined by the IETF, the RFC is the
definition.  It may be found to have errors (anything can), in which
case there are various ways to fix it.   Implementations are
extraordinarily useful, but do not define the behavior.

Yours,

Joel

On 6/3/2023 10:18 AM, Salz, Rich wrote:
>> Recently, a colleague made a statement about a software distribution
> being "the reference implementation" for a protocol.
>
> Those people are bragging. :)
>
>> As this phrase is regularly used to refer to protocol implementations,
> is there a normative definition published somewhere in the RFCs about
> what constitutes a reference implementation?
>
> No.  It's a term of art, widely used in the software business, that has various shades of meaning.
> You might look at RFC 7942.
>


[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux