International Symposium on Software Composition

Lotus 1-2-3

Lotus 1-2-3 is a discontinued spreadsheet program from Lotus Software (later part of IBM). It was the IBM PC's first killer application, was hugely popular in the 1980s and contributed significantly to the success of the IBM PC.

1-2-3 was the spreadsheet standard throughout the 1980s and into the 1990s, part of an unofficial set of three stand-alone office automation products that included dBase and WordPerfect, to build a complete business platform. With the acceptance of Windows 3.0, the market for desktop software grew even more. None of the major spreadsheet developers had seriously considered the graphical user interface to supplement their DOS offerings, and so they responded slowly to Microsoft's own graphical-based products, Excel and Word. Lotus was surpassed by Microsoft in the early 1990s and never recovered. IBM purchased Lotus in 1995 and continued to sell Lotus offerings, only officially ending sales in 2013.

The Lotus Development Corporation was founded by Mitchell Kapor, a friend of the developers of VisiCalc. 1-2-3 was originally written by Jonathan Sachs, who had written two spreadsheet programs previously while working at Concentric Data Systems, Inc. To aid its growth, in the UK, and possibly elsewhere, Lotus 1-2-3 was the very first computer software to use television consumer advertising.

The initial release of 1-2-3 supported only three video setups, CGA, MDA (in which case the graph maker was not available) or dual monitor mode. However, a few months later support was added for Hercules Computer Technology's Hercules Graphics Adapter which was a clone of the MDA that allowed bitmap mode. The ability to have high-resolution text and graphics capabilities (at the expense of color) proved extremely popular and Lotus 1-2-3 is credited with popularizing the Hercules graphics card.

Microsoft's early spreadsheet Multiplan eventually gave way to Excel, which debuted on the Macintosh in 1985. It arrived on PCs with the release of Windows 2.x in 1987, but as Windows was not yet popular, it posed no serious threat to Lotus' stranglehold on spreadsheet sales. However, Lotus suffered technical setbacks in this period. Version 3 of Lotus 1-2-3, fully converted from its original macro assembler to the more portable C language, was delayed by more than a year as the totally new 1-2-3 had to be made portable across platforms and fully compatible with existing macro sets and file formats. The inability to fit the larger code size of compiled C into lower-powered machines forced the company to split its spreadsheet offerings, with 1-2-3 release 3 only for higher-end machines, and a new version 2.2, based on the 2.01 assembler code base, available for PCs without extended memory. By the time these versions were released in 1989, Microsoft had eroded much of Lotus' market share.

Macros in version one and add-ins (introduced in version 2.0) contributed much to 1-2-3's popularity, allowing dozens of outside vendors to sell macro packages and add-ins ranging from dedicated financial worksheets like F9 to full-fledged word processors. In the single-tasking MS-DOS, 1-2-3 was sometimes used as a complete office suite. All major graphics standards were supported; initially CGA and Hercules, and later EGA, AT&T, and VGA. Early versions used the filename extension "WKS". In version 2.0, the extension changed first to "WK1", then "WK2". This later became "WK3" for version 3.0 and "WK4" for version 4.0.

After previewing 1-2-3 on the IBM PC in 1982, BYTE called it "modestly revolutionary" for elegantly combining spreadsheet, database, and graphing functions. It praised the application's speed and ease of use, stating that with the built-in help screens and tutorial "1-2-3 is one of the few pieces of software that can literally be used by anybody. You can buy 1-2-3 and [an IBM PC] and be running the two together the same day". PC Magazine in 1983 called 1-2-3 "a powerful and impressive program ... as a spreadsheet, it's excellent", and attributed its very fast performance to being written in assembly language.