Est. 1985 Intermediate

Clipper

Nantucket's compiler for the dBASE III language, which turned interpreted database programs into stand-alone DOS executables and grew into a language of its own before Computer Associates bought it in 1992.

Created by Nantucket Corporation (Barry ReBell and Brian Russell); later Computer Associates

Paradigm Procedural, xBase data-centric (built-in object classes from Clipper 5)
Typing Dynamic, Weak
First Appeared 1985
Latest Version CA-Clipper 5.3b (around 1997)

Clipper was a compiler for the dBASE language that became a language in its own right. dBASE III was an interpreter: every copy of an application needed dBASE on the machine, and every line was re-read each time it ran. Nantucket Corporation’s Clipper compiled the same programs into stand-alone DOS .EXE files that could be handed out without a dBASE licence. From 1985 into the early 1990s it was one of the most common ways to build small business database software on the IBM PC. Its descendants, Harbour and xHarbour (open source) and Xbase++ and FlagShip (commercial), still compile Clipper code today. The language they implement is Clipper, not dBASE.

History and Origins

Nantucket and the dBASE compiler

Nantucket was founded by Barry ReBell, who ran the business, and Brian Russell, who ran the technical side. Using Clipper (Que, 1988), a guide to Summer ‘87, says the two knew each other from Ashton-Tate, the publisher of dBASE. ReBell had run a company that supplied Ashton-Tate with temporary staff, and some Ashton-Tate programmers thought a compiler should be the next step for dBASE. Datamation covered the product in its 1 February 1985 issue, before it shipped. It reported that Clipper’s chief architect had come to Nantucket from Ashton-Tate after Ashton-Tate declined to build a compiler, and that Russell expected Ashton-Tate to welcome Clipper. The company was then listed in Malibu, California. By June 1985 its ads gave an address on South Sepulveda Boulevard in Culver City.

The first release was called Winter ‘84, although it did not ship in the winter of 1984. On a surviving copy, the main executable is dated 18 April 1985 and other files are dated up to 19 May 1985. The collector who described the disk noted that “their releases were a bit delayed.” By June 1985, Nantucket was running full-page ads in Computer Language and, from that autumn, in BYTE. They called Clipper “the first true compiler for dBASE III.”

The seasonal releases

Until 1990, releases were named after seasons rather than numbered:

ReleaseApproximate dateNotes
Winter ‘84Spring 1985First release; files dated up to 19 May 1985
Summer ‘851985Required 256 KB RAM and DOS 2.0; disks copy-protected with SuperLok
Winter ‘85Early 1986System files dated 29 January 1986
Autumn ‘861986Compiler banner reads “Copyright (c) 1985, 1986 Nantucket Corp.”
Summer ‘87Late 1987The best-known and longest-used of the “dBASE compiler” releases

Summer ‘87 lasted a long time. Retailers were still listing it in 1989, and many developers kept using it well after Clipper 5.0 came out.

Clipper 5 and the break from dBASE

Clipper 5.0 shipped in 1990, and Nantucket was advertising it heavily in Computerworld by October that year. It was no longer sold as a dBASE compiler. Its ads called it “The Application Development Standard,” and it added features that had nothing to do with dBASE:

  • Lexically scoped LOCAL and STATIC variables alongside the older dynamically scoped PUBLIC and PRIVATE memory variables
  • Code blocks: compiled, first-class anonymous expressions that can be stored, passed and run with EVAL(). They replaced much of the old macro (&) string evaluation
  • A full preprocessor with #define, #include, #command and #translate. Much of the xBase command language itself was defined through preprocessor rules in a standard header, so developers could add their own commands the same way
  • Built-in object classes such as TBrowse, Get and Error, used through : message syntax. Developers could not define their own classes in standard Clipper 5, so third-party class libraries filled that gap

Later in the 5.x line, Clipper added replaceable database drivers (RDDs), which separated the language from any single file format. A July 1991 book on Clipper 5.0 still described RDDs as something that would “become available.” By 1993, third parties such as the Advantage Xbase Engine were selling their own RDDs.

The changes in 5.0 were large enough to split the user base. A 1991 Library Computing review quotes a self-employed developer who still used Summer ‘87 although he had owned 5.0 for nearly a year. Clipper 5.01 followed, and it was being sold at retail by mid-1991.

Computer Associates

At the beginning of May 1992, ReBell, who according to Computer Business Review was Nantucket’s founder and 100% shareholder, sold the company to Computer Associates International. At the time Nantucket was also developing Aspen, an object-oriented, Windows-oriented product for the Clipper community. Computer Associates later released it as CA-Visual Objects. The DOS product was renamed CA-Clipper:

ReleaseBuild date
5.20 (Rev. 196)15 February 1993
5.2a (Rev. 197)15 March 1993
5.2b (Rev. 202)June 1993
5.2c (Rev. 204)6 August 1993
5.2d (Rev. 215)25 March 1994
5.2e (Rev. 216)7 February 1995
5.3Files dated 20 June 1995 (release lists say 26 June)
5.3a / 5.3bAround 1996 and 1997

Many programmers thought 5.2e was the best of these. CA-Clipper 5.3 came with the Blinker linker for real mode and the ExoSpace linker for protected mode. Protected mode let applications use memory above DOS’s 640 KB limit. Clipper never became a native Windows product; Windows work went to Visual Objects instead. On 22 April 2002 Computer Associates and GrafX Software announced a licensing agreement under which GrafX took over marketing and distribution of CA-Clipper and CA-Visual Objects. By one reseller’s account, Computer Associates wrote in January 2004 that it had “no remaining interest in Nantucket or CA-Clipper software.”

Design Philosophy

Clipper’s first goal was compatibility: take the programs dBASE III developers already had and make them run faster, with no dBASE installed. Nantucket’s 1985 ads said Clipper would run dBASE III programs “2 to 20 times faster” than the standard dBASE interpreter. That range was Nantucket’s marketing claim. The ads did not say which programs, operations or machines produced it.

Clipper also removed things. It was a compiler, so it had no interactive dot prompt, which was central to using dBASE. Clipper programs were edited in a text editor, compiled, linked with a DOS linker such as PLINK86 (bundled with early releases), and run. That made Clipper a language for building and distributing applications, while dBASE remained a tool for working with data interactively.

From version 5 onward, the goal changed from matching dBASE to extending it. Clipper added scoping, code blocks and a programmable preprocessor. It kept the xBase commands (USE, SEEK, REPLACE, @ ... SAY ... GET) that made existing code and existing developers productive.

Key Features

xBase commands and screen forms

Much of a Clipper program is dBASE-style commands for opening tables, moving through records and drawing text-mode data-entry screens:

USE Customer SHARED NEW
CLEAR
@ 1, 0 SAY "CustNum" GET Customer->CustNum PICTURE "999999" ;
       VALID Customer->CustNum > 0
@ 3, 0 SAY "Contact" GET Customer->Contact VALID !Empty(Customer->Contact)
@ 4, 0 SAY "Address" GET Customer->Address
READ

@ ... GET together with READ gave field-by-field editing with picture masks and validation rules built into the language. This was the main reason Clipper applications could be built quickly.

Clipper 5 language features

FUNCTION Main()
   LOCAL aPrices := { 12.50, 3.99, 7.25 }
   LOCAL bTax    := {| n | n * 1.08 }   // a code block
   LOCAL nTotal  := 0

   AEval( aPrices, {| n | nTotal += Eval( bTax, n ) } )
   ? "Total with tax:", nTotal
   RETURN NIL

Code blocks ({| params | expression }) were Clipper 5’s most important addition. They let library functions such as AEval(), DBEval() and the TBrowse object take behaviour as a parameter, much like function pointers or lambdas in other languages.

Other characteristics

  • Dynamic typing with character, numeric, date, logical, memo, array, code block, object and NIL values. Hungarian-style prefixes like cName, nTotal and aList were a convention, not something the language enforced
  • Macro operator &, which compiles and runs a string at run time. It was inherited from dBASE
  • Native .DBF tables and .NTX indexes, plus other formats through the RDD layer in later 5.x releases
  • An extensible library: C and assembly routines could be linked into Clipper programs. This supported a large market for add-on libraries

Evolution and Successors

Clipper’s development ended with 5.3b, but its source code was portable enough that other products took it over:

  • FlagShip (multisoft Datentechnik) is a commercial compiler, first aimed at Unix and later at Linux, for porting Clipper and other xBase applications
  • Xbase++ (Alaska Software) is a commercial 32-bit Windows successor that claims compatibility with Clipper Summer ‘87 and 5.x and adds object orientation
  • Harbour, started in 1999, is an open-source, cross-platform Clipper-compatible compiler. xHarbour is a fork of it that adds more extensions
  • CA-Visual Objects grew out of Nantucket’s Aspen project. It shares Clipper’s syntax but is a separate Windows language

Because these products exist, Clipper code has run far longer than any DOS compiler normally would. Code written for Summer ‘87 can, in many cases, still be compiled for 64-bit Linux or Windows today.

Current Relevance

CA-Clipper itself is a discontinued DOS product. It runs in DOS emulators and on old hardware, and no one sells or supports it. The language is still used through Harbour and its relatives. Some businesses still run Clipper-derived systems, and Clipper user communities reportedly remain active, especially in Brazil and parts of Europe. The Usenet group comp.lang.clipper and archives such as The Oasis keep decades of add-on libraries and discussion.

Why It Matters

Clipper showed that a compiler for another company’s interpreted language could be a successful business. It did well enough that its users came to treat it as the main language and dBASE as the ancestor. For many small companies in the late 1980s, a custom Clipper application was the first software written specifically for them, which made Clipper an important part of the “xBase” era of PC database programming. The language also shows how software outlives the company that made it. Nantucket was sold in 1992 and CA-Clipper stopped in the late 1990s, but the language continues in open-source compilers.

Timeline

1985
In February, before release, Datamation describes Clipper as a dBASE compiler from Nantucket Inc. of Malibu, California, whose chief architect came from Ashton-Tate
1985
The first version, Clipper Winter '84, ships in spring 1985 despite its name. Its files are dated up to 19 May 1985, and full-page ads run from June 1985
1986
Clipper Winter '85 ships with files dated 29 January 1986. Clipper Autumn '86 follows later in the year
1987
Clipper Summer '87, the last of the seasonally named releases, arrives around the end of 1987 and becomes the long-lived baseline many DOS applications were written for
1990
Clipper 5.0 adds local and static variables, code blocks, a full preprocessor and built-in object classes. Nantucket advertises it as "The Application Development Standard"
1992
Barry ReBell, Nantucket's founder and sole shareholder, sells the company to Computer Associates at the beginning of May. The product becomes CA-Clipper
1993
CA-Clipper 5.2, the first release under Computer Associates, is built on 15 February 1993. Patch releases 5.2a to 5.2e follow up to February 1995
1995
CA-Clipper 5.3 ships in June 1995 (files dated 20 June; release lists give 26 June). It includes the Blinker and ExoSpace linkers, so programs can run in protected mode
1997
CA-Clipper 5.3b, the final release of the product, appears around 1997 (release lists give 20 May 1997)

Notable Uses & Legacy

Early corporate and government buyers

Nantucket's June 1985 advertising named 3M, Touche Ross, Exxon, NASA, the Harvard Physics Department, the State of Arizona and TRW as installations that had bought Clipper to speed up their dBASE III programs. That list is the vendor's own claim

Medical illustration departments

According to a January 1993 article ("MIDS - the Medical Illustration Data System") in the Journal of Audiovisual Media in Medicine describes a database management system for medical illustration departments. It was compiled with Clipper to make it faster, and was then on Clipper 5.01

Small-business and vertical-market applications

Clipper's usual job was bespoke DOS software for inventory, accounting and client records, distributed as royalty-free stand-alone executables without requiring a dBASE licence on each machine

Legacy code kept alive by successor compilers

Harbour, xHarbour, Xbase++ and FlagShip were built to recompile existing Clipper source, so applications written for Summer '87 and 5.x could move to Windows, Linux and Unix without being rewritten

Language Influence

Influenced By

dBASE

Influenced

Harbour xHarbour Xbase++ FlagShip CA-Visual Objects

Running Today

Run examples using the official Docker image:

docker pull
Last updated: