I was the Product Manager for SuperCalc, which was (probably) the second spreadsheet (VisiCalc was the first). SuperCalc was commissioned by Adam Osborn for his first computer and because the Osborn was a CP/M computer, SuperCalc would run on any CP/M computer (and about 120 different monitors).
SuperCalc was designed for tremendous arithmetic precision, which seemed like the right thing to do at the time (those accountant-types were pretty picky). So, SC was written with a binary coded decimal (BCD) math package.
A couple of years later, some upstart we all came to know as Mitch Kapor decided that he could vastly increase the speed of his nascent spreadsheet Lotus 1-2-3. He chose to use a binary math package. Since VisiCalc was now the #3 spreadsheet – within about a month of shipping, 1-2-3 was #1, and SC stayed #2 – Mitch’s decision caused us some serious discomfort back at the Sorcim ranch.
So we set out to make SuperCalc3, with all the bells and whistles that 1-2-3 had. We knew we had to replace our math package, but we had some interesting surprises along the way.
When our crazy Russian programmer finished the new math package, and we installed it, we found that some IF statements no longer resolved to their previous TRUE or FALSE states. (This was back when developers still tested software.) We quickly realized that the inherent rounding of BCD vs Binary math was causing the problems.
Martin Herbach, our resident genius and the primary develper of SC, came up with two solutions: a) fuzzy calculations for IF statements (patterned after my thinking, no doubt), and b) iterative calculations. It turned out that some spreadsheets would calculate properly if you just calculated everything more than once.
This gave SC an interesting edge over 1-2-3. Consider this simple model:
Cost of Sales 60% of sales
Gross Profit Sales – Cost of Sales
Profit Sharing 10% of net profits
Net Profit Gross Profit – Profit Sharing
Now, before anybody reports me to the SEC, FASB, AICPA, or the CIA, I know that this is a bogus financial model – but it made a great demo. If you did this calculation in 1-2-3, you’d get Profit Sharing of zero. But if you did the same calculation in SC, you’d get Profit Sharing of almost 4% of sales.
Whenever I could do this demo, I sold SC over 1-2-3. Everyone wanted their Profit Sharing calculated on SuperCalc.
Even though this example is a little far-fetched, iterative calculations can be very useful when you have formulas that don’t converge mathematically. I created an iterative goal seeking spreadsheet we included with SC for years that usually worked. Dozens of people worked on that model until they figured out how to make it work every time.
But hey, I’m just a marketeer. I’m no damn programmer.