Breaking the Bulb?

2004-09-13

Today I spent some time catching up on a long JDEV mailing list thread entitled the state of our codebases, part of the continuing ferment in the Jabber community about where we are and where we're going. It strikes me that part of the challenge we face is that the Jabber community is trying to do at least five things:

  1. develop standards (like the W3C or IETF)
  2. write servers (like the Apache Software Foundation)
  3. write libraries (like the Python Software Foundation)
  4. write clients (like the Mozilla Foundation)
  5. offer IM services (like AIM, ICQ, MSN, and Yahoo)

And not to make excuses for our performance, but we're trying to do all that in the face of stiff competition from AOL, Microsoft, Yahoo, and IBM. Sheesh!

I think part of the lesson we need to learn here is the need for focus. We can't be all things to all people, and others may be able to do a better job at some of these tasks than we've done so far. For example, the Apache people seem to write pretty good servers (at least based on market share: the flagship Apache web server has 65% market share or so); so perhaps the Apache Software Foundation is the best place to work on a Jabber server. The Mozilla people seem to write pretty good cross-platform clients for web browsing, email, even calendaring; so perhaps the Mozilla Foundation is the right place to work on a Jabber client for Windows, Linux, and Mac (Jabberzilla, anyone?). The Python and Java people write (or at least standardize on) pretty good libraries; so perhaps folks need to look into the Python and Java processes. Companies like Earthlink and Google offer pretty good email services; so perhaps they are the ones to deploy IM services, rather than volunteer efforts such as the servers running at places like jabber.org and amessage.info.

An alternative would be for the Jabber community to do more of this work itself but in a more organized manner by putting the "S" back in the JSF and having the Jabber Software Foundation run certain server, library, and client projects. As is well-known, I'm not a particular fan of centralization, the JSF doesn't have a history of running software projects (let alone successful ones), and in fact the JSF has stayed neutral (some might say too neutral) with regard to the software that is developed in the Jabber community. Could the JSF develop a really good server and client? It's possible, but it would require good project management (for which I don't see a lot of volunteers), strong initial software design (which is perceived to be lacking in jabberd 1.4 and jabberd2), and a fairly major cultural shift in the Jabber community generally and within the JSF specifically (in fact it might even necessitate a split between jabber.org as a software group and xmpp.org as a standards development group -- shades of last year's debate).

A third alternative would be to accept the status quo: lots of little projects making slow progress but mostly remaining feature- and protocol-incomplete, major projects stagnating or being abandoned (think jabberd 1.4 and jabberd2), and continued calls for someone to participate (often from people who comfortably work for commercial organizations, some of whom have never contributed a line of code or documentation to the community). Personally I don't think we can continue this way -- not if we intend to make any kind of dent in the market and mind share held by AOL, Microsoft, Yahoo, and IBM.

I don't claim to have all the answers. But we've got some hard thinking -- and hard work -- ahead of us.


Peter Saint-Andre > Journal