For fans of the spreadsheet (<@UE6EFEPTQ> et al): ...
# thinking-together
f
For fans of the spreadsheet (@Duncan Cragg et al): > In essence, a spreadsheet is immensely powerful because it has three properties: > > 1. All of its data is contained in cells, each of them with an address. > 2. A cell can reference another cell. > 3. When a cell changes, all of the cells depending on it change as well. I wrote the above just now. Do you think I'm on the money here, or would you summarize the spreadsheet's power with different points?
c
You might be interested in Jonathan’s keynote about this, which focuses more on how sprradsheets augment data with computation (your first point) and less about the programming model (2 & 3) https://m.youtube.com/watch?v=4GOeYylCMJI&pp=ygUUQWNtIGxpdmUgc3BsYXNoIDIwMjQ%3D
f
Thanks for sharing @Christopher Shank!
d
I think of spreadsheets in terms of applications as follows: 1. A spreadsheet application is defined as cells and their attributes (type, value, alignment, etc.). 2. Cell values can be defined using formulas that refer to other cell values. 3. A spreadsheet application "runs" when cell values change and the changes propagate to cells whose values depend on the changed cell values.
f
Dan, I like your summary. I think each of my points maps to yours. However, your point 2 nails it better, because the value of a cell can have a reference to another cell, but also have things that are not references (constants and function calls).
j
Observable notebooks arguably fulfill properties 1-3. If you believe they meet the “immense power” of a spreadsheet, then you might have a nice formula, if not, then you’re missing something.
f
Good point, Joshua! And indeed notebooks are very dynamic. In practice, I felt them to work too "pipeline-y", in that the granularity was too big (a 10-20 line script to generate the next cell) and basically worked as a multi-pass data pipeline (with great feedback, though). And the code itself is not expressed in a self-similar way; that is, Javascript (or Python) is itself not reactive and not decomposable into cells.