Part I
Hello, long-time lurker here. This has been sitting with me for a long time, and now I’m not sure how to start. I think the core idea of this post is this manifesto (in the paraphrased words of someone smarter than me):
We need new Spreadsheet Application (SA) for this new era of computing. We need a SA that dispatches in the multiple ways we think. We need a SA that scales exponentially like our problems. We need a SA that integrates with our package ecosystem, letting people extend parts and contribute back to the core library all in one language. We need a modern SA in a modern language.
Yes, this is about spreadsheets. Wait, don’t go! I want to use this part of the post to make the case that spreadsheets are worth your time (if you already know, skip to part II). Hoping that someone who is more skilled than me will take an interest and get involved.
This is not just about Excel (which superceded/killed Lotus 1-2-3), or about Lotus 1-2-3 (which popularised the IBM PC, and killed VisiCalc), or about VisiCalc (which single-handedly popularised the Apple II). It’s about scientists having to rename genes to avoid date functionality from the early nineties. It’s about formatting errors leading to the secret service eavesdropping on the wrong telephone numbers. It’s about “sophisticated” risk analysis relying on copy-and-paste letting the London whale make a $6 bn loss on his own.
I think spreadsheets get used so much in the real world because they are incredibly convenient, for some kinds of work. In my mind, it’s an alternative that’s complementary to the linear style exemplified by a Jupyter or Pluto notebook. Some things are best understood in a top-to-bottom line-by-line format, other things seem to be clearer in a spreadsheet, laid out in a couple of pages of tables and charts. But then why are matrices not first-class objects in a software literally living in array-land? Why do we have to use VBA, with a performance penalty for custom functions? Why can’t we just plug in our favourite packages for graphing, for profiling, for differential equations?
Or to put it another way, I have to use spreadsheets every day for work; why does it have to be Excel? Why can’t I use a Jupyter-quality Julia-based spreadsheet?
Part II
I made a package! GitHub - felixrehren/Workbooks.jl: Spreadsheets with the power of Julia
Here’s what it can do:
- It can make a spreadsheet from the command-line and edit cells from the command-line
- The spreadsheet updates automatically! Look at cell B1 below
- It can teach me how spreadsheets work, and the simple algorithms behind them
- err … that’s it
Ok, so it falls way short of the dreams outlined in Part I. There’s some more ideas in there, e.g. about using the Pkg environment to create reproducible spreadsheets with user-defined code, but I’m struggling to take it further. Maybe this project was too greedy, but I at least wanted to share the dream. Would love it if anyone wants to get involved or do it better. Maybe one day there will be a good Julia-based spreadsheet application – I think it would be a game-changer. Thanks for reading, and thanks to everyone who contributes to the Julia ecosystem. It’s inspiring!
Felix