Lately – every since the ePlugfest in Cambridge last month, in fact – I’ve been thinking about standards and interoperability between web applications. The ideal is that Elgg, Moodle, Gmail, 43things, Upcoming, Match, your university’s intranet portal, LUSID and Microsoft Outlook can all interact with each other, sharing data and resources as if they’ve known each other all their lives. Crucially, any new application that comes along should be able to play along too, without any modifications to any software.
Standards have been written. For eportfolios we have reams of XML; for CVs we’ve got a little more; for weblogs and social networking we’ve got small XML standards used everywhere. But that’s where it ends – developers have a schema to work to, but they’ve got to do the hard work themselves each time. Programmers don’t like hard work. Ideally they want to glue someone else’s code together while they watch a movie in the background. Preferably, although I might just be speaking for myself here, they want to do this with chocolate.
I’m beginning to digress.
Wouldn’t it be splendid if when a committee spewed out a massive schema and usage document based on a standard they’ve spent months hashing out, it also spat out a handful of libraries for the major programming platforms? Some basic implementations for .NET, PHP, Java, C and Perl?
For one thing, this would dramatically increase uptake. For another, it would increase compatibility across applications that had taken it up – no issues due to incorrect implementations, because the applications would be dependent on more or less the same implementation. If programmers still wanted to roll their own versions, they’d at least have something to work from, as well as data produced by many more applications in the wild.
Better than that would be a sort of standard library framework for social networking and broad “web 2.0″ functions – something that handles connections between people and objects for you. I don’t say this as a lazy programmer; I say this as someone who sees the value of some basic (simple) standards underlying more than one application. Imagine if Moodle and Elgg really did use the same underlying glue, and imagine if another programmer could pick up a toolkit and both quickly and easily create another tool that interacted seamlessly with them.
Small pieces, loosely joined. Without toolkits enabling other programmers to easily create other applications that play along – generic toolkits, not application-specific “interoperate with Elgg”-style libraries – we’re going to be waiting a long time for the ideal.