taylor.town about now spam rss

growing the graveyard of "better spreadsheets"

the promise of spreadsheets

VisiCalc transformed the Apple II from toy to tool. Spreadsheets were the first Killer App.

Modern descendants (e.g. Microsoft Excel, Google Sheets) remain popular for good reasons:

  1. humans have loved ledgers/tables for milennia; they seem to suit our brain circuitry well
  2. maintaining direct manipulation affords an easy barrier-to-entry
  3. there are very few ways to regularly tile a plane; grids are one such way to organize information densely
  4. regular tiling produces a coordinate system with addresses, which allows for indirect manipulation via keyboard (or formulas)
  5. cells are type-agnostic -- interspersed numbers/text can flexibly communicate information across domains
  6. visual density encourages formulas to stay small; because chunked recalculation is cheap, spreadsheets can compile instantly/automatically
  7. quick recompilation produces tight feedback loops; spreadsheets feel reactive/responsive even on limited hardware
  8. lack of hidden state and side-effects makes for straightforward multiplayer experience (e.g. via CRDTs)

the problem with spreadsheets

I highly recommend watching Emery Berger's Saving the World from Spreadsheets. It details the spread and severity of spreadsheet errors, along with an overview of ExceLint's genius internals.

To dethrone Excel/Sheets, one must (1) seriously improve the spreadsheet design (2) without violating all of the synergetic principles that make them so delightful.

With that in mind, I'm going to list my gripes with modern spreadsheets:

my proposal for spreadsheets

I'm currently working on a thing called "scrapsheets", which will hopefully grow into a Killer App for my weird programming language.

My first attempt at scrapsheets was a great learning experience. It was crappy in very interesting ways; I'm much more confident entering my second try at "better spreadsheets":

Many of these features fall naturally out of my general design/architecture:

All of this can be expressed succinctly via something I'm calling "reactive relational algebra", which is really just normal relational algebra plus time and self-reference. I'll save that for a follow-up post.

Anyway, I'll be demoing scrapsheets at LIVE 2024 next month! Expect the codebase to be published somewhere online in the coming weeks.

I really hope scrapsheets is good enough to keep investing in, but I'm also mentally prepared for scrapsheets to become another grave in the "better spreadsheet" cemetery. Hey, at least we'll learn something!