No need to add to the Microsoft - Yahoo speculation frenzy, as plenty of others will do that for the remainder of this week (though if anything pops into mind, I'll certainly talk about it in these pages). Instead, I'll return to the topic I had planned to write about last Friday, before news of the deal hit the airwaves like a train running through a concrete barrier, which was: what should be Microsoft's stance with respect to standards?
The topic was inspired by something John L. Ries, a longtime talkback participant who rarely agrees with anything I say, noted in a comment to a previous post on the subject of Microsoft antitrust oversight. In response to a question asking what it would take for him to stop being concerned about Microsoft and its business practices, he said:
When the primary selling points of MS software are the price/quality/features/terms of the software, instead of "compatibility with everyone else" or "it's illegal to use competing products", or other forms of fear, uncertainty and doubt (original meanings of those words), then MS will no longer be a threat to the free market and will no longer require court supervision or consumer boycotts to keep them in line.
First things first, though Microsoft did certain things in the early and mid-90s that were questionable, I don't think it has ever been "illegal" to use competing products. Microsoft has never banned third party products installed by consumers (though they did try to use licensing terms to block competing browsers, something they are now constrained from doing by antitrust rulings), and if they did, Firefox would not be constantly eating into Internet Explorer market share, and Intuit wouldn't have run circles around Microsoft's past business software efforts.
Microsoft, in particular, actively encourages third party development. They don't spend all that time making frameworks and APIs for its own exclusive use. Customizability and extensibility has been at the center of the value-add since the company's earliest days.
As for the other bits, as I noted in a previous blog, I believe that Microsoft needs to be a lot more "open." Open, however, does not mean Microsoft should exclusively use internationally-ratified standards, or avoid creating its own. Heck, I don't even think that it is wrong for Microsoft to make extensions to ratified international standards (though we can debate the proper shape such extensions should take).
What they should always do, however, do is document the heck out of those standards (whether home grown or extensions to existing standards), and where sensible, opt to get certain stages in the evolution of those home grown standards "frozen in amber," as it were, by international standards bodies. Interoperability, a natural byproduct of openess, must be a core design criterion, and not just because it is a "nice" thing to do.
Though open source might clamor most for it, theirs is a voice that speaks to a need for more transparency in devices that only grow in importance with every passing year. Constituencies usually have some basis in a real need in politics, and that applies equally to software constituencies, who to my mind are simply at the vanguard of a wider demand for more transparency in the computing products we use on a regular basis (I don't think they created the impulse, though they are instrumental in accelerating change).
I also think it only makes sense for a company that lies as much at the crossroads of computing as Microsoft to value openness. Though it might be acceptable for smaller companies to engage in certain opaque practices (acceptable, not recommended), a large company that has as much control and power as Microsoft shouldn't engage in such things. Besides serving as a barrier to the growth of products going forward (like I said, openness is more important to modern consumers), it breeds resentment and thus invites unwanted government scrutiny. Though I think such scrutiny often oversteps itself (subliminal man says: "EC, EC, EC, EC, EC"), complaining about that overstep is like complaining that trees aren't springy and flexible when you crash your car into them.
But, it's worth reiterating that I think it is perfectly acceptable, and even a GOOD thing, for Microsoft to do what is typical of Microsoft, which is to make its own standards. Firstly, it is more reflective of the fact that Microsoft is a corporation that needs to differentiate its products, a point made repeatedly by Anton Philidor in my last blog post. Standards competition is as important as (and a necessary part of) software competition, in my opinion, and forces standards to evolve to accomodate more features faster than if there is nothing challenging a given standard. Standards, like software, evolve in response to external challenges.
I remember all the blog-based bluster that greeted Microsoft's announcement that they would use home-grown, XML-based XAML as the foundation of their future UI technology instead of basing their efforts on something like XUL (the XML-based user interface language developed originally for the Mozilla / Firefox web browser). Besides the questionable strategy of a company basing its core user interface APIs on a standard largely controlled by an outside body, XUL made no sense within the context of Microsoft's API efforts, as XAML was designed specifically to map to Microsoft's .NET framework (which lies at the heart of those efforts). That's a valid design decision, in my opinion and one that a company with an interest in creating a cohesive and consistent framework should make.
That doesn't mean I think XAML (as an example) should be closed, undocumented, and not available to third parties to implement on their own. Being open means providing the information that enables others to interoperate with your products. It doesn't, however, imply that a company should only use standards made outside the company.
So, what exactly am I saying? Basically, I think Mr. Ries may be placing the hurdle a bit too high, putting it at a level that no private company could ever achieve. Every company needs to give itself an "edge," and that often means developing key technology in-house. Customers (and Ries) are right, however, to expect that that technology is made available to people outside the company, at least when the company is of the size and stature of a Microsoft (I would argue that small companies are wise to follow the restrictions I outlined, though the effect, should they fail to do so, is less pronounced).
As to Ries question as to whether my stance on antitrust has changed over the years, I'll leave that to a later blog post. This one is long enough as it is.