Objectsheets

A Simple Object Environment

Introduction

and White Paper Contents

 

Also see: An Example, Detailed Trades, References, White Paper (Table of Contents), Overview of Benefits.

Introduction

The Objectsheet is an analytical framework that moves beyond the 20-year old spreadsheet model. The Objectsheet is as easy to use as a spreadsheet for simple "scratchpad" type calculations, but enabling a more coherent and consistent structure, making complex calculations easier to create and maintain.

The concept is based around the observation that spreadsheets generally consist of 2 data structures: scalars (or single cell formulas) and groups of arrays related by a common index (i.e. tables of replicated formulas). We take one step back from the spreadsheet's generic collection of "cells", and add a small amount of order to environment. The result is a coherent table, with space for arrays of related cells, and stand-alone cells representing scalars. There is a fundamental distinction between scalars and arrays, in contrast to the spreadsheet, which are only "cells with formulas". Adding this small amount of structure enables a great many things.

Imagine if you will a traditional spreadsheet. It has its rows (named 1 2 3 4... ) and columns (named A B C D...). Now imagine being able to replace the traditional row headings (or column headings) with names that are meaningful to you. Referencing cells is now by "{row-name}-dot-{column name}", and the resulting references are by those names (actually, like a javscript (object)-dot-(property)). These new sheets have semantic structure; formulas are suddenly a lot more readable (in the above example, the formula for the 'y' column refers to the 'x' (column) variable by name in its own formula)..

When you don't want to name each individual row (like with a Mortgage amortization table), or when you want to do things like refer to "the cell above this one", other constructs provide for meaningful relative references. In the above example, this is a relative row reference, with this[-1] referring to the "row above this one" for each row's y value evaluatied in the Objectsheet. These constructs also allow unnamed and relative referencing from one column (properties) to another in an objectsheet).

To relate the cells from one column to the next in your sheet through formulas, enter those formulas in the cell immediately above a column's name. That formula is automatically evaluated for each row in the sheet. But feel free to "override" that formula in a specific row by placing a different formula or value explicitly into that cell (this kind of override is indicated above by the blue bar on the right side of the cell). Calculations are thus by "Rules" and "Exceptions". This allows new formulas to be applied in a single step and makes it easy to find and track the "exceptions", without losing the generality of spreadsheets. Also, these formulaic rules that flow through a sheet are visible in a single place, and can be seen along with the resulting data.

But just having one of these sheets on the screen wouldn't be very useful. So, create many of these in a single window. Each of these new "sheets" is its own entity on the screen, each with its own headings, its own formulas, its own formatting. Change the row height or the global formatting of one sheet; it won't affect the others. Transpose the rows and columns of a sheet. Refer to a column of data on one sheet from a row of data on another sheet. Try that with a spreadsheet; it'll be tedious and you'll probably find something screwed up on another part of the sheet. Our new sheets are like shapes in a drawing program-- you can move them around and change how they look, and not worry about references or the logic getting screwed up. The logical structure is independent of the visual layout.

There are many other implications of the Objectsheet. Feel free to start off with A Simple Objectsheet Example, take a look the list of Benefits of the Objectsheet model, or go through a more thorough introduction by visiting the White Paper Table of Contents.


Goal: To achieve the interactive simplicity of spreadsheets with the power of the object model.

Vision: Manipulate objects as easily as cells in a spreadsheet.

Benefits:


White Paper Contents


Also see: An Example, Detailed Trades, References

rk, 8 July 1999
email author