VizierDB / vizier-scala

The Vizier kernel-free notebook programming environment
Other
34 stars 11 forks source link

Spreadsheet v3 #258

Closed okennedy closed 1 year ago

okennedy commented 1 year ago

This commit merges in a preliminary version of the spreadsheet. It shares many of the limitations of the v1.x spreadsheet:

  1. Formulas are limited to references in the same row.
  2. Formulas are limited to the type schemas of the current column.
  3. The UI for inserting rows/columns/etc... is not there yet.

Nevertheless, the internals have been thoroughly overhauled:

  1. Spreadsheets operate over a websocket. This means that computations all happen interactively on the server.
  2. Updates are processed live, and reactively. Updates to upstream dependencies trigger re-evaluation of dependent cells.
  3. Updates are no longer stored as a list of instructions, but rather as a set of source data re-mappings and an overlay of formulas. This representation makes the system far more amenable to the type of free-form spreadsheet that we want to (eventually) support.

In other words, this PR leaves us in mostly the same place from the user's perspective (modulo the reactive computation) as 1.x However, it also puts us in a much better place to start building more advanced system.