Spreadsheets are the best
=========================

I want to love Forth and Lisp and Perl and Go and I sort of want to
know Rust and Haskell and OCaml and Elixir, but really, the most
important electronic computing platform for the largest number people
is … spreadsheets.

Formulas and graphs turn these into the multifunctional tool that
spread from accounting specialists to financial reporting to project
managers planning to household budgets to birthday and wedding guest
lists.

If you think about it, spreadsheets for the masses succeeded where
Emacs failed. Spreadsheets allow you to build the tools you need. And
sure, as a programming professional I have heard my share of horror
stories: salary distributions and bonus programs, airport light
systems, and many other things that should have used relational
databases and REST services and whatever. But people know spreadsheets
and use them to solve their problems.

Spreadsheets are underappreciated. Certainly they are underappreciated
by programmers, I think.

@maxime_andre@mastodon.xyz linked me to the video Pure Functional
Programming in Excel by Felienne Hermans where she explains the
benefits of spreadsheets for computing.

And I do think that the programming languages I listed failed us in as
far as they do not contribute to computers as convivial tools. Most
people are not autonomous in their use of computers to solve their
problems because they cannot use the languages listed. They must hope
for an app to solve their problem. But they can use a spreadsheet to
solve their problem!

Emacs was supposed to be the editor for everybody, including
non-technical people. It's just that our current design paradigms
optimize for the inexperienced users and penalize experienced users.
Users no longer expect Emacs-like tools and Emacs developers don't
expect inexperienced users any more.

We feel it's OK to feel overwhelmed by Emacs – but many people are
expected to navigate the real world in cars, on roads, with complex
traffic regulation, other traffic participants and machines we don't
understand. To me, that illustrates a value judgement. On the one
hand, cars are a commodity. We no longer have to be an expert in
combustion engines to drive one. But we still need to learn how to use
the tool. There's mandatory training, there are professional teachers,
there are enforcers of conventions, penalties, there's financing
available if we want to lease a car, and so on. There is a lot of
support and training for users of cars and not so much for computers.
The expectations are different.

One might want to say that people need the car to get to work and that
explains the economic incentives. To this I might reply that when one
gets to work the actual work usually involves a computer and instead
of using a convivial tool that one has learned and mastered,
customized and extended to ones liking, one is forced to work with
corporate software that is as boring as it can be.

Except when it comes to spreadsheets. This is where everyday people
still can exercise mastery and solve their problems. It's a tool and
not an app.

If we go back far enough, programming languages were designed to let
non-technical people solve their problems. COBOL was a programming
language for business people. BASIC was a programming language for
faculty and students. From this point of view, I'd argue, the
programming languages I mentioned are in fact steps away from this
goal.

These programming languages solve more specialised problems. These are
tools for experts. But in doing this, they moved away from the realm
of everyday people using them to solve their problems. These languages
fail to make computers into convivial tools.

The ZX Spectrum 48K and the Commodore 64 both booted into BASIC. Sure,
that didn't mean that we knew how to program. Loading and saving stuff
from cassette was hard. PEEK and POKE were hard. But the tools to turn
the computer into a convivial tool were right there. The computer came
with a manual.

My hope, my wish, my expectations are that we can do this and more. We
can make it even better! Spreadsheets are the saving grace. We should
put spreadsheets front and centre.

The sad reality is, however, that today we buy computers that
essentially boot into the app store.

​#Programming #Philosophy ​#Philosophy