Operating Systems Are Business Opportunities

Most people around here know or at least know of Lisp and Smalltalk. So they appreciate that a small team of highly skilled programmers will outperform an ArmyOfProgrammers pretty much any day of the week. There's a difference between the widespread perception of cheap C++/Java programmers and the reality that cheap programmers create garbage.

Now here's the thing. Given that there's an even greater differential for "idea people", because GoodIdeasAreExpensive, it makes perfect sense to hire a single expert than to rely on an army of focus groups, businesspeople and cowboy coders who are about as likely to be creative as to have physics degrees. Now, what does any of this have to do with the prospects for new OSes? Patience, it's coming.

The thing is, there actually is an established, proven, process for finding good ideas out in the wild and turning them into revolutionary products. It was discovered by EricVonHippel and is used by 3M, hardly a small-time outfit. And this process starts first of all by identifying a future trend or other opportunity.

Now what do we know about OSes? We know that their form was established decades ago and that they have been stagnant for decades. We know that recent (30 year old) research hasn't really made its way into commercial OSes. We know that everyone hates them. We know that hundreds of millions of people use them. We know that hardware has advanced many orders of magnitude since OSes have ossified and will advance still further in the future. In fact, we know that computing has gone through several eras since commercial OSes fossilized (shared, dialup, broadband) and that we're perched on the brink of a completely new era (social, mobile).

OS research is dead. The market is dead. Competition is dead. Most people think that the situation is hopeless. This would be the same people that earnestly believe in ArmyOfProgrammers. After all the army gave us GrossDeficienciesOfUnix and Windows as they are today, what more could we possibly want?

Well here's the thing. If for some reason you're too thick to associate the putrid smell of the OS market with an overripe business opportunity, then there's still Step 2 of the Innovation process to appeal to. What's step 2? Identifying a problem that your revolutionary product or service will solve. In this case, the "problem" is that the OS market is stagnant due to network effects and lock-in. Well duh, this is a problem, not some immutable law of nature, so what you do is you move to Step 3, hunt down an expert in a related industry that's solved this problem.

And you know what? It actually has been solved already, by language designers. Smalltalk runs on top of both Windows and Unix. And you know what? Smalltalk is an operating system. As a general-purpose operating system, it's completely unusable; it has no security, it has no storage system, blah blah blah. But as a special-purpose OS to run the Smalltalk language, the Smalltalk OS is adequate. And you don't hear any Smalltalk programmers whining that you have to install the operating system in order to use the language, do you? Because they've solved the problem. And you can learn from that and solve the problem of getting everyday people to install a general-purpose OS different from Unix and Windows.

Creating a new OS isn't difficult, you just have to do it. Oh yeah, and you need to know what you're doing. Not in the technical sense of knowing how to do something, but in the much more important user-centered sense of knowing what to do in the first place. So it's obvious to see that Dennis Ritchie doesn't know what he's doing; Plan 9 is just more of the same. And also that RMS doesn't know what he's doing; nobody uses HURD at all.

Pardon my cynicism, but nothing is difficult, if you just have to do it. Taking over the world is simple, by those standards.

And I may be dense, but what is the actual solution? Smalltalk is great for writing Smalltalk, but not so hot if I need to open the MS Word document I got in my email. And installing Smalltalk is an order of magnitude quicker and less annoying than installing a new OS.

And while I'm at it, what IS The Right Thing to do in the larger user-centered sense? It's easy to see what it isn't, but...

Run your new OS as a subsystem on top of whatever OS people are already running, that's the lesson to take from Smalltalk and modern game engines which are really just specialized OSes. As opposed to the standard way of requiring users to install your OS over bare bones hardware and maybe providing an emulator, which may or may not work, to the OS that still holds all of their comfortably familiar applications. Yeah, because the typical user will really trust their entire computing experience to some OS they'd never heard of yesterday, rather than the OS they currently use which seems to work. That's the first lesson, to allow users to go through a continuous transition so that they can build up trust.

The second lesson is that it's all about the applications. People install the Smalltalk OS in order to write in the Smalltalk language, not to fiddle with the Smalltalk OS. People install game engines in order to play games. The standard attitude of OS writers - that people will install their OS just because they say so - is self-centered and arrogant. Is it a wonder these mad Doctors Frankenstein fail at getting their OSes adopted? It really shouldn't be, users usually don't do something without some kind of reason which they can comprehend.

If you want to update Smalltalk to become a general purpose OS, you need to give it certain functionality like an internal storage system, which doesn't need to be as broken as filesystems, and not merely access to external storage. It'd be nice if it had capabilities (ie, security) too. A useful GUI wouldn't be amiss. Squeak attempts to do the latter at least but it goes about it in such a way that it looks like a toy, and it provides neither internal storage nor security.


EditText of this page (last edited August 25, 2007) or FindPage with title or text search