Get with the Program!

To the PC industry: It’s 2004! Why do computers still suck?

Here is how my PC should be…

  • When I sit down in front of it, it should recognize me and start to log me in. If it gets confused, it should ask me who I am. I should be able to respond vocally.
  • As soon as my hand hits the mouse, it should log me the rest of the way in, using my fingerprint as verification.
  • Once I’m logged in, I don’t see a “desktop”. I see a workspace. A workspace is a view on all of my data which emphasizes the objects which are most important to a particular project or task. There are as many workspaces as there are things I use my computer for, and I can switch between them at will.
  • The worskpace isn’t just a list of nondescript icons. It is a professionally laid-out report prepared by an artificially intelligent software agent that has observed my work habits. Data items are summarized intelligently according to their type: Contacts have a photo, name, and a note about the last interaction(s) I had with them.; Documents are thumbnailed and summarized; etc. The workspace also presents the possible actions I could take on any given object or group of objects.
  • The workspace makes it very easy to change the scope of what is shown, on any axis: type of object, date range, subject matter, you name it. The workspace also provides shortcuts to change the scope based on objects that are currently showing: “More like this”, “Ignore this kind of object”, etc.
  • Every action I take is logged and incorporated into a version history of my data. Any document, object, whatever, can be rolled back to any given point in it’s history. Sets of documents can be rolled back as a group.
  • The computer never, ever, interrupts my work for any reason. Instead, a discrete frame ocupying a portion of screenspace keeps a running commentary of suggestions, events that have occurred, reminders, and questions that it would like answered. If some action cannot be taken without answering a question, the computer lets me know – but it doesn’t pop up dialog boxes that interrupt what I’m doing.
  • The computer learns things about me, like what music I like to hear when I’m working, and what websites I visit a lot. I don’t have to manually keep track of bookmarks and playlists for stuff like that.
  • There is no filesystem, as far as I’m concerned. There is simply a database of all the information known to me, local and remote. Paths are simply database queries. I can find data by searching for any combination of metadata.
  • There are no applications. There are only objects and the operations I can perform on them.
  • There is no “Save” or “Load”. Document changes are tracked and written to disk in real time, along with a change history that allows them to be rolled back. I don’t need to assign a “name” to every file because I can always find a document that I’ve started by querying by date or by subject matter.
  • Documents and other objects are automatically categorized for me using a learning categorization scheme where the computer watches how I file things and then attempts to match my system using statistical methods like Baysien filtering and Latent Semantic Analysis. If it’s not sure about something it asks me.
  • When the PC starts up it starts back up in *exactly* the same state it was in when I shut it down.

In other words, the computer acts like a secretary instead of a dumb bag of transistors. Nothing in the above list is unfeasible with today’s hardware and today’s software. Everything on there has been tried in one form or another; just never as a cohesive whole. There is no good reason for the computer I just described not to exist.

View All


  1. Start your own company.

    Call it Macrohard.

    Hire me.

  2. …oh avdi…I think I’m in love…

    Most everything you’ve said are issues I’ve long stated…especially the “no file format” issue…

    But you are forgetting…

    1) THERE ARE NO!!! “My Anythings”

    2) The farthest a user should need to go to reach something is “c:\user\Jason” or rather “drive\user\Jason”

    3) Relative audio decibel levels (I should not have to bring my audio player to max for playing wav files loud enough to hear in Windows Media player only to have the most terrifying *BLEEEEEPPPPP!!!!* occur on any error at +50 decibels. Or have another program be deftly quiet….

    4) I should NOT need a floppy for anything but a Viagra commercial

    5) Applications should be stand-alone. All this registry stuff needs to go. Return to the DOS days when a folder contained the entire program and you could easily relocate it to another drive when storage space ran out.

    6) Um….auto-complete should have half a brain…more so, I should be able to delete mis-typed entries.

    7) Registration keys should be printed on the actual CD by law….


    From the legal owner of Windows 2000 but unable to use my copy thanks to misplacing the license code.

    1. Re: …oh avdi…I think I’m in love…

      1: Of course. Everything is by definition “my”, because it’s your workspace(s).

      2: Valid paths should look like: yesterday/letters/rants, letters/length > 2pages/subject=frogs, rants/mood=depressed/music-at-the-time.artist=”The Cure”

      3: Good idea. It should also have a clue about when to shut up. I.E. when it hears you having a conversation.

      5: Eh. I don’t know about this. The registry serves a very important purpose, it just does it very, very badly. The kind of filesystem I’m talking about would effectively replace the registry though. And yes, applications should be properly modular.

      6: Auto-complete should have the same interface *everywhere*, and be nicely context-sensitive like pcomplete and hippie-complete(?) in emacs.

      1. Re: …oh avdi…I think I’m in love…

        1)…that’s fine I just hate the word “my” especially when it’s a server, or business computer… furthermore why does it have to be buried six layers deep into the file tree and than in accessible from half the system

        5) I like the idea of an XML (or embedded object definition). I mean, why do I need new drivers for my network card for 95/98/ME/2000/XP….the card hasn’t changed. Therefore the card should simply offer a definition of how to address it.

        Any future OS should be able to read and utilize the drivers of a previous version.

        1. Re: …oh avdi…I think I’m in love…

          Drivers aren’t descriptions, although they frequently include some kind of metadata for the operating system’s benefit. A device driver is a hardware-specific program, written in C or even assembly, that has to know specifics of both how the OS works and how the hardware works.

          There are efforts in progress to abstract this, but it’s not as simple as just providing a device desription.

          1. Re: …oh avdi…I think I’m in love…

            No…not saying a simple device description. But take most common hardware devices.

            A modem for example: the OS know what a modem is supposed to send. The modem always sends the same thing. There should be no reason in this day and age that you have to fuss around looking for a basic driver for your 56k modem.

            Some knew gizmo…sure, I can accept that. But the issue is Microsoft deliberately makes the old drivers uncompatible.

            Look at Linux….even if you go up to a new kernal, your old driver usually still works. It may not have ALL the fancy features but at least it’s basic.

            The funny thing is we already do this to a degree. Any video card plugged in will work as a standard 640 VESA compatible card. So if we can do that, why not allow for other such situations.


            Also, I still like the idea of being able to carry your profile around in a memory thumb drive…


          2. Re: …oh avdi…I think I’m in love…

            That’s not necessarily true of Linux. As the kernel interfaces change, drivers have to change. AFAIK, all drivers had to be changed in order to support the recent new device numbering scheme.

            And the drivers must be recompiled for a new kernel, even on Linux. Since MS and the hardware companies don’t deliver drivers in source form, the only way to make old drivers work with new Windows kernels is to distribute recompiled binaries. Even if recompiling was the only thing they had to change, you’d still have to upgrade.

            Just because a modem (for example) accepts the same AT commands as any other doesn’t mean it’s hardware interface is the same. Sure, there are families of hardware that all behave similarly and can be served by the same driver, but even then there are many, many such families. Ever looked at the list of modem drivers included in a stock linux kernel?

            The only benefit to Linux is that you get a buttload of drivers with your kernel. Of course, if no kind kernel hacker has bothered to write a driver for your hardware, you are generally screwed.

            And of course, good luck getting Linux to a) notice that you’ve plugged new hardware in; and b) modprobe the right driver for it (this is the biggie), even assuming you’ve built that module at all.

            Sorry, having used both extensively, I’m pretty cynical about the driver situation. I don’t believe there is any way in which the Linux situation is noticeably superior from the user point of view.

          3. Re: …oh avdi…I think I’m in love…

            Oh I still think Linux is far from desktop ready…

            I guess I just think that what we need is a “device service” concept similar to a “web service”


            Heck…but then again just not having the computer lock up would be nice… *LOL*

          4. Re: …oh avdi…I think I’m in love…

            I’m not talking about the desktop. When I say “user”, I’m talking about whoever is using the system. For this disgruntled “user”, Linux and Windows drivers are equally unpleasant subjects.

Comments are closed.