[jdev] Jabber Certification Program

Rachel Blackman rcb at ceruleanstudios.com
Fri Jun 18 12:33:20 CDT 2004


>> The thing is, there are all these very cool Jabber featuresets out 
>> there, but lots of them are not necessarily supported.  Nor (other 
>> than peer pressure) is there much incentive for people to implement 
>> certain things.  I can look at Jabber and go 'wow, pubsub is a cool 
>> backend system, Stream Initiation will let me do a lot of really cool 
>> things down the line' and be excited, but your average IM user (for 
>> instance, my mother or father) will look at Jabber and go 'why can't 
>> I set a nice little picture like under MSN?  And why can't I use bold 
>> in my messages?' and so on.
>
> To me *that* sounds like you're saying: there are all kinds of cool 
> specifications out there, but noone is using them.

I think I phrased this badly, so I'll try again in a moment to 
summarize my intent in this proposal.  However, I would submit that you 
are getting rather sidetracked by making this a debate over motives 
rather than benefits or drawbacks to this; regardless of /my/ intent in 
putting this proposal out there, surely you have your own opinions on 
what benefits or drawbacks this proposal has?  That was in large part 
what I was interested in hearing from others. ;)

Okay.  Trying to summarize my intent again.

Right now, there are lots of features out there.  To use XHTML as an 
example (or file transfer in the older days), because of the fact there 
is an attitude (rightly or wrongly) that implementation of experimental 
JEPs should be discouraged, sometimes we see custom extensions to 
clients as interim solutions.  (Witness various client-specific mutant 
HTML-marked-up message implementations.)

A certification program would:

1) Encourage standardization and interoperability, as anything 
'certified' would be pretty much guaranteed to interoperate probably 
with the other certifications.

2) Indicate (through 'recommended' features in each year's 
certification definition) features which are not yet required for 
certification but which will likely be required in the following year.  
(Including experimental JEPs.)

3) 1 and 2 together; instead of spending effort making an 'interim 
solution' specific to your client while there is no clear 
non-experimental solution, all the client authors striving for 
certification and interested in a feature would thus have an incentive 
to concentrate their efforts on making a standard.  The JEP process is 
supposed to be driven not only by the Council but by the community, and 
this would drive community action.  Let's say someone wants a webcam 
solution in their client, but the only webcam JEP is Experimental and 
unfinished, not in a state where it can yet be implemented; if that 
webcam JEP is on the 'recommend' list for certification, then instead 
of going 'well, that JEP will not be Draft for a long time so I will 
just make my own client-specific solution for now,' the developer has 
an incentive to really push the JEP process forward, flesh out the JEP 
and so on.  Someone wanting certification is not required to implement 
the webcam JEP or participate in moving it forward, but might want to 
watch it if it is a potential for, say, the next year's 'Jabber Media 
Client' certification or whatever.

(This is not to say I think webcams will ever be a requirement on any 
certification, but I needed an example to pull from thin air.)

> If we had this certification proces I don't think the number of 
> clients who would have implemented those obsolete ways would be that 
> much greater either. The very reason those ways are declared obsolete 
> is cause a large part of the developers do not agree with the methods 
> used. Nor would we have more clients who adopted the new ways (because 
> these are limited by others factors, the JEPs are still new, server 
> infrastructure is still missing (eg. IBB)), nor would it have sped up 
> the creation of new JEPs (having an installed base of the 
> old-now-obsolete experimental JEP that is also "certified" won't do 
> much good there!).

To uses your example, let's say that the old avatar specification was 
'certified' one year, and then it's found to be bad, and it's replaced. 
  Now you put the new avatar specification into the certification; those 
who want to keep their 'certified' status implement this.  Those who do 
not implement it do not get certification again.

I would say the problem is twofold.

First, there is not a direct incentive to work on pushing JEPs forward 
-- implementing them, experimenting, finding their flaws and strengths 
and thus revising them so they mature -- and in fact (as has been seen 
in this thread), there are developers who actively /discourage/ people 
from implementing Experimental status JEPs, meaning they sit and 
languish.

Secondly, there is no direct incentive to update to more current JEPs 
(save for interoperability) when ones go away.  With existing clients 
doing the old-style deferred avatar method, I will bet you that many 
will not consider it a priority to move to the newer avatar 
specification when it gets finished, which does hinder the adoption of 
newer protocol extensions.  In fact, this state of affairs encourages 
adoption of OLDER methods; if a new client author comes in, and wants 
to do avatars, and finds only one other client does the new pubsub 
method but five or six use the old method, I suspect the author in 
question is going to implement the old method as well.

> Such a certification could have great benifits. Even if it won't speed 
> things up much, it would certainly enable the Jabber community to grow 
> as a whole (eg. look at the recent flare up in the PubSub discussion). 
> I would be carefull with what you call certification though, writing a 
> profile for clients and what they should implement is one thing, 
> checking wether a client entirely adheres to that specification *that* 
> could be called certification, but that is a difficult and costly 
> proces.

Hence why you need the Certification Board to manage this, hence the 
original proposal.  And yes, it isn't that it could be "called" 
certification, that /is/ what was intended as certification. ;)

> Just having the specifications for the different profiles (as agreed 
> by the major participants with an intrest of forming these specs) and 
> some organizing for interop. testing could still get you a lot of the 
> benefits! (As Stephen Pendleton suggested, real certification might 
> become an intresting commercial opportunity)

Interoperability testing and standardized featuresets is a lot of the 
motive behind this, but my experience with other projects in the past 
is that something like a 'Certified' badge (and some kind of benefit to 
go with it) would drive the standardization and interoperability better 
than just saying 'hey, let's make it all work together.'  You catch 
more flies with honey than debate, or something like that, to mangle a 
metaphor.

	--Rachel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <https://www.jabber.org/jdev/attachments/20040618/59290c49/attachment-0002.pgp>


More information about the JDev mailing list