VisiCalc (6694/vis002)

logo

Spreadsheet program 


for VISIble CALCulator

Spreadsheet programming language by Dan Bricklin and Bob Frankston

Pioneer spreadhseet system - first "killer app", and initiator of a design that still dominates its class


Related languages
MACSYMA => VisiCalc   Influence
QBE => VisiCalc   Influence

References:
  • Bricklin, Dan and Frankston, Bob "VISICALC Computer Software Program" Personal Software, California 1979. view details Abstract: This manual will show you how to use VisiCalc and your Apple computer to solve problems in your professional work and your everyday life.
  • Frankston, Bob "VisiCalc: The Visible Calculator" National Computer Conference 1979 Personal Computing Festival view details External link: Online copy Extract: Introduction
    Introduction
    Many people justifiably ask what today's personal computers are good for, aside from playing games. Typically equipped with a Basic Interpreter as the human interface, these machines either require extensive programming by the user or else require the purchase (when they are available) of restrictive canned programs for specific appli-cations. Few people can be expected to be able or willing to expend the effort to write programs in BASIC (or PASCAL) for simple applications. Canned packages tend to be very specific, Procrustean beds to which the user's application must conform.

    This is not to say that there is no way to make effective use of the personal computer. As we can see by the acceptance of a primitive personal computer, the pocket calculator, a flexible aid will be used extensively. We would like to capture the convenience and familiarity of the calculator in a personal computer. Looking at the way most people use calculators - normally with the aid of a sheet of paper to plan their work and record intermediate results - we can see how the calculator plus a flexible video screen could be a powerful tool. This is the premise or starting point for VisiCalc.

    How can we make the personal computer with its CRT screen an improvement over a sheet of paper? One limit of a calculator and paper is the difficulty of erasing and recal-culating. How often do people sit down with these familiar tools and try to work out a problem, be it income tax calculations, checking book balancing, business forecasting or whatever, only to finally give up or settle for a partial answer because of the difficulty of dealing with the recalculations necessary either to correct for errors or to try different starting values? How nice it would be if the paper and the cal-culator worked together so that whenever you changed anything on the paper the other values would automatically be recalculated.

    VisiCalc addresses these needs. It is like a magic sheet of paper that can perform calculations and recalculations with ease. Basically, VisiCalc represents a very large sheet of paper organized into rows and columns of entries. By simply moving a cursor to an entry you can place values and expressions to be calculated on the screen. You can also type comments and titles. Of course, being limited to the current personal computers, you must view this sheet of paper through the window of the CRT screen. VisiCalc does, though, let you scroll through this 'window' in all four directions over the sheet of paper.

    The benefits of VisiCalc go beyond its humble origins as calculating paper. It represents a way of using computers that allows the user to ask 'what if' questions that would be too tedious to carry out by hand. Not only are such questions important in planning, they can be vital to the user in learning and coming to understand his own application.

    Both the words 'serendipity' and 'synergy' are appropriate for VisiCalc. As VisiCalc evolved it showed us how effective personal computers can be as streamlined interactive tools. But, VisiCalc was not simply a lucky extrapolation of the basic ideas. Both authors of VisiCalc have extensive background in using large mainframes as personal computers and in creating systems to be used by large numbers of people with little training. Word processing background was of special importance since it provided experience in designing screen-based, highly interactive interfaces. More important for VisiCalc, it made us very aware of the need for a carefully designed and tuned user interface. This interface was constantly refined during the development process. Extract: The software problem
    The software problem
    As personal computers become more common, the software problem becomes the limiting factor in the ability to use the personal computer. The current attempt to get every-one to learn and use BASIC is not the answer. Much of what is involved in programming is conceptualization and description - the hard parts of problem solving. Even the ultimate in general-purpose procedural languages will not remove the difficulties in programming. These languages are, of course, necessary for those people who do programming, such as the personal computer software engineers. But there are simply not enough programmers available to write all of the canned applications that can be anticipated.

    Thus our task as professionals becomes one of finding the appropriate level of tools that correspond to the level at which the user deals with an application. On large computers this has been done with database languages such as IBM's Query By Example (QBE). At MIT, the Macsyma system provides a powerful tool for doing symbolic manipulation of mathematical expressions. For personal computers, VisiCalc presents an interface to the user which builds upon that with which he is already familiar. It is, of course, constrained by the memory and processing limits of the current generation of personal computers.
  • Beil, Donald H. "The Visicalc Book" Virginia Reston 1982 view details
  • Trost, Stanley R. & Charles Pomernacki "Visicalc for Science and Engineering" Berkeley Sybex, 1983 view details
  • Lima, I.G. "Programming Decentralised Computers" Department of Computing Science, University of Newcastle upon Tyne, 1984 view details External link: Online copy
  • Kibby MR "The electronic spreadsheet as a general-purpose programming tool" Comput Appl Biosci. 1985;1(2):73-8 view details
  • Bricklin, Dan "Was VisiCalc the 'first' spreadsheet?" Web essay, 1999 view details Abstract: It was the combination of many things including its "programming by example" user interface and its influence on others that made VisiCalc special. External link: Online copy
  • Frankston, Bob "Implementing Visicalc" The Origins and Impact of VisiCalc Computer History Museum April 8th 2003. view details Abstract: This is my long-delayed attempt at writing about my experience in writing VisiCalc and the many design decisions that we made along the way. But even after nearly a quarter century I remember many of the details though maybe my memories have evolved. The process of writing down this experience is already evoking many memories and, unless proven otherwise, I'll assume that they are memories of real events but others may view it differently and I will try to correct the more creative aspects of my memory.

    Even simple decisions were only simple in context. They were all intertwined and I will try to reduce the confusion by separating aspects of implementation, design and business.

    External link: Online copy Extract: Calculations and Formulas
    Calculations and Formulas
    At its heart, VisiCalc is about numbers. One of the early decisions we made was to use decimal arithmetic so that the errors would be the same one that an accountant would see using a decimal calculator. In retrospect this was a bad decision because people turn out to not care and it made calculations much slower than they would have been in binary.

    We did want to have enough precision to handle large numbers for both scientific calculations and in the unrealistic case it would be used to calculate the United States budget. Of course, as it turned out, that was one of the real applications.

    Since the formulas did depend on each other the order of (re)calculation made a difference. The first idea was to follow the dependency chains but this would have involved keeping pointers and that would take up memory. We realized that normal spreadsheets were simple and could be calculated in either row or column order and errors would usually become obvious right away. Later spreadsheets touted "natural order" as a major feature but for the Apple ][ I think we made the right tradeoff.

    The functions or, as they were called, the @functions each had a story. Some, like @sum seem simple enough but we did have to deal with ranges (as in A1+AIU-A2). @average skipped over empty cells and @count could be used to find the count of nonempty cells.

    For @npv (net present value) we decided on a formula which was different from that used in COBOL (a programming language). The COBOL committee was later asked to be compatible with VisiCalc though I don't think they made the change.

    One of the early applications for VisiCalc was my 1979 tax form. I created @lookup for that purpose.

    The transcendental functions like @sin were going to be a problem so we decided to omit them in the initial version but, unfortunately, in this review of VisiCalc, Carl Helmers praised that aspect of VisiCalc and we felt obliged to implement them. This was a real pain because I had to find books on such functions and how to compute them for the appropriate precision and range of values and all this had to be done in very little space. It took a week or two but eventually we did them. At this point Dan was available and joined in the programming.

    Resources
    • Dan Bricklin's VisiCalc pages
      The idea for the electronic spreadsheet came to me while I was a student at the Harvard Business School, working on my MBA degree, in the spring of 1978. Sitting in Aldrich Hall, room 108, I would daydream. "Imagine if my calculator had a ball in its back, like a mouse..." (I had seen a mouse previously, I think in a demonstration at a conference by Doug Engelbart, and maybe the Alto). And "..imagine if I had a heads-up display, like in a fighter plane, where I could see the virtual image hanging in the air in front of me. I could just move my mouse/keyboard calculator around, punch in a few numbers, circle them to get a sum, do some calculations, and answer '10% will be fine!'" (10% was always the answer in those days when we couldn't do very complicated calculations...)


      The summer of 1978, between first and second year of the MBA program, while riding a bike along a path on Martha's Vineyard, I decided that I wanted to pursue this idea and create a real product to sell after I graduated.
      external link
    • Implementing VisiCalc
      This is my long-delayed attempt at writing about my experience in writing VisiCalc and the many design decisions that we made along the way. But even after nearly a quarter century I remember many of the details though maybe my memories have evolved. The process of writing down this experience is already evoking many memories and, unless proven otherwise, I'll assume that they are memories of real events but others may view it differently and I will try to correct the more creative aspects of my memory.

      external link
    • Computer History Museum's The Origins and Impact of VisiCalc panel on April 8th 2003
      The Computer History Museum and Microsoft present "The Origins and Impact of VisiCalc" Dan Bricklin, Bob Frankston and Mitch Kapor with Charles Simonyiexternal link
    • VisiCalc Executable for the IBM PC
      The original VisiCalc program that ran on the IBM PC in 1981 still runs on today's PCs.external link
    • logo