Spreadsheets 2.0 and Transclusions

A few weeks ago, I had dinner with my old HyperScope buddies, Brad Neuberg and Jonathan Cheyer. We talked a bit about this Office 2.0 madness, and how a lot of these Web-based applications were disappointly uninteresting. Don’t get me wrong. There’s a lot of really nifty hacking going on behind the scenes to make this all work. But in the end, all you have is a Web-based office application. Most of these applications do little to take advantage of the network paradigm.    (M2P)

A simple and extremely cool way for Web-based spreadsheets to exploit the medium would be to support Transclusions across multiple web sites. As I’ve observed before, spreadsheets were the first applications to popularize the notion of a Transclusion, even though they didn’t call them that. When I type =E27 in a cell, it displays the content of cell E27. This, in a nutshell, is a Transclusion, and oh, is it useful.    (M2Q)

With Web-based spreadsheets, if you made cell addresses universally resolvable, you could easily support Transclusions across web sites. In other words, I could transclude the content of cell =E27 from a spreadsheet hosted on my web site into a cell on a spreadsheet hosted on another web site.    (M2R)

Why would this be useful? Well, why is it useful to link to other web sites? Today’s Web-based spreadsheets are no more collaborative than desktop spreadsheets. In theory, they’re more convenient than emailing spreadsheets back-and-forth, but they’re no different in capability. Cross-spreadsheet Transclusions would break down silos and encourage collaboration.    (M2S)

I would start with spreadsheet-to-spreadsheet Transclusions with an eye toward supporting Transclusion of non-spreadsheet content using Purple Numbers or something similar. The main technical barrier is coming up with the right addressability scheme. Seems to me that the Simplest Thing That Works would be to use fragment identifiers (which is what we did for the HyperScope). In other words, cell =E27 on a spreadsheet at http://foo/bar would have the address:    (M2T)

  http://foo/bar#E27    (M2U)

Eventually, you’d want persistent, non-URL-based identifiers, but first things first.    (M2V)

Leave a Reply