Saturday, December 13, 2008

XML and Richness of Capability

XML (extensible markup language) has been around long enough, more than ten years, to span a generation of employees so it's becoming a technology norm in a lot of respects. The explosion of blogging, RSS and other online services is empowered by this technology. It has its roots in SGML (standardized general markup language) which has it's roots in something called GML that was invented at IBM in the 60s apparently. SGML is widely used in the printing industry and HTML borrowed SGML for it's structure. I wonder if that helped XML and HTML converge over time.

What XML does is very simple. It developers the tools to organize and describe nearly any type of data with a common set of tools. For example, if I wanted to build an application that organized my fishing logs I could build an XML structure that captured every attribute and element of any given log so that they could be easily stored, displayed, shared or queried. The description of this type of XML document is captured in a document type definition or DTD. Other applications can then parse the DTD and know how to store, display share or query the log also. This makes the data self describing and self organizing.

The real power here is that using these techniques and tools creates rich sets of possibilities that can lead to rapidly deploying the data for new capabilities. This richness of capability is what gives a technology or innovation staying power in a rapidly changing world. For example, UNIX has a long and distinguished history going well back into the 60s. The ease with which a UNIX platform can be used to develop and deploy complex services is the key to it's long-term success. At it's heart is the command line interface, a set of simple core commands that can be used to accomplish huge varieties of computing tasks. I have seen healthcare applications built out of the UNIX command line interface by itself. The UNIX command line provides rich capabilities for developers and administrators alike.

Richness of capability enables agility, the ability for a technology to solve a wider set of problems that also extends its useful life and increasing its value. So a rich capability technology probably isn't easily identifiable right out of the gate. Take Java for instance. When Java first came out it promised to solve a wide array of problems including platform dependence, network portability and to further mainstream the use of object oriented programming. It was moderately successful in all of these endeavors but in the final analysis really just becomes another programing language and environment, albeit a popular one. Its capabilities are no more or less rich than other language/environment combinations like .net.

I plan on exploring this idea in future posts. The hypothesis invites a variety of questions like...
  • How might you define or measure a rich capability?
  • What role does richness of capability play in the evolution of technology?
  • To what extent are rich capability technologies incremental or wholesale changes to their previous versions or predecessors?
  • What percent of disruptive technologies tend to be rich capability technologies?

No comments: