[ Back to Index of Web Works ] part of George's Web Site

Related Web Works


[Image]

What's Wrong With Today's Software -- Bloatware

The trend in today's software (personified by Microsoft) is to win the feature war at all costs. To accompish this, software companies jam pack their products with every feature the marketing department thinks the user could conceivably want, eventually spilling into areas the product was never meant to cover.

One example of this is a word processor. A word processor should only do word processing things: allow users to enter and format text, styling text, and maybe a couple of other things critical to getting your document out the door. It should not do stuff like:

* pictures and graphics * sounds * quicktime movies * mathematical equations * tables * charts/graphs * page layout * email

The problem is, most of today's word processors try and do all of these things, and end up doing them all poorly. Trying to cram all these features into the program, with the noble intention of making their product the one-stop solution for their users, ends up creating what I call "bloatware." The program is bloated, slow, hard to use, and takes up 60MB of disk space.

Another good example of bloatware is Netscape. Netscape started out as a simple, robust browser used for surfing the world wide web. With each new version, Netscape added more and more features, trying to make their browser do everything related to the Internet. Things like:

* ftp * USENET news * email * gopher * java * Acrobat * too many other useless things to mention...

Do I use any of these features? Maybe I do, but Netscape's implementations are usually buggy enough that I have to turn to another software package anyway to get the job done right.

What is OpenDoc? Better yet, what can it do for me?

OpenDoc is a "document centered" instead of "application centered" framework. In addition, OpenDoc allows the creation of "parts" which can be embedded in special kinds of documents called "containers." I'll explain each of these in terms of my previous examples.

Making a better word processor the OpenDoc way

Say you're writing a report in Word, and in addition to the text, you want to spice up your report (taking full advantage of the multimedia power of your Power Mac) with a picture, some equations, and a quicktime movie simulating your data. In today's world, Word would have to be able to do all of this itself (no easy task, mind you), complete with the memory and disk footprint to support it. Why should Word programmers be concerned with programming equations or movies? They should be concerned with writing a word processor, not a Swiss-Army knife.

You might say, "I can create the equations and pictures in other applications and embed them (with, say, OLE) into Word." True, you can do this, but now instead of one bloated application, you now have to keep several bloated applications on your hard drive. Each application probably has the same problems with feature-bloat that Word does (especially if one of them is Excel). This is what is called an application centered framework. You are aware of each application you are working with and are forced to create your document separately (in pieces) in each disjoint application. To perform even the simplist of tasks, you are forced to carry around the baggage (both in memory and disk) of the entire feature set of each application, and constantly switch between them.

In the OpenDoc world, Word would be a container into which you could embed parts to handle equations, movies, pictures, tables, or whatever you want. Embedding is as simple as just dropping the part into your document container at the desired location. It works just as you would expect it to. Word would then be free to focus on its main purpose: text formatting -- and it would be able to do it very well.

The key point here is that all editing would be done in-place in the Word document, not in separate applications as above. This is a document centered framework. The benefit is that you can focus on what is most important - your document - while you are working on it. Switching between parts is seamless because your document never disappears. When you need another tool, you don't fire up yet another application, you just drop the part into your document. Your focus never leaves the document you are creating.

In addition, 3rd party software developers separately develop their equation, movie, or table parts without having to worry about how Word magnages them. Therefore, they can concentrate on their specific task, not winning the feature war. Since parts only need to do one thing, they can do it well.

Making a better Netscape the OpenDoc way

As I said above, Netscape tries to do everything but ends up doing little of it well. What if I never use these all these extra features? I'm stuck with them taking up memory and disk space since I can't remove them from Netscape. Also, what if I don't like the way Netscape does ftp? I'm stuck using their implementation of ftp or gopher or displaying tables.

In the OpenDoc world, Netscape would be a framework and its feature set broken up into parts. That way, if I wanted to use Fetch as my ftp tool, I'd just drop in the Fetch part and replace Netscape's cruddy one. If I wanted to use NewsWatcher instead of Netscape to read news, I'd replace Netscape's news reader with a NewsWatcher part. The benifits are obvious: Fetch and NewsWatcher are optimized (feature-wise) to perform their specific tasks and little else. The authors are free to focus on the given task, not on 50 other unrelated things.

Cyberdog is a framework that ties the parts together. It is composed of a set of parts that handle the web, news, email, telnet, ftp, and gopher, but it is also an underlying framework that allows parts that work with unrelated data (WWW URLs, IP addresses, USENET news groups, email addresses) to work together. In today's world, Eudora's email addresses are stored in a different format (internally) from Netscape's, thus they are totally incompatible. You cannot drag an address from Eudora into Netscape and expect it to work. Cyberdog, however, defines a set of common objects (called CyberItems) that each Internet part can choose to understand. Now, you can drag an email address from a "mailto" URL in the Cyberdog web browser into a Cyberdog email part, and it will work the way you expect it to, because both parts speak the same well-defined language.

The biggest benefit is that I am free to customize my browser as I see fit, with parts that do what I want to do. I am not limited by what Netscape currently does. When new features come out, I just drop in a new part. I don't have to wait for Netscape to upgrade their browser (and go through another 6 months of unstable betas).

[Image]

Return to Mike's OpenDoc Revolution page

These pages written by: Mike Pinkerton mpinkert@cc.gatech.edu

Last Modified: 16:07:30 PM Wed, Nov 25, 1995


[ Back to Index of Web Works | Top ]