I've long been a participant in the IETF, and a strong promoter of its standards, and its efficacy as a way to get vendors to implement the same thing for interoperability's sake. But lately, I've begun to consider whether open source software is going to overshadow the role the IETF has traditionally held, and change how “standards” are created. “Code trumps all.”
What made me start thinking this was when I checked in with the progress of the Eclipse Communications Framework project (also see the beta version of a new project website here). While the ECF is far from a perfect example, what started to dawn on me was that these guys are moving pretty fast to implement a nice way for collaborative communications to be realized in applications, and if they're successful, and the code is in open source, it could become the defacto standard for how application software does collaboration in a few yesrs.
The new idea for me here was when I looked at how fast the ECF is moving to affect how software is working, vs. how quickly (nee, slowly) the IETF SIP, and in particular the SIMPLE work has impacted collaboration software. The ECF guys are creating a framework that is protocol independent, but their first (and compelling) implementations are done using the XMPP protocol.
Technorati Tags: Collaboration, Software
The Eclipse ECF team is not the first to build open source XMPP software. But they're the first I've seen to actually write generally-available code that is being used as a foundation for lots of different applications (vs. just an Instant Messaging product), and a couple of things stand out in their work that are affecting my thinking:
- Protocol choices are often not relevant to upper layers of functional code. The ECF guys are building a framework that can use XMPP, AOL, SIP/SIMPLE, even HTTP (with some functional loss) to encapsulating functionality like messaging, shared editors, etc. The point is that they're finding ways to bend underlying protocols to provide desired application-level function.
- Pragmatism wins. XML and HTTP are already embedded into many applications, and it's easy for coders (e.g. those writing communications applications) to leverage that. And production XMPP servers are widely available for free use on the Internet to use as a way to get applications working. Coders use the easy, pragmatic path, because they want to get things done, not worry about service definitions, etc. SIP/SIMPLE, by contrast, has none of these pragmatic problems solved. (Ignoring the SIP/SIMPLE firewall traversal problems for the moment.)
- Code trumps everything. Writing code that works, and contributing it to the community is more important than virtually anything else in advancing open source efforts. More so than concepts, ideas and definitions. And the community review / comment process makes sure that the overall design and architecture is high quality, so the code — and the concepts it embodies — is what defines the “standard”.
If I extend these observations abstractly into the future, it makes me wonder: when will the open source community start to push past the IETF in terms being the overall guiding hand in how technology “standards” emerge?
Now, to be clear, much of what is being built in the open source world is taking advantage of foundations laid by the IETF. We wouldn't have most of what we have today on the Internet if we didn't have the IP stack, and (importantly) some higher-layer protocols like http(s), etc. But if I look back on the XMPP experience at the IETF, it didn't receive nearly as much attention and effort as SIP did, and yet I see really crucial, generally useful code emerging at a functional level using XMPP — more so than with SIP.
And, maybe my comparison of XMPP and SIP isn't fair. SIP did set out to solve a lot more problems than XMPP did. (Though I think the comparison between XMPP and SIMPLE is more fair.) And I'm sure that the IETF will/should always define fundamental stuff that the Internet runs on.
But I'm starting to feel in my gut that when it comes to things the IETF has historically worked on that live “higher” in the IP stack, like mail, messaging, and application-level things, its possible the IETF is going to be challenged in its effectiveness, and relevance, by the the bazzar that will be moving fast to build ways of doing things that are well designed, and where the code itself is the specification and the standard is an observed, de-facto standard (vs. an adopted one).
The IETF has long had a phrase that IETF work is based on Rough consensus and running code. We could be approaching an era where the defining phrase of technology standards is going to be Widely-available, high-quality, extensible open source code that is widely adopted, widely contributed to, and is the consensus way to do the work required (where the subtle shift is from consensus first to code first.)
No insult intended to my IETF friends. And I'm not certain my opinion is well enough (in)formed yet to make this feel like a strong prediction. But in my gut I feel we're in the midst of some sea change about how standards arise.