[Standards] Algorithms and XMPP

Waqas Hussain waqas20 at gmail.com
Thu Mar 4 10:40:04 UTC 2010

On Sun, Feb 28, 2010 at 1:08 AM, Stephan Maka <stephan at spaceboyz.net> 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

>> 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

More information about the Standards mailing list