Saturday, October 11, 2008

On Linux as an operating system

Linux is a system kernel and it is in wide diverse use. But Linux is only a kernel -- it is not a complete operating system. Many pedants will argue this but completely miss the point. I expect this to happen. I promise not to sigh when I see it. I believe that there is a bit of myopia in the various Linux communities concerning how they relate to their various operating systems, and how they perceive the "failure" of Linux operating systems to be adopted by the mainstream. Instead I say they have succeeded quite well -- but "they" is crucial here.

It really isn't appropriate to discuss Linux as a singular operating system -- there are a large number of divergent Linux distributions each with significant application programming interface (API) differences. As long as the mantra remains "Linux", there will not be a consistent user interface experience, and there will not be a critical mass which draws commercial software developers (as they are drawn to Windows and Mac OS X). If a significant subset of the Linux community truly desires greater adaptation of a particular Linux distribution and the formation of a third major desktop operating system with commensurate mindshare and/or marketshare, they will begin to chant its name instead of "Linux" and reconcile that Linux is a spectacular system kernel but only a system kernel and not a desktop operating system. They need to promote the whole and not just a part.

Incorrect:
"Hello Mr. Martian. I would like to introduce you to my friend, Matt. He is a foot like me!"

Correct:
"Hello Mr. Martian. I would like to introduce you to my friend, Matt, he is a human like me!"

Incorrect:
"What OS do you run on that PC?" "Linux"

Correct:
"What OS do you run on that PC?" "Ubuntu"

Correct:
What kernel do you run on that PC?" "Linux"


Once they promote the whole and not the part, they still have their work cut out for them. My first advice would be to make sure they back a desktop user interface api that has 0 lines of code from the X11 distribution -- second, base the desktop api on an object-oriented compiler efficient language such as Objective-C (first choice) or C++ (static typing makes UI development bulkier for everyone). For geeks aghast at Objective-C.... ok I am just going to sigh here. *sigh*

No comments: