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

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
  • Why does this matter?
  • How do we get users? (Get major application vendors to
  • 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

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

and here
and over there
and also over here
and that one
as well as this one
, and don’t forget
this one
, and
, 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

  • “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
  • Linux would benefit if it had a single component
  • The point of this entire article is component



Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends, & analysis