Doug Engelbart’s Grocery List

If you’ve watched the Mother of All Demos, you know that one of the aha! moments of it is when Engelbart pulls out his grocery list. The idea is pretty simple –if you put your grocery list into a computer instead of on a notepad, you could sort it, edit, clone it, categorize it, drag-and-drop reorder it.


That was 1968. So how are we all doing?

If you’re like my family, there’s probably multiple answers to that, but none particularly good. When Nicole shops, she writes it out on a sheet of paper, and spends a good amount of time trying to remember all the things she has to get. I sometimes write it out in an email I send myself, and then spend time trying to look for past emails I can raid for reminders.

Sorting? Cloning? Drag and drop refactoring?

Ha! What do you think this is, the Jetsons?

How the hell did we get here? Your average car’s fuel injector has more computing power than the machine that Englebart demonstrated this on. And it’s not like this problem has been solved elsewhere.

I’d argue that what happened was we moved towards database-driven single use apps. The truth is that there are DOZENS of shopping list apps, from Don’t Forget the Milk, to the creatively titled GroceryList, to whatever LiveStrong is doing this week.

But they each read like GroceryIQ:

Grocery IQ (Free) includes all the features you would expect in a powerful grocery app, including a barcode scanner, list sharing, and integrated coupons. If you are like me and buy the same things every week, the favorites list will help you save time. You can also edit your list online and it will update automatically on the app.

On one level, GroceryIQ works better than anything we see with Englebart. Barcode Scanner! Favorites list! Wow, powerful!

But chances are it’s a worthless piece of junk to you compared to the email method. Why? Well, you need your specific phone to use it. You can’t print it out. The people you share with need accounts too.  Your data is being compiled and sent somewhere for god knows what reason. You can choose favorites, but there’s no easy way to save this year’s Thanksgiving shopping list for next year  without the programmers building that for you. If you’d like to separate your list by the store you buy it at, you’re also out of luck. You’ve got to learn a whole new interface. If you ever move off of it, you lose all the stuff you put into it — no export/import functionality. And of course the idea that your grocery list app could somehow exchange data with a recipe app or a food log — not possible in the least.

On the other hand, managing my list in email gets me 90% of these things. So why go to another app I’ll use for two weeks and give up on?

The reason we keep using email is that for that set of tasks requiring more than plaintext but less than an app we have nothing. MS Word maybe. Excel. But somewhere along the line we handed the keys  to the current model, and so instead of getting general use tools that radically expand our ability to solve problems we get GroceryIQ, followed by whatever piece of crapware we download next week.

The solution is to capture some older priciples of software design. We need to look at that gap between the tools we use for unstructured data (email, Word) and the over-specified locked-in products that comprise single-use computing, or worse yet, enterprise software bloat. As Jon Udell has noted, most of our day consists of dealing with semi-structured data, yet the tools we have access are either too rigid or too loose to be of use. It’s time we fill the gap with networked, generative tools that can take us to the next level.



13 thoughts on “Doug Engelbart’s Grocery List

  1. Single use apps are ubiquitous because “[y]our data…being compiled and sent somewhere for god knows what reason” is a model that monetizes the work that creates such tools. After all, devs also have grocery lists. Much pf the work on semi-structured tools is FLOSS and subsidized. Your work on SFW documentation is de facto subsidized by WSU-Vancouver, for example. To get general use apps for semi-structured data, you need an economic model for such tools.

    • These are great points Jason. I think the thing is that semi-structured, general purpose tools USED to happen though — Word, Excel, etc. Both those act as toolkits that allowed a broad variety of uses. Then we just gave up. Why?

      • A couple of reasons.
        1. Data mining and/or subscription fees have a potential to generate steadier income than software you sell once.
        2. The “fetish for transparent computing” you described a few weeks ago discourages tools that you adapt to your needs in favor of tools that can be used ‘out of the box’.

  2. I loved as much as you will receive carried out right here.
    The sketch is attractive, your authored material stylish.
    nonetheless, you command get got an shakiness over that youu wish be
    delivering the following. unwell unquestionably comje further
    formerly again since exactly the same nearly
    very often inside case you shield this increase.

  3. Today, I went to the beach with my kids.

    I found a sea shell and gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell to her ear aand screamed.
    There was a hermit crab inside and iit pinched her ear.

    She never wants to goo back! LoL I know tthis is completely off topic but
    I hhad to tell someone!

  4. Excellent beat ! I wish to apprentice while you amend your site, how can i subscribe for a blog
    web site? The account helped me a acceptable
    deal. I had been a little bit acquainted of this your broadcast offered bright
    clear idea

  5. Pingback: Gamergate | Hapgood ~
  6. Pingback: Blue Coaster33 ~

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s