XBase

A fourth generation programming language that started life as the scripting language on the dBase II database software package, and its associated dbf database file format. The language is not very well structured but extremely compact and well suited to its intended use in relational databases making it one of the most rapid development languages out there, even modern RAD systems suffer in comparison in that specific domain. But although usable as a generic programming language, as soon as you venture out from the realm of database manipulation you really start to lose the advantages it has to offer.

History
During the 1980s and into the mid-90s xBase was the primary business language used on microcomputers archiving a dominance similar to what Cobol had on larger systems, with the majority of financial and business admin software for PCs being written in an xBase variant, and the wast bulk of custom business solutions. However even by the late 80s critical financial applications like accounting packages were moving to Btree database engines due to xBase's almost complete lack of database and transaction integrity tools and functions.

Continued popularity as a small business tool
xBase quickly became a standard for PC financial and business applications in Europe, more so than in its home country. This was in no small part because the dBase II package and other early xBase compatible products all supported different codepages in both the data structures and code, with the notable exception of FoxPro. Most of the competing North American and British vendors of programmable and/or relational PC database products and Business Basic only worked correctly with the Dutch subset of the Roman alphabet that DOS defaulted to and thus were only really usable with English, Afrikaans and Dutch, and by the time they had rectified this in the latter half of the 80s, xBase had become seriously entrenched in the market.

One of the factors in its continuing popularity, apart from the obvious existence of legacy code, is that the open source SQL compatible database systems that should by rights have replaced xBase in small custom programming jobs have all shown problems with the manipulation of international text even though they are meant to be compatible, but for instance the most popular of such product MySQL, even after two decades of development still corrupts Unicode encoded database records from time to time on top of Unicode text manipulation issues, although modern versions of it supply tools to fix that after a fashion.

While this is tolerable for web applications and web delivery systems built on those products like Content Management Systems solve this by having tools in the sysops user interface that fix such corruption or bypass the problem altogether by simply not storing Unicode text, it is an intolerable problem for small business program development. On one hand having corrupted text in your database can be bad for your image and on the other it can lead to technical problems. Your customers will find invoices where their name has been mangled either by not using the local character set or via a database corruption, to be somewhat unprofessional. On the technical side a text in a corrupted table will not look up correctly from an uncorrupted table, and in the real world if the data is a part of a postal address it might not deliver correctly. Even if the fixes for these problems are relatively simple they need a level of technical sophistication that even though low, might not exist in a small business. On top of that it is in general frowned upon to deliver custom small business solutions that will require maintenance no matter how small it is, since the IT budget for businesses with limited turnover like mom'n'pops restaurants for instance are for all intents and purposes non-existent and these sort of operations in general rely on "uncle technology" for IT support.

This alongside the high price, recurring license fees and in general the maintenance costs of commercial SQL solutions alongside the gradual move of alternate PC database solutions such as Filemaker et al, to a deployment license model has given xBase development a second life in the market, small business systems such as customised accounting software have increasingly chosen to stick with or revert to xBase or to move to embedded database system that are designed to not require routine maintenance such as Microsoft Embedded SQL Server that ships built into modern versions of MS Windows.

OS/2 implementations

 * Base32
 * dBase IV
 * Flagship - Unix Clipper compatible, announced for OS/2 but probably never shipped
 * Harbour - Current - Open source Clipper compatible
 * OnCMD
 * X2C - Open Source
 * XBase++ Clipper compatible system.
 * XHarbour - Open source Clipper compatible, a fork of Harbour.


 * DBF file viewers and editors
 * CDBFLite

Libraries and database engines

 * Bullet
 * C/Database Toolchest - Library for C and C++ programmers
 * CdBFile - Open Source
 * CodeBase - Clipper/dBase compatible database engine/library that could be called from any programming language.
 * dbfLIB/dbfLIB++ - Library for C and C++ programmers
 * dbfread - Python dbf read only lib. - Open source
 * dbfREXX - Library/function package for REXX programmers
 * e_Db - Library for C & C++, also has Java and VB APIs
 * Lattice dBC III - C libraries
 * libdbf - C library - Open source
 * OOxBase - Database engine with SOM interface - No longer available
 * PMI ModBase - dBase III/xBase interface and file compatibility, plus app generator - Modula-2
 * RexxBase - REXX extension that allow you to work with xBase files or databases - Freeware

OS/2 software that offers partial dBase compatibility

 * DBExpert - Uses xBase files but is otherwise incompatible.
 * IBM Works - shipped with BonusPak OS/2 Warp 3, formerly known as Footprint Works.
 * Note that both the Database and the PIM portion of IBM Works use xBase files as their underlying file format.


 * Lotus Approach - part of the Lotus SmartSuite package

OS/2 text & programmers editors with xBase support

 * Boxer - Clipper, FoxPro and dBase specific and generic xBase syntax highlighting support provided by default.
 * BRIEF - Clipper and dBase specific and generic xBase syntax highlighting support provided by default in latter versions of the package
 * Lugaru Epsilon - xBase syntax highlighting and auto-indent plus PRG file support available as a separate download.

DOS implementations

 * Clipper - Discontinued
 * dBase - Current - One of the last supported DOS database product - A re-release of the old dBase V product.
 * dBFast - Commercial
 * dBMAN - Discontinued
 * dBXL - Discontinued
 * Force - Discontinued
 * FoxBASE+ - Discontinued
 * FoxPro - Discontinued
 * Friday! - Simplified, non-programmable version of dBase
 * nanoBase - Open Source
 * QuickSilver - Discontinued

Flat file DOS databases that offer partial dBase compatibility
These otherwise flat file DOS databases offered some dBase compatibility, some only file level compatibility with opening and working with .dbf, .dbt and sometimes index files (.ndx and/or .mdx files), others offered minimal screen painting and xbase language compatibility that allowed you to get partial dBase functionality out of the package, usually with a severely limited relational/multi-file functions. In addition most if not all DOS spreadsheets and most OS/2 ones can work with dbf file but offer .dbt and index file compatibility only to a lesser degree or not at all. The main utility of these was that you could edit database tables with much less fuss than with a full development system, and correct table errors in custom applications coded in xBase or dBase that did not allow you to do so and/or were you only have access to the executables, while typically offering more functionality than a mere DBF file editor.
 * dBM - Freeware - original name "daily business manager" and not "data base manager" as you might think.
 * Little - Was shareware is now freeware
 * Lotus Works - Formerly sold as AlphaWorks
 * Microsoft Works - Discontinued
 * PC-File - Partial compatibility with versions 5 and up only - Version 5 is now freeware, later versions are not.
 * Spinnaker Better Working Eight-in-One

Relational DOS databases that offer partial dBase compatibility
These relational DOS database systems offered some dBase compatibility, some only file level compatibility with opening and working with .dbf, .dbt and sometimes index and memo field files (.ndx and/or .mdx files). In most cases this was offered as a way to get you to import your work into a their database system or to offer the capability of co-operation between a new system and an older one, but a few products like Alpha Four were sold as a easier way to work with xBase databases.


 * Alpha Four - Relational but not programmable, used dbf files natively and has a scripting language and a optional runtime.

DOS DBF file viewers and editors

 * CDBFLite - Commercial
 * Lattice DFE/DFU - Commercial
 * Power Browse - Commercial

Generic xBase development utilities for DOS

 * DOC - Code documentation generator
 * SNAP! - Code documentation generator - Originally in the public domain, later versions shareware.

DBF file repairers

 * Titanic - Shareware

DOS compatible programmers libraries and database engines that work with xBase files or systems

 * Bullet - Discontinued
 * C/Database Toolchest - Library for C and C++ programmers - Commercial
 * CdBFile - Open Source
 * CodeBase - Clipper/dBase compatible database engine/library that could be called from any programming language.
 * dbfLIB/dbfLIB++ - Library for C and C++ programmers
 * Dblisp - dBase II/II database access for GCL - Commercial
 * e_Db - Library for C & C++, also has Java and VB APIs - Commercial
 * How to read DBF files with QBasic
 * Lattice dBC III - C libraries
 * libdbf - C library - Open source
 * PMI ModBase - dBase III/xBase interface and file compatibility, plus app generator - Modula-2 - Commercial


 * DOS text editors
 * Boxer - Clipper, FoxPro and dBase specific and generic xBase syntax highlighting support provided by default.

Win-OS/2 Implementations

 * dBFast - Commercial
 * Visual FoxPro

xBase libraries and utilities

 * Clip-4-Win - A Clipper library that allows you to create 16 bit WinOS/2 or Windows 3.x applications. - Commercial

Flat file databases with partial dBase compatibility
These otherwise flat file databases offered some dBase compatibility, some only file level compatibility with opening and working with .dbf, .dbt and sometimes index files (.ndx and/or .mdx files), others offered minimal screen painting and xbase language compatibility that allowed you to get partial dBase functionality out of the package, usually with a severely limited relational/multi-file functions.
 * Microsoft Works for Windows - Discontinued
 * PC-File - Discontinued - Commercial

Libraries and database engines that work with xBase files or systems

 * C/Database Toolchest - Library for C and C++ programmers
 * CdBFile - Open Source
 * CodeBase - Clipper/dBase compatible database engine/library that could be called from any programming language.
 * dbfLIB/dbfLIB++ - Library for C and C++ programmers
 * GFA-BASIC dBASE Interface - Allows GFA Basic for Windows 3.x and WinOS/2 to read and write xBase data files.
 * Lattice dBC III - C libraries
 * libdbf - C library - Open source
 * PMI ModBase - dBase III/xBase interface and file compatibility, plus app generator - Modula-2

Java Implementations
Note that the xBase name is irritatingly enough also used by the xText project for their ELL lib in the Java world.

DBF/DBT File compatibility libraries and drivers

 * DANS DBF Library - Open Source
 * HXTT DBF Pure Java JDBC Drivers - Commercial
 * JavaDBF - Open source - Usage notes
 * JDBFDriver - Open Source
 * StelsDBF - Commercial
 * xBaseJ - Open source

Links

 * Erik Bachmann's Database pages - Contains info on the xBase file format and more.

Standards
There was some work on creating an xBase standard by IEEE in 1986 and 7 but that was blocked by Ashton-Tate who threatened a lawsuit. After all claims by Ashton-Tate had been refused in an infamous lawsuit due to the Public Domain status of the Falcon/Vulcan database in 1990, an ANSI (US standards authority) committee X3J19 was set up in 1991 to standardise the language. However that failed due to differences between the American and European members on if it should concentrate on just a Clipper/dBase III compatible language or an extended one with subgroups focused on specific domain extensions to the language, resulting in the Europeans leaving the committee en masse in 1995. As all commercial and open source xBase implementations in the latter half of the 90s originated in Europe with the sole exception of the original dBase who by then was seriously diminished force, the ANSI/X3J19 specification died a natural death.
 * TEXI The European xBase Institute

DBF file formats
Although the main .dbf file format is stable and has remained mostly unchanged for decades, there are a number of small variants of the format and the may index files and memo files are structured has varied more that the dbf file format itself. The links below are useful but the best description of the file format is to be found on Erik Bachmann's page in the links section above.
 * dBASE .DBF File Structure - by Borland
 * Level 7 DBF File Specifications - From dBase.com - Variation used by Visual dBase, dBase 7 and later.
 * Table File Structure (.dbc, .dbf, .frx, .lbx, .mnx, .pjx, .scx, .vcx) - From Microsoft, a simple explanation of different dbf etc files header arrangements.
 * dBASE Table File Format (DBF)
 * DBF file structure
 * SAS/ACCESS(R) 9.4 Interface to PC Files: Reference, Third Edition - a good short introduction to dbf file format.

Usage examples
Some counties within the state of Arizona in the USA allow accountants to bulk file tax returns for individuals and companies using .dbf files, more info here.