Can I deprecate this endpoint?
Jan 11, 2022
It's just a grid of data, right? Tables show up everywhere in software, and you probably don't think about them much. Yet modern software packs a surprising amount of functionality into them, accumulated over the past half a century.
In this post, we'll take a high altitude pass over that history. In later installments, we'll dive into how today's software handles the complex requirements of modern tables.
In a data-heavy web interface, a typical table might be expected to do all of this:
Each of these features often belies its own pile of complexity. But how did we get this set of features?
This journey begins in 1978 with the introduction of VisiCalc, the first spreadsheet software1. Stackbit recently published a fantastic introduction, but to summarize: it was the first software to combine mouse support and editing of individual cell formulae on personal computers.
This turned out to be a Pretty Big Deal™.
I had the privilege of chatting with Bob Frankston this week, one of VisiCalc's creators. He has contributed a great deal since the 1970's, but I wanted to focus on what existed before this project that might have inspired it. Here's what he had to say (slightly edited for typos and links):
Spreadsheets and accounting existed for hundreds of years. If you have someone used to working with screens (word processing) and back-of-the-envelope calculations for a class, you can see how it happens. Did you see Dan's TEDx talk about this?
I did help program something we called "First Financial Language"2 at White-Weld in 1966. You gave it rows and columns, and it intersected the values. It was designed by Butler Lampson. The major departure for VisiCalc was the idea of editing individual cells and copying the formulas - basically getting rid of the fancy CS concepts.
The key point is that personal computers were new and were toys so there weren't other implementations. Even when people copied [VisiCalc], they missed key design points. Why would a professional do a business app on a toy computer?
In short, we have Dan and Bob to thank for catalyzing the adoption of personal computers.
Spreadsheets have had decades to evolve since VisiCalc's first implementation. Below is an oversimplified selection of some key developments in this space.
|VisiCalc||First spreadsheet software1 |
Formulas (similar to today's)
Automatic formula propagation
Ported many times over the years, including to Apple II
|1980||SuperCalc||First VisiCalc competitor; ported to MS-DOS in 1982|
Solved bugs like circular refs that VisiCalc still had
|First to release on many systems, but not MS-DOS|
|1983||Lotus 1-2-3||Took advantage of IBM-PC hardware for much larger data|
Market dominant until Excel outstripped it in the 1990s
|1985||Excel 1.0||Largely similar to Lotus 1-2-3, without charts|
|1987||Excel 2.0||First spreadsheet that ran on Windows|
|1990||Excel 3.0||Toolbars, drawing, outlining, 3D charts...|
|~1994||HTML ||The Mosaic browser existed since 1990, but tables weren't part of the HTML specification until 1994.|
It does okay these days powering web apps though.
Around this time, using
|AJAX||Allowed streaming data instead of reloading the page.|
Pagination eventually gave way for virtual scrolling, etc.
|2006||Google Sheets||Cloud save; collaborative editing; ran in browsers|
|Later||Bootstrap, flexbox, countless JS grid and table libraries||Mostly reinventing the wheel, but now it's web scale.|
As you can see, modern tables support a variety of features. In the next installment, we'll dive into the technical end: how tables on the web handle these requirements.