Second-Order Tool Building

  • instead of building X to solve Y, build Z which allows end-users to create many Xs to solve many Ys
  • one approach is to allow for easy recombination, building Environments, not App Pickers
  • a next step - allowing the tool to be build in itself, is a good example of one kind of Fractality in Software Tools
  • interestingly, Spreadsheets which are great at this, have this power almost accidentally - they were created originally to make inputting data easier into a tabular form (over grid paper), and then the creators were surprised that people started to predict future values with them

Dynamic spreadsheets were invented by Daniel Bricklin and Robert Frankston as a reaction to the frustration Bricklin felt when he had to work with the old ruled-paper versions in business school. They were surprised by the success of the idea and by the fact that most people who bought the first spreadsheet program (VisiCalc) exploited it to forecast the future rather than to account for the past. Seeking to develop a "smart editor", they had created a simulation tool.

— Alan Kay - Computer Software

  • developers should be Second-Order Tool Builders - allowing domain experts and end users to build the tools they need, in the tools provided by developers
Szymon Kaliski © 2021