Dave Whitinger: Component Architectures Decide the Future, or The Desktop Decides The Future, Part 2May 26, 2000, 22:05 (35 Talkback[s])
(Other stories by Dave Whitinger)
Many, many months ago, I wrote an article for Linux Magazine, where I make opinions and predictions based on what I believe are important issues affecting the Linux community. Yesterday, Linux Today posted this story through their newswire, opening it for commentaries from the community. A massive amount of people simply could not grasp the point I was trying to make, so the article you are reading has been written in order to attempt to make my point understood. I'd love to get feedback on this edition of the article, however, my only requirement is that you carefully read the words below before registering your opinion. I will give you the same courtesy.
There is a conclusion at the end of this article.
Here is a rough outline of this essay:
Everybody agrees that Linux is the champion on the server, and is making nice strides in the niche areas like embedded computing. This is fine and dandy, and I love seeing it happen, but what about my needs?
I have been using Linux exclusively as my desktop system(s) for 5 years, and I see my way of life being more and more threatened every day. Why is it threatened? Read on...
Most agree that Linux is currently not properly suited for the task of being used every day by average Mr. and Mrs. John Q. Public computer users. Is this a problem? Yes. Does this currently affect me? Not really, no. Will this affect me in the future? You betcha.
Why does this affect the future? If Linux has a small amount of users (low marketshare), then big name app vendors will never port over to us. If certain applications (killer apps that everybody needs) come into existance without ports to Linux, then we are sunk. In order to make use of this killer app, we will have to keep a Windows partition on our computers. If we have a sizable market share, however, we have a much stronger chance of getting that port.
So here is a chicken and egg situation. Without users, we cannot get big name vendors to port. Without big name vendors porting, we cannot get users. We have the advantage, however, because we realize that there are other vehicles that we can use to encourage vendors to port. Here we go:
Standardize. Ughhhh Groan!! I can see thousands of people sitting straight up in their chairs, ready to strike out at me. Well, before you skip down to the talkback section below to issue me a strongly worded flame, check this out:
We currently have a graphical standard. It's called The X Window System, and is implemented for Linux by The XFree86 Project. Using X, programmers may develop graphical applications that they are certain will compile and run on any distribution of Linux. Everybody ships X. Everybody has standardized on X. So, say somebody else comes along and develops a new piece of software (let's call it The Q Window System) that looks like, acts like, and performs the same functions as X, but wasn't compatible to program to on an API level. Now imagine that half the Linux users on earth are using X, and the other half are using Q.
Probably, nobody here is going to disagree with me that that would be a good thing to have happen. So let's move on.
Standardize on what?
Listen to me very carefully: I am not suggesting that we standardize on a single graphical user interface. I'm not even suggesting that we standardize on a single toolkit. I am suggesting that we standardize on a component architecture model.
According to Miguel de Icaza:
According to Daniel M. Duley (of Linux-Mandrake, working on KDE 2):
According to the Mozilla website:
The concepts laid out in the component architecture world are crucial to the future success of Linux on the desktop. Developers understand the idea of component architectures, and have been using it for years on Windows. When they look at Linux as a platform for their applications, one of the first questions will be: "What do you have in the way of components?". Giving these people a good and solid answer goes a long way toward bringing them into our world. It allows Mr. John Q. Corporate Software Lead P.H.B. to say, "Yes, they have this, which will allow us to build our application(s) in a timely manner. Let's proceed with the project."
What if we had a single component architecture that all Linux desktop environments used? It is technically possible, and will allow for the proliferation of re-usable components to exist all over the world, free for use for any software developer who would like to use them to assist him in building great applications faster. This is my point. A standard component architecture. Read more about it at the links found at the end of this article.