Linux Today: Linux News On Internet Time.

Dave Whitinger: Component Architectures Decide the Future, or The Desktop Decides The Future, Part 2

May 26, 2000, 22:05 (35 Talkback[s])
(Other stories by Dave Whitinger)

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:

The point of
this entire
article is
component architectures.
  • Introduction
  • Praise for Linux's strengths
  • Reveal Linux's weakness (Linux has a problem getting users)
  • Why does this matter?
  • How do we get users? (Get major application vendors to port)
  • How do we get app vendors to port?
  • Suggestions for long-term success.
  • Conclusion

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.

"now if Linux
only had Quicken,
I think I could
switch completely..."
How do we get users to switch over? My opinion is that if we encourage (and enable) professional software engineering houses to include Linux versions of their applications, then users will be able to use Linux instead of Windows. Today, that appears to be the biggest barrier of entry for these users. Don't believe me? Examine this real-life quote: "now if Linux only had Quicken, I think I could switch completely...". Check out these talkbacks over here, here, here, here, here, here, here, here, here, here, and here, and over there, and also over here, and that one, as well as this one, and don't forget this one, and this , and finally this one. They all basically say the same thing. There are many more, but I got bored searching, and I think I've made my point.

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:

  • "Bonobo is a mechanism for creating reusable software components as well as enabling users to talk to the components through a standardized programatic interface (CORBA)." [1]
  • "Bonobo was designed and implemented to address the needs and problems of the free-software community for developing large-scale applications." [2]
  • "...component programming really goes hand in hand with the way Free Software is developed." [3]
  • "Component software also enables programmers to build larger, more complex applications by glueing different components together into bigger applications" [4]

According to Daniel M. Duley (of Linux-Mandrake, working on KDE 2):

  • "The main difference [between KDE1 and KDE2] is [that KDE2 is] heavily component based..." [5]
  • "KDE easily boasts the most extensive and complete component model support for Unix desktops." [5]

According to the Mozilla website:

  • "XPCOM is a lightweight cross platform COM work-alike. [...] It is the foundation for modularity in mozilla." [6]

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.


  • Linux benefits by having a whole slew of window managers (mine is WindowMaker).
  • Linux benefits by having a whole slew of text editors (I use vi, and I was on the winner team of the vi vs. emacs paintball tourney in 1998).
  • Linux benefits by having Mr. and Mrs. John Q. Public using it.
  • Linux would benefit if it had a single component architecture.
  • The point of this entire article is component architectures.


Dave Whitinger

Related Stories: