These kinds of briefings often give a good sense of the author’s model of the world, especially when he tries to paint visions.
Clearly Gates has been incredibly successful; but, in my humble opinion, he is showing his age. Perhaps he is thinking about turning 50 (on October 28 this year). Maybe he needs time off or even a mid-life crisis to break out of what seems to be some rather old-fashioned thinking.
The main point readers are likely to take away from Gates’ article is that using the same language as everyone else ensures interoperability. While this is obvious to most people, Gates apparently believes it is not obvious to his customers. This is sad and, for him, dangerous. There is nothing worse than being told something that you already know, by someone who doesn’t!
As Microsoft struggles toward some interoperability, every time the CEO (let alone the CIO) of a major corporation who is thinking about system interoperability puts a compact disc into a CD player, he is liable to be struck by a thought: “Everyone from EMI to Virgin to Sony, Philips, etc. seems to be able to make CDs costing very little which work with CD players made by everyone from JVC to Nakamichi to Sony. How do they do that? Why can’t the software people — who are taking loads of our money — make our systems work together? Maybe this software is complicated stuff!”
Worse, for Gates, the CEO’s next thought is likely to be, “Wait, everyone from Mozilla to Opera to KDE to Microsoft, Apple, etc. seems to be able to make Web browsers costing nothing which work with Web servers made by everyone from Apache to Sun to Microsoft, Apple, etc. — and that is software too! So, tell me again why those guys can’t make our systems work together!”
Over-egging the Cake
Gates’ email says it is not enough to adhere to a specification. Of course, it depends what the specification says. HTTP and HTML seem to have done a fairly good job of enabling tremendous interoperability on the World Wide Web. And before that, and underpinning it, there are the specifications for the Internet itself (TCP/IP, DNS, etc.).
The email refers to protocols in passing, but then focuses on eXtensible Markup Language (XML), as if this is a solution. The problem is that Gates seems to be rather out of date: He understands the need for interoperability (doesn’t everyone?) but he is over-egging the cake. XML is important, but it is only a language. It doesn’t dictate what is said in the language; that is the responsibility of its users. XML schemas (which replace DTDs (data type definitions)) are a way of agreeing what can be said (that is the syntax of the data) and WSDL (Web services definition language) applies that to the syntax of the message. But, even more importantly, none of this gives a clue as to what you mean when you say something in the language — that is, the semantics of the message.
This is in contrast to something as widely used as HTTP which specifies (ftp://ftp.rfc-editor.org/in-notes/rfc2616.txt) not only the fixed set of messages that can be sent (crucially, in both directions), but also, for the set of requests sent, the allowed set of responses that can be returned and, equally crucially, their meaning.
It is very important that is also goes on to specify the behaviour to be exhibited by applications playing different roles (in this case: clients, servers, proxies, gateways, tunnels and caches) and the behaviours are all different (and sometimes opposites) so that the whole decoupled system works correctly. So, it defines a protocol and the detailed behaviour of systems using the protocol. Gates mentions the importance of protocols, yet offers no idea of how protocols might be defined in XML.
Microsoft’s corporate customers have been through years of spending money on a wave of EAI (Enterprise Application Integration). Now they are being led into the next wave with the ESB (Enterprise Service Bus) based on the grandly named SOA (Service Oriented Architecture). No doubt, there will be more in this wave … and more waves.
Yet, at the same time, Microsoft customers see extremely large global systems (like the Internet, television systems, music systems, telephone systems, etc.) all interoperating reasonably happily and working well most of the time. Along the way, each of these systems (except, so far, the Internet) has managed a migration across at least one significant step in underlying technology. It does not take much of a mind-stretch to think (as above): How hard can this really be?!
Corporate customers don’t need Gates telling them that interoperability is important and that another language (eXtensible Markup Language) has come along and will solve all their problems.
Bill Gates needs to get out more!