On Sun, Feb 28, 2010 at 1:08 AM, Stephan Maka <[email protected]> wrote: > Waqas Hussain wrote: >> I propose that we start a small project to act as an aggregator for existing >> open source implementations which could be used as references. Once we have >> that going, an implementation selected for its readability could become the >> (official?) reference implementation. > > I like this idea, as long as reference implementations are published > under a liberal (non-viral) license. > > Still, I want to argue against it because I think the standard specs are > way more important. >
I meant them merely as correct examples. And yes, I agree completely about a liberal license. >> 1. It would save people writing new implementations hours and hours of >> guesswork > > Guesswork means the standards miss detail. > They do. Or they are extremely verbose. Or they have bugs. Or they are ignored in favor of shorter tutorials elsewhere which frequently have bugs themselves. >> 2. It would make new implementations more interoperable, reducing the chance >> of mistakes > > Not all implementers will fall back on the reference implementation, > leading to probably less interoperability experience. > The likelihood of two different implementations inter-operating would in my opinion increase. >> 3. It would make existing implementations more visible, improving the chance >> of mistakes being found and reported, and implementations being reused > > Yes, given that feedback works. > Indeed, but I think in XSFs case it would. >> 4. For experimental XEPs this would give direct evidence of how simple or >> complex an algorithm is, what the edge cases are, and if it could be >> simplified without losing its important characteristics > > Good point. > Thanks. I just noticed that algorithms within XEPs have had (sometimes serious) issues which came to light when implementations were being written. >> In fact I wouldn’t mind it being required that any XEP moving beyond >> Experimental have implementations available for the algorithms it defines, >> under a permissive license. >> >> I’m hoping to not be the only one who sees this as a problem we should >> solve. What does everyone else think? > > Alternative proposal: link to all (open) implementations out there, not > neccessarily reference implementations. That could improve interop as > well. As a bonus, hint on the used license. > > The funny thing is, that's my primary proposal. I added text about a formal reference implementation (which I define as a short example piece of code included or linked directly from the spec) as an after thought, but it ended up dominating the rest of the discussion :-) -- Waqas Hussain
