Losing Sleep Over Java

Jan 6, 2022
An exchange between Bill Gates and then-Microsoft CTO Nathan Myhrvold. This is from an account that tweets emails about tech strategy that have surfaced publicly due to lawsuits. 

I found both Gates' concern and Myhrvold's response to be fascinating. Gates was half-wrong, the threat was not imminent, but would take place over the next 15 years. It was JavaScript/Web Browser that ultimately created a "competitive operating system" (ironically, JavaScript first appear in the Netscape browser a few months before this email).

What struck me the most is that there are so many parallels to what is going on in software development today.

At the moment Java is expanding into a vacuum. It allows you to make cool web pages, and that is a very attractive thing for people. It gives programmers something new to learn, book people something new to sell books on, software tool companies a way to issue new development tools etc.As you and know very well, this sort of widespread interest can become a self fulfilling phenomenon, because programmer attention creates programs. Some of these will be successful and that only fuels more participation in the phenomenon.

This reminds me of the current state of development with crypto. There's now over 18,000 developers working on "web3" (source). Quite possibly a self-fulfilling phenomenon.

I think that the risk of Sun really taking the OS franchise away from us is much lower than the risk that they cheapen the entire business. They are so hell bent to give things away, and there is so much cross platform ferver that it will be hard for them or others to harness this energy toward a single platform In the limit, they can make the web totally OS agnostic - but there will still be other things that motivate one platform versus another.

This reminds me of many commercial open source companies today. Focused on satisfyingly hard engineering problems. Giving away some code starts off as a distribution hack, but slowly creates a rift within the company (between sales and proprietary feature developers against OSS developers). Often times these companies miss key aggregation points or build a community that actively rejects proprietary add-ons.

We are in danger of losing a new market which will grow at a pace which is very rapid indeed. This would be a tragedy to have happen to us, but it is different than a direct assault on our core asset, and our response must also be different.

I think this is how Google and Facebook form their strategy today. At Google, everything is about building a moat around the core asset – search and ads. See Commoditizing Your Complements in the Cloud Era.

Over reliance on “embrace and extend” can lead to what I sometimes call the relentless drive to come in second, which does not help much in a winner take all world.

While the internet didn't turn out to be winner-take-all, there's an interesting lesson here on how incumbents view disruptive technology. It reminds me of the Story of FM Radio, where RCA successfully slowed the adoption of FM (over AM) until the Television was ready for mass adoption.

Again, this need not be some super hard technical problem - it is more about being creative and finding an opportunity. Here are some examples (none perfect).

- Virtual worlds could be such a thing.

Even Myhrvold was fooled by the ever-elusive metaverse.

Leverage the web to provide dramatic new functionality for old applications. The key example here is the “My Workspace” notion of totally abstracting storage on the net. This would be a dramatic change for users - storage abstractions are one of the hardest things to use in current PCs and we can make this all go away.

Looking at this made me realize that the development of the web browser actively rejected this path – there is a hard write boundary between the OS filesystem APIs and the web browser. Maybe this was intentional. (Chrome has some support as of last year for its File API).

History doesn't repeat itself, but it often rhymes

(but also)

History is a nightmare from which I am trying to awake