I sincerely think that the spreadsheet is among the most ingenious pieces of software ever developed.
I am just old enough to remember VisiCalc (and clearly remember when Lotus 1-2-3 was new). I remember being impressed by lots of things back then (the word processor, the very first PC flight simulator, text adventures, very early GUIs). But as amazing as all of that was, I really feel like the spreadsheet required more lateral thinking than most of these other things.
Old ledger books were clearly part of the inspiration, but just today I was wondering if computer organization itself had inspired the idea. With high-level languages, you don't get as much of a sense of computing being all about arranging things on a kind of grid. Store this here, store that there, now combine those those things and put them over here . . . The spreadsheet abstracted that not just into a more convenient set of high-level operations, but into a real UI that people could understand. From a design standpoint, it was really a massive quantum leap.
Once in a while someone dreams up something really clever to do with a computer. That was definitely one of those moments.
I agree the spreadsheet was just a quantum leap at the time. When Lotus 1-2-3 was trending, I was doing technical support. So this would be right before Windows became significant. Lotus 1-2-3 was often paired with Harvard Graphics, which again was very impressive for the time. Somewhat later I got exposed to dBase and DataEase and learners about relational databases. It really was a wild time.
I didn’t know that existed, but no it’s not good enough. Try referring to the complex value in a cell in another cell. You get a value error.
I.e say A1 = complex(1,1)
Then
A2 = A1*2 -> error.
Things like imsum() are not enough and awkward. (We have calculators for simple complex math.)
Experimentalists use excel as a visual vector computer language. I’ve used it like that as well, and honestly, for many problems in science, the spreadsheet’s paradigm of interacting with the user is better.
So what you end up with is hacked complex support by using two columns to represent real() and imag(). Then your’s truly has to parse it to use in my models.
You can do cute things in excel though. My advisor had me program the electric field resulting from a (large) distribution of dipoles.
He wanted it done - he insisted it be done - in excel. Don’t ask.
I work in a govt lab, and if you’re dealing with exp. you’re dealing with excel.
What I wished excel had, therefore, was the ability for the cell itself to be a complex number (or, better, a list of lists [0]).
[0] what is it they say and complex systems and LISP? :P
I didn't know these either and they seem like bolted on instead of properly integrated. Excel should overload the same operators to be able to write =A1A2 for example. But that being said it seems clumsy but workable. It does have a full set of math functions. For your example you can just do =improduct(A1,2) and it works. And that's just a slightly less convenient way of writing =A12. Certainly much better than having two cells per number?
Finding cycles in a graph is not that simple though. I'd expect they just keep a few state bits in each cell and when a cell that's marked as being in the process of calculation gets hit again as a dependency you've hit a cycle.
I am just old enough to remember VisiCalc (and clearly remember when Lotus 1-2-3 was new). I remember being impressed by lots of things back then (the word processor, the very first PC flight simulator, text adventures, very early GUIs). But as amazing as all of that was, I really feel like the spreadsheet required more lateral thinking than most of these other things.
Old ledger books were clearly part of the inspiration, but just today I was wondering if computer organization itself had inspired the idea. With high-level languages, you don't get as much of a sense of computing being all about arranging things on a kind of grid. Store this here, store that there, now combine those those things and put them over here . . . The spreadsheet abstracted that not just into a more convenient set of high-level operations, but into a real UI that people could understand. From a design standpoint, it was really a massive quantum leap.
Once in a while someone dreams up something really clever to do with a computer. That was definitely one of those moments.