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.
Pure Functional Programming in Excel
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