
Implementing VisiCalc (2015) - franzb
http://rmf.vc/implementingvisicalc
======
sramsay
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.

~~~
DEADBEEFC0FFEE
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.

------
marktangotango
Does anyone know of terminal style spreadsheet program (thinking vim for
spreadsheets)? I’d love an all text ui like VisiCalc and lotus where.

~~~
jimktrains2
There is sc.
[https://en.m.wikipedia.org/wiki/Sc_(spreadsheet_calculator)](https://en.m.wikipedia.org/wiki/Sc_\(spreadsheet_calculator\))

~~~
sprash
Modernized version of sc:

[https://github.com/andmarti1424/sc-im](https://github.com/andmarti1424/sc-im)

------
dovvdkc
My biggest gripe with excel is that it doesn’t support complex numbers.
Otherwise it’s bloody brilliant.

Life in science would be so much easier if it did

(I work on the simulation end of electrochemistry. All the data I receive is
in excel sheets)

~~~
pedrocr
_> My biggest gripe with excel is that it doesn’t support complex numbers._

complex()/imsum()/etc are not what you need?

~~~
dovvdkc
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

~~~
pedrocr
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 =A1
_A2 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 =A1_2\. Certainly much better than having two cells per number?

------
ape4
I wonder how spreadsheets catch recursive formulas so quickly. eg cells that
depend on each other.

~~~
dannyfraser
As far as I know they build up a graph of the cell execution order, so
recursive loops are quite easy to find.

~~~
pedrocr
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.

