Thoughts on Web 2.0, etc.

Web 2.0, among other things, would include a more advanced client side development model than the current HTML / CSS / Javascript approach.

Web 2.0, among other things, would include a more advanced client side development model than the current HTML / CSS / Javascript approach. Traditional web programming technologies, though powerful, were not designed for the kinds of applications we build today, and hence, can be complicated to create.

The problem with new web 2.0 technology, however, is one of reach. How do you build a web 2.0 application while serving the vast majority who still use web 1.0 technology (which to my mind, is HTML / CSS / Javascript). Flash, a nominally Web 2.0 technology, has already passed this hurdle. How does a new technology compete with an entrenched Flash?

This is why, as I think about it more, the one-two punch of Silverlight and Volta is so interesting (though whether anyone at Microsoft besides me is thinking this way is anyone's guess). You can write every application as a Silverlight application, and using Volta, be assured that it will run on every web 1.0-capable terminal...which includes every Internet-connected device designed for user interactivity.

Other issues exist, particularly for Microsoft. The technology is there. Silverlight, based on my testing experience of it, is simply better than Flash, based as it is on .NET 3.0 / WPF (a technology which vastly improves the application development process). Further, Volta would let me write the applications today irrespective of the installed base of Silverlight-compatible renderers.

Technology alone, however, is not enough. Two big concerns were expressed in past Talkbacks to posts on Silverlight: a) that it may not be truly cross platform, and b) that Microsoft can't be trusted not to yank the rug from under everyone when it suits them.

Item a) seems well handled, with variants for all major platform either in existence or shortly around the corner (and from an acceptability by the community standpoint, having the Mono folks do the work does make sense, as some Talkbackers noted on Monday). Item b) is more difficult, as Microsoft does have a history as one of the most aggressive companies in software.

Companies are supposed to act in a self-interested fashion, but when you get as large and powerful as Microsoft, pure self-interest can start to have larger negative consequences. Every Microsoft action has massive economic consequences for outside companies. It has occurred to me in the past that similar problems are faced by large and powerful nation states, such as the United States.

I picked up "The Age of Fallibility" this past weekend, a book written by George Soros, the famed financial speculator who was born in Hungary and now runs a network of institutes around the world dedicated to the promotion of the "open society." He had this to say about how dominant nations such as the United States must handle their power:

Globalization has made the world increasingly interdepenent. Mankind faces challenges that can be met only through increased cooperation. The United States is not all-powerful, as we have discovered to great cost in Iraq, but little can be done in the way of international cooperation without the leadership of the United States, or at least its active participation. This places a special obligation on the United States to show concern for the well-being of the world as a whole. The rest of the world does not have a vote in Congress, but it is Washington that decides the fact of the world. In this respect, the situation is reminiscent of the time when America was a British colony and subject to taxation without representation. Now that the United States has become the imperial power, it bears a unique responsibility for the future of the world.

Granted, this isn't the EXACT same thing (software companies aren't usually considered to be responsible for the "future of the world"), but Microsoft certainly plays a disproportionate role in software. They can make or break a technology, and pushing a new technology standard is very hard to do without their buy-in.

That breeds resentment, which means Microsoft must, oddly enough, act in more multilateral a fashion than they might if they were a much smaller company.

Standardizing early (which doesn't mean that the technology can't still evolve), and making sure every technology, however small, is extensively documented and available for others to use are first steps. When computing was less important, keeping protocols and formats private was somewhat acceptable. With the software market the size it is today, being open is a lot more important. Computing is just too criticial a task for it to be otherwise.

Such an approach is good for Microsoft and good for its competitors. Microsoft benefits from ensuring its technology is the de facto standard for the long term (think Philips and the CD format). The non-Microsoft world benefits from access to the technology that is used in the largest software ecosystem in the world.

Yes, they COULD use standards cooked up by groups disconnected from end users and real customers...but why? That assumes that those groups necessarily know more about real user needs than Microsoft, who DOES have direct links to real world customers.

Microsoft will use those standard where they make sense, and roll their own when they think that makes more sense. In other words, Microsoft shouldn't as a matter of principle avoid such standards, but neither should they feel obligated to implement every one the "community" decides to claim as their own...such as ODF.

This is part of the reason I find the fight against OOXML so useless. Microsoft is finally doing what people have long demanded they do, but the battle is so ingrained in some people as the way to respond to Microsoft that OOXML standardization must be stopped at all costs. Some people have a vested interest in Microsoft remaining the object of their hatred, it would appear.