Preview Guide

 

October 2000

 

Executive Summary

 

DesktopX is a program that extends the existing Windows shell (typically Explorer) to provide a whole range of new features. These features primarily come in the form of objects that provide a nearly unlimited way of customizing the shell.

 

A user can replace their Start bar, system tray, task list and everything on their desktop with DesktopX objects that can do the same things but with a much greater degree of customization and functionality.  Because DesktopX objects (unlike icons and other GUI elements on Windows) can send and receive messages, they have all of the abilities of a full blown program without any of the overhead of running separate programs. Users have control over what degree of customization they desire.  

 

Corporations can use DesktopX to create a customized desktop just for their users with just the programs and data that are relevant to them displayed. These desktops are easily distributable across the enterprise to every system. A master desktop theme could optionally be made and automatically be loaded by every user in the company thus greatly reducing administrative costs. Home users can use it to create simplified desktops for their children or restrict what items their children can access from the desktop. Power users can use it to greatly enhance their productivity by organizing their system to match their preferences.

 

The best part of all, because of the object nature of DesktopX, users don’t have to worry about creating their own objects or worrying about whether Stardock will create it for them. Even in early beta, there are hundreds of DesktopX objects available with more being made available each day because it is so easy to create them.

For these reasons, Stardock expects DesktopX to become very widely used across the spectrum of users. 

 

 

Examples of DesktopX themes on Windows. (these are all made by DesktopX users and can be found at news://news.stardock.com/stardock.desktopx.binaries.themes )

 

 

dx-oct00.jpg (187849 bytes)

QNX style theme. Yes, this is Windows.

 

dx-oct00a.jpg (132987 bytes)

Whistler theme

 

dx-oct00b.jpg (333675 bytes)

Encarta 2000 theme

 

dx-aug00.jpg (105405 bytes)

Trek theme

 

dx-oct00c.jpg (808889 bytes)

Baldur's Gate II theme.

 

 

 

DesktopX objects (theme parts) examples:

 

Netscape object (launches Netscape)

 

MSN object

 

 

 

Introduction and History

 

The Modern Desktop

Most people take for granted today how they interact with their computer. Whether it be Windows or Linux or Macintosh, most users have little choice in how they organize their programs and data. On Windows and most shells on Linux, the user’s shell has a bar typically at the bottom of the screen. At the bottom left is a button that brings up a menu that allows the user to wade through their various programs to find the one they want. Most users take this for granted. That’s just how computers work. Every computer, working exactly the same with how it working being decided by a single group at a single corporation.

 

Yet computers are unique in this respect. Every other product used by people comes in multiple flavors to suit the particular needs of customers. Cars, refrigerators, cell phones, televisions, houses, ovens, etc. all come in many shapes, colors and styles so fit the needs of individual users.  Yet computers, which are used for a much larger variety of things than other products comes as a one size fits all solution. One company's idea of customization is to provide colored plastic cases while making the way the computer itself is used even more rigid.

 

This is where Stardock's Object Desktop comes in. It's designed to provide a host of components that make it possible to change Windows completely to fit the particular needs of individual users and corporations.  The component that allows the user to determine how their main computer interface, known as the shell, is interacted with is DesktopX. DesktopX has evolved from two unique backgrounds which we'll discuss below.

 

A tale of two backgrounds: The Shell Themers

Over the past two years, an increasing number of users have been wanting to have more control over the way their PC worked. One of the most popular movements towards this end has been a freeware program called Litestep. Litestep actually replaces the Windows shell known as Explorer. Developed by hobbyists, Litestep has attracted thousands of users who use that shell and its ability to load up a particular customizable shell interface known as a “theme”.  Litestep can be found at http://www.litestep.net.

 

The problem is, anything that essentially requires replacing the Windows shell is going to limit the number of people willing to use it. Jettisoning Explorer is a pretty major operation for an end user to make.  Other programs have become available that provide the ability to apply a “theme” much like Litestep without having to replace the shell. Their themes use the Litestep model which gives a great deal of control to the person creating the theme but at the expense of allowing the user of the theme an easy way to customize it. The Litestep model of themes is, pick the theme you like but you're essentially stuck with the strengths and limitations of that theme unless you want to perform major surgery on the various text files that describe the theme. For instance, themes are made for a specific resolution. They are monolithic in nature meaning that the items on there are a take it or leave it proposition. There is no realistic way to mix and match parts of other themes if you're a non-techie. Despite these drawbacks, there is a large following of users who are tired of being told how their computers should work and are willing to spend the time necessary to tweak these programs to suit their needs.

 

A tale of two backgrounds: Taligent/OpenDoc/Cairo

 

At the same time as Litestep and other programs were in their infancy, a company called Stardock had long been involved on what was once called the “OS Wars”. The battle of IBM/Apple versus Microsoft for control over the desktop. Competition breeds innovation and during the high point of the OS Wars (1992 to 1996) Apple, IBM, and Microsoft all presented their own visions for how the future desktop should work.

 

IBM and Apple moved forward on a vision called “Pink” which formed the basis of a new OS (later a development framework) called Taligent. In conjunction, they worked on an object model called OpenDoc. The idea behind these technologies was to allow users to create objects that did any number of things and distribute them with ease. End users and developers alike could trade pieces of OS extensions back and forth just like they would an image file or MP3 or whatever. These objects were called “Parts” or OpenDoc parts.

 

The popular example  given is that one company might make a spreadsheet part, another person make a word processor part, a spell checker part, a graph part, etc. A user could then mix and match these parts together and form a super office application that had just the features they needed. This in theory would decrease hardware requirements by having only the parts needed running and decrease cost by not having to pay for features that were not used.

 

For IBM’s view on OpenDoc visit:

http://www-4.ibm.com/software/ad/opendoc/position.html

 

For IBM’s view on how the PC desktop was supposed to work download:

http://www.stardock.com/files/cuademo.zip

 

In response, Microsoft announced something called Cairo. No one is quite sure what Cairo was or is beyond the vague concept of “We can do that too whatever it is.”  At one point Microsoft conceded that Cairo was a set of technologies that would be integrated into Windows over time. What those technologies are or were no one really knows but the general overview of it was to provide users with an object oriented way of handling their programs and data.  But it could be argued that ActiveX, COM, and Active Desktop are technologies that grew out of that movement.

 

History has shown that Windows won the OS Wars and all this talk about letting people trade parts/objects back and forth and allowing end users to easily transform their shells disappeared with the end of the OS Wars. And so we're back to where we started - lots of coding needed to do small things.

 

But Stardock hadn’t disappeared. In 1997, it began moving its development efforts from OS/2 to Windows. With its background in working with OS/2’s object oriented technologies, it has sought to bring this to Windows. Stardock’s solution is called Object Desktop, a complete desktop environment for Windows that is made up of dozens of components each designed to allow users control over a particular portion of Windows.

 

The component relevant to this discussion is called DesktopX.  DesktopX seeks to combine the strengths of what OpenDoc/Cairo/Taligent offered to end users and developers combined with meeting the needs of the existing core base of “themers” so that it can grow into a mainstream movement.

 

Stardock has limited the scope of DesktopX to concentrate all its resources on what it does best – allow users to control how the shell of Windows operates. This means it’s not cross platform (OpenDoc was). It means it’s not a system wide model (as OpenDoc and others are). And it doesn’t provide a “new” object standard but instead relies on what is already available (COM, Windows Scripting Host, XML, ActiveX, etc.) to do its thing. Why did Stardock do this? The first reason is pretty obvious, if IBM, Apple, and Microsoft had difficulty finishing such ambitious projects, a smaller company is not likely to have those kinds of resources either. So the scope was limited to just the desktop. Another reason is the importance of it continuing to run on Windows. Or as some might say, to make sure it isn't easy to break from one version of Windows to another (DesktopX runs on everything from Windows 95, 98, NT, 2000, ME, Whistler with the same executable).

 

But these trade offs result in an  unprecedented control over the way Windows works. They can still create “themes” ala Litestep but now these themes are resolution independent, they are made up of objects which can be imported from other users and from various download sites. Any end user can easily manipulate any object. There is no programming required to make a typical DesktopX object.

 

In short, it finally makes it possible for Windows to be like other products on the market, it makes it possible to make Windows work the way the user wants it to work rather than the user having to conform to how Windows already works.

 

DesktopX: Today

 

DesktopX is still in beta. Since no program of this nature has ever really been done before, the challenge for Stardock is to ensure that it is compatible with multiple versions of Windows (Windows 98, NT, ME, 2000, Whistler) without sacrificing the flexibility and power of the underlying engine.

 

Let’s take a brief look at what DesktopX does:

 

When launched it adds its configuration icon to the user’s system tray. From there, users can load themes and import objects.

 

A theme is a full desktop interface:

 

odnt-aug00.jpg (249189 bytes)

One of the default DesktopX themes.

 

A DesktopX object is a theme “part”. A theme is made up of objects. Both themes and objects can be traded on-line with other users or within a corporation.

 

Here is an example of a DesktopX object:

 

 

 

Chris Mueller's email object will tell users when they have received new email.

 

Now, to give an idea of where the philosophy of putting together objects together from various sources to form a super object (like in our super office example from earlier) let’s use the clock example. Every object oriented technology always has a clock example (it must be a law somewhere) so let’s do that.

 

Here we’ve whipped up a little clock object in a few minutes. Two separate objects that can be configured as one or separately.

 

 

Object #1: The hands of a clock.

 

 

Object #2: Another user makes a clock body

Object #3: The two are put together and combined into a single object. The user can then package the object up and upload it.

 

The first object, showing the hands required a bit of programming since it has to draw the lines. But once made, any end user can simply match a picture of a clock with the hands of the clock, configure how the two visually look and combine them. To put things in perspective, the various “skin” websites have sections dedicated to various skinnable widgets like clocks. One could imagine an entire section dedicated to a skinnable analog clock program yet with DesktopX, such a thing is a trivial thing to create.

 

The point of the clock demo is to demonstrate how easy it is for people to collaborate in the create of parts that they can share. By doing so, complete desktop customization isn’t so reliant on people spending a great deal of time tweaking their own systems or creating complex themes. People can contribute simply by making an object. Someone could create a spreadsheet part with other parts that talk to it and combine it together into a powerful office object (though we don't expect that to happen since it's not practical today with office suites and such).

 

Objects can also send and receive messages from each other, from the operating system, and from third party programs. This is an important distinction. DesktopX objects are living objects. This means that DesktopX objects can respond to the changing conditions that the PC is aware of.  A factory monitoring DesktopX object could provide a visual explanation of what is occurring inside the factory without the need to program a complex visual reporting system.  An alarm clock program could be made simply by sending a message to a DesktopX object to play a sound upon receiving the alarm message. 

 

Some users have described a DesktopX object to be a “super icon”. And at its most basic usage, a DesktopX object could be just like a Windows icon. The difference is that it can also be so much more.

 

For example, a disk drive icon just represents that disk drive.  A DesktopX drive object could also have a small pie chart that changed in real time based on how much disk space was available. That same object could send an email to the system administrator when the drive got too full.  These things could be done via various separate programs but DesktopX provides so much of the “guts” to do this that it makes more sense to use DesktopX to do this kind of thing.  The difference between a static object and a live object ultimately comes down to whether it can send and receive messages or not.

 

Another common example are the mail notification objects already available. When an email arrives, the DX object pops up and might say “You have mail.”  There are numerous email notification programs out there. However, they can’t be customized very easily and probably took a lot more coding to do than the DesktopX object did.

 

Conclusions

It is for these reasons and more that DesktopX is described as an object frame work.  Its goal is to allow users to design their own desktops. The way it goes about doing this by allowing users to trade objects back and forth, making it easy to create those objects and providing the infrastructure to extend the desktop functionality without nearly as much effort in software development.

 

And ultimately, much of the goal of OpenDoc, and Taligent, and Cairo was to allow for massive code-reuse and to minimize the amount of new coding that would be necessary in order for companies and individuals to tailor their PC to suit their specific needs.

 

DesktopX: The future

 

Since DesktopX is still in beta, some of its functionality isn’t complete and other parts of it are in evolution.  For instance, a DesktopX theme is described by its own proprietary format in the beta.  It is our goal that eventually a DesktopX theme and a DesktopX object both are described in XML.

 

Stardock is also working on a “COM wrapper” in which COM objects can be interchanged with other DesktopX objects. Presently, DesktopX objects that contain executable code use a specific set of DX APIs written in C, C++, Javascript or Visual Basic.  Its goal is to eventually allow users to plug in existing COM objects and be able to manipulate them. So if someone has created an ActiveX control that reads in stock data, that control could be treated just like any other DesktopX object. Stardock expects that many developers will create wrappers that allow third party plug-ins not developed with DesktopX in mind could be seamlessly treated as a DesktopX object.

 

Additional classes are being implemented for it.  These range from web browsing controls (an end user could make their own web browser without any programming whatsoever) to easing the ability for a DesktopX object to provide readouts from databases and other sources (users of things like Visual REXX were able to create all kinds of easy to use applets that read in data from databases with just a few mouse clicks, this is something we expect to have shortly as well).

 

And as users provide feedback we expect to make additional changes to the user interface, feature set, and programming APIs to facilitate users being able to use DesktopX as their primary environment.

 

Contacting Stardock

 

DesktopX is part of Object Desktop which is delivered by the .NET Application Service Provider Stardock.net (www.stardock.net and www.objectdesktop.net).

 

It can be reached at:

Phone: 734-762-0687

Fax: 734-762-0690

Email: sales@stardock.com

 

Product Manager:

Brad Wardell – bwardell@stardock.com

Object Desktop costs $49.95 which comes with a 1 year subscription to ObjectDesktop.net.

 

 

References

Here are some interesting links that explore some of the what-ifs that could have been and help users understand our goals and motivations.

Taligent (for techies)

Cairo and object technologies article

OpenDoc basic information (for techies)

User Interface Concepts that never came to be