Spreadsheet
From Free net encyclopedia
Image:Screenshot of an Excel spreadsheet.png
A spreadsheet is a rectangular table (or grid) of information, often financial information. The word came from "spread" in its sense of a newspaper or magazine item (text and/or graphics) that covers two facing pages, extending across the center fold and treating the two pages as one large one. The compound word "spread-sheet" came to mean the format used to present bookkeeping ledgers -- with columns for categories of expenditures across the top, invoices listed down the left margin, and the amount of each payment in the cell where its row and column intersect, for example -- which were traditionally a "spread" across facing pages of a bound ledger (book for keeping accounting records) or on oversized sheets of paper ruled into rows and columns in that format and approximately twice as wide as ordinary paper.
One of the first commercial uses of computers was in processing payroll and other financial records, so the programs (and, indeed, the programming languages themselves) were designed to generate reports in the standard "spreadsheet" format bookkeepers and accountants used. The more available and affordable computers themselves became in the last quarter of the 20th century, the more software became available for them, and programs to keep financial records and generate spreadsheet reports were always in demand. Those spreadsheet programs can be used to tabulate many kinds of information, not just financial records, so the term "spreadsheet" has developed a more general meaning as information presented in a rectangular table, usually generated by a computer.
History
The concept of an electronic spreadsheet was outlined in the 1961 paper "Budgeting Models and System Simulation" by Richard Mattessich. Some credit for the computerized spreadsheet perhaps belongs to Pardo and Landau, who filed a patent (U.S. Patent no. 4,398,249) on some of the related algorithms in 1970. While the patent was originally rejected by the patent office as being a purely mathematical invention, Pardo and Landau won a court case establishing that "something does not cease to become patentable merely because the point of novelty is in an algorithm." This case helped establish the viability of software patents.
The generally recognized inventor of the spreadsheet is Dan Bricklin. Bricklin has spoken of watching his university professor create a table of calculation results on a blackboard. When the professor found an error, he had to tediously erase and rewrite a number of sequential entries in the table, triggering Bricklin to think that he could replicate the process on a computer, using the blackboard as the model to view results of underlying formulas. His idea became VisiCalc, the first application that turned the personal computer from a hobby for computer enthusiasts into a business tool.
Image:Visicalc.gifVisiCalc went on to become the first "killer app", an application that was so compelling, people would buy a particular computer just to own it. In this case the computer was the Apple II, and VisiCalc was no small part in that machine's success. The program was later ported to a number of other early computers, notably CP/M machines, the Atari 8-bit family and various Commodore platforms. Nevertheless, VisiCalc remains best known as "an Apple II program".
The introduction of the IBM PC in 1982 was initially fairly unsuccessful, as most of the programs available for it were ports from other 8-bit platforms. Things changed dramatically with the introduction of Lotus 1-2-3, which became that platform's killer app, and drove widespread sales of the PC due to the massive improvements over the VisiCalc port on the same platform. VisiCorp never responded in any convincing fashion, and disappeared within a few years.
Lotus 1-2-3 underwent an almost identical cycle with the introduction of Windows 3.x in the late 1980s. Microsoft had been developing Excel on the Macintosh platform for several years at this point, and it had developed into a fairly powerful system. A port to Windows 3.1 resulted in a fully-functional Windows spreadsheet which quickly took over from Lotus in the early 1990s. By the time Lotus responded with a usable Windows version of their own, Microsoft had started compiling their Office suite, a juggernaut that remains unassailable to this day.
A number of companies have attempted to break into the spreadsheet market with programs based on very different paradigms. Lotus introduced what is likely the most successul example, Lotus Improv, which saw some commercial success, notably in the financial world where it's powerful data mining capabilities remain well respected to this day. Spreadsheet 2000 attempted to dramatically simplify formula construction, but was generally not successful. Stories attempted to make it easier to deal with 3-D blocks of data (as opposed to the 2-D nature of most spreadsheets), but appears to have seen little or no use.
Programming issues
Just as the early programming languages were designed to generate spreadsheet printouts, programming techniques themselves have evolved to process tables (also known as spreadsheets or matrices) of data more efficiently in the computer itself.
Spreadsheets have evolved into powerful programming languages, specifically, they are functional, visual, and multiparadigm languages. Spreadsheets qualify as programming languages because all or most of them are Turing complete, except for the obvious memory/storage issue, which all real programming languages fail too; they can do loops via cyclic dependencies, and have more than enough logic. Disqualifying spreadsheets as programming languages, due to their different, non-linear format, suggests disqualifying all other languages with non-linear formats, such as all visual programming languages.
Many people find it easier to perform calculations, more so complex ones, in spreadsheets than by writing the equivalent sequential program. This power derives from two traits of spreadsheets.
- They use spatial relationships to define program relationships. Like all animals, humans have highly developed intuitions about spaces, and of dependencies between items. Sequential programming usually needs everything to be done by typing line after line of text, which must be read slowly and carefully to be understood and changed.
- They are forgiving, allowing partial results and functions to work. One or more parts of a program can work correctly, even if other parts are unfinished or broken. This makes writing and debugging programs much easier, and faster. Sequential programming usually needs every program line and character to be corect for a program to run. One error usually stops the whole program and prevents any result.
A spreadsheet program is designed to perform general computation tasks using spatial relationships rather than time as the primary organizing principle. Many programs designed to perform general computation use timing, the ordering of computational steps, as their primary way to organize a program. A well defined entry point is used to determine the first instructions, and all other instructions must be reachable from that point.
In a spreadsheet, however, a set of cells is defined, with a spatial relation to one another. In the earliest spreadsheets, these arrangements were a simple two-dimensional grid. Over time, the model has been expanded to include a third dimension, and in some cases a series of named grids. The most advanced examples allow inversion and rotation operations which can slice and project the data set in various ways.
The cells are functionally equivalent to variables in a sequential programming model. Cells often have a formula, a set of instructions which can be used to compute the value of a cell. Formulas can use the contents of other cells or external variables such as the current date and time. It is often convenient to think of a spreadsheet as a mathematical graph, where the nodes are spreadsheet cells, and the edges are references to other cells specified in formulas. This is often called the dependency graph of the spreadsheet. References between cells can take advantage of spatial concepts such as relative position and absolute position, as well as named locations, to make the spreadsheet formulas easier to understand and manage.
Spreadsheets usually attempt to automatically update cells when the cells on which they depend have been changed. The earliest spreadsheets used simple tactics like evaluating cells in a particular order, but modern spreadsheets compute a minimal recomputation order from the dependency graph. Later spreadsheets also include a limited ability to propagate values in reverse, altering source values so that a particular answer is reached in a certain cell. Since spreadsheet cells formulas are not generally invertable, though, this technique is of somewhat limited value.
Many of the concepts common to sequential programming models have analogues in the spreadsheet world. For example, the sequential model of the indexed loop is usually represented as a table of cells, with similar formulas. Cyclic dependency graphs produce the traditional construct known as the infinite loop. Most spreadsheets allow iterative recalculation in the presence of these cyclic dependencies, which can be either directly controlled by a user or which stop when threshold conditions are reached.
Spreadsheet List
The following is a list of spreadsheets.
Freeware/open source software
- OpenOffice.org Calc
Spreadsheets that are parts of suites
u
Stand alone spreadsheets
Spreadsheet viewers
- Columbus Viewer
- Lotus KeyView - difficult to find.
- Microsoft Excel Viewer
Proprietary software
Spreadsheets that Are Parts of Suites
- 602 Office Tab
- Ability Office Spreadsheet
- Applixware Spreadsheets
- AppleWorks
- Ashampoo Office PlanMaker
- Corel WordPerfect Office Quattro Pro
- EasyOffice EasySpreadsheet
- Evermore Integrated Office Spreadsheet
- Framework
- Gobe Spreadsheet
- Lotus SmartSuite Lotus 123 and Lotus Add-ons like @Base and @Factory and Allways
- Microsoft Office Excel
- Microsoft Works Spreadsheet
- Softmaker Office 2004 PlanMaker
- StarOffice Calc
- Techdigm Office Calc
- Thinkfree Office Spreadsheet
- Xoom Office Spreadsheet
Stand Alone Spreadsheets
- Ability Spreadsheet
- Excel
- ExcelExplorer - Some Light Editing
- GS-Calc
- Mariner Calc (for Macintosh)
- Softmaker Office Planmaker 2006
- Spread32
- SygmaPlot
- The Cruncher (for Macintosh)
Spreadsheets ++(evolution of the spreadsheet idea or additonal elements included like presentation, statistics etc.)
Online Spreadsheets
Spreadsheet Related Developmental Software
- ExcelLite (.NET component)
- KDCalc
- SpreadsheetGear for .NET
- ExtenXLS
Add-ins and Spreadsheet Assisting Apps
- ComplyXL
- [Sundera http://www.sundera.com] enables real time collaboration between multiple Excel users. It distributes and collects data, not files, directly to your spreadsheet from and to multiple spreadsheet sources by secure and easy way.
Spreadsheet Viewers
- ExcelExplorer - More a viewer than editor
Historical
References
External links
General information
- A Brief History of Spreadsheets by D.J. Power
- A Spreadsheet Programming article on DevX
- comp.apps.spreadsheets FAQ by Russell Schulz
- Extending the Concept of Spreadsheet by Jocelyn Paine
- Develop Training Simulations with Excel
- Linux Spreadsheets by Christopher Browne; much general information on spreadsheets, and some on related Linux issues
- Software Arts and VisiCalc, by Dan Bricklin
- Spreadsheet - Its First Computerization (1961-1964) by Richard Mattessich
- "Spreadsheet Wars" - A classic video showing spreadsheet vendors going head-to-head in the late 80's .
Related software
Research organisations
See also
cs:Tabulkový procesor da:Regneark de:Tabellenkalkulation es:Hoja de cálculo fr:Tableur gl:Folla de cálculo ko:스프레드시트 id:Lembar kerja it:Foglio elettronico he:גיליון אלקטרוני lt:Elektroninė skaičiuoklė nl:Spreadsheet ja:表計算ソフト pt:Planilha eletrônica ru:Табличный процессор fi:Taulukkolaskenta sv:Kalkylprogram