Microsoft's Problem

If I were in Ray Ozzie's shoes I would apply something like the The Hutter Prize for Lossless Compression of Human Knowledge to the entirety of MS's software suite. This, of course, requires making a rigorous spec for testing purposes.

Make the engine, upon which the winning succinct byte code runs, a new W3C standard browser programming language (or at least virtual machine) and reduce the Microsoft OS CD to those components required to create a web-delivered application platform using the winning engine. Such an engine would, of course, have some features that dynamically encached expansions (and/or "memoizations") similar to the Hotspot optimization technology that originated with the Self programming language (and was later adopted by Sun's Java Virtual Machine). Hence it would make sense to have the OS CD contain a partially pre-expanded/optimized code base.

Then, for delivery of software services to pre-existing platforms, create a legacy port of the services code to pre-existing W3C standards like XForms implemented in a downloadable ECMAScript Client/SOA library in a manner similar to the way TIBET(tm) does. The idea is to go "Live", ie: web-delivered, with a fundamentally new W3C base (whatever engine won the prize) but support legacy W3C environments for migration.

Again, this prize-oriented strategy would, of course, require a rigorous specification of the software services so the testing could be largely automated.

This approach addresses Microsoft's 2 biggest problems deriving from the same fundamental reality: Everyone has needed their OS to interoperate with the bulk of the information industry.

The first problem is ethical and really goes beyond the scope of my professional opinions to my public opinions about the support of property rights. Suffice to say, I have no trouble with someone who goes after a natural monopoly position and succeeds. I have a problem with someone who then refuses to use that position of success to fix the bug in the society that made them inordinately rich and their technology inordinately influential.

The second problem is technical, which is what my argument here is really all about.

Basically Microsoft's code bloat problem derives from its monopoly position. This may seem like a truism since all of the software "profession" suffers from code bloat, but only Microsoft can take this to monopolistic proportions -- proportions that make Ma Bell's monopolistic complexities of yore look Spartan.

So Microsoft has this problem and it has many programmers (contributing to the code-bloat problem). It also has mountains of cash.

So how can Microsoft bust its own monopoly position turning its many programmers (many newly laid off!) and mountains of cash into succinct code?

Monetary Incentives for the Programmers. For example, the original idea for the Hutter Prize was:

S = size of uncompressed corpus
P = size of program outputting the uncompressed corpus
R = S/P (the compression ratio).

Award monies in a manner similar to the M-Prize:

Previous record ratio: R0
New record ratio: R1=R0+X

Fund contains: $Z at the time of the new record
Winner receives: $Z * (X/(R0+X))

Something similar can be done with the size of the binary that passes the entire suite of tests for Microsoft's software suite.

What happens very rapidly is the programmers first apply their skills to maximally refactoring. What falls out is a series of legacy API layers written atop a tight core.

They'd have to spend more money on code testing to verify the compressed code-bases of the competing teams actually worked to spec but the results should be quite gratifying.

Hosted by