This tool attempts to detect copyright violations in articles. In search mode, it will check for similar content elsewhere on the web using Google, external links present in the text of the page, or Turnitin (provided by EranBot), depending on which options are selected. In comparison mode, the tool will skip the searching step and display a report comparing the article to the given webpage, like the Duplication Detector.

Running a full check can take up to a minute if other websites are slow or if the tool is under heavy use. Please be patient. If you get a timeout, wait a moment and refresh the page.

Specific websites can be skipped (for example, if they copy from Wikipedia) by being added to the excluded URL list.

Site: https:// . .org
Page title: or revision ID:
Action:
Results cachedTo save time (and money), this tool will retain the results of checks for up to 72 hours. This includes the URLs of the checked sources, but neither their content nor the content of the article. Future checks on the same page (assuming it remains unchanged) will not involve additional search queries, but a fresh comparison against the source URL will be made. If the page is modified, a new check will be run. from 65 hours ago. Originally generated in 38.41 seconds using 8 queries. Permalink.
DBase
Violation Unlikely
2.9%
confidence
foxprohistory.org/interview_wayne_ratliff.htm
Checked Sources
URL Confidence Compare
http://www.foxprohistory.org/interview_wayne_ratliff.htm 2.9% Compare
http://articles.latimes.com/1990-12-15/business/fi-5823_1_original-program 2.9% Compare
http://www.foxprohistory.org/people_ashton.htm 2.9% Compare
https://help.libreoffice.org/Calc/Importing_and_Exporting_dBASE_Files 1.0% Compare
http://www.foxprohistory.org/jeblong_jpldis.htm 0.0% Compare
https://books.google.com/books?id=jC4EAAAAMBAJ&lpg=PA15&pg=PA72#v=onepage&q&f=false 0.0% Compare
http://www.dbase.com/Knowledgebase/beg/migrate5to7/Migrate.HTM 0.0% Compare
http://www.dbase.com/Knowledgebase/beg/migrate4to5/Migrate.HTM 0.0% Compare
http://www.prlog.org/12338018-dbase-llc-unveils-new-version-of-legendary-dbase-database-management-system.html 0.0% Compare
http://www.prlog.org/12446902-introducing-dbfexport-2-the-easiest-way-to-export-your-dbase-data-ever.html/ 0.0% Compare
http://www.prlog.org/12453418-dbase-llc-unveils-new-version-of-dbdos-pro-4.html/ 0.0% Compare
http://www.prlog.org/12456803-dbase-llc-introduces-dbdos-pro-4n-supports-multi-user-ms-dos-applications.html 0.0% Compare
http://www.prlog.org/12456802-dbase-llc-unshackle-your-windows-application-development-process-with-the-new-dbase-plus-10.html 0.0% Compare
https://www.prlog.org/12567044-dbase-llc-innovates-with-new-version-of-dbdos-pro-5n.html 0.0% Compare
https://www.prlog.org/12610667-all-hail-the-new-dbase-plus-11.html 0.0% Compare
http://office.microsoft.com/en-us/excel-help/troubleshoot-converting-file-formats-HP005203437.aspx 0.0% Compare
http://sourceforge.net/projects/xbasemode/ 0.0% Compare
https://wiki.openoffice.org/wiki/Connecting_dBase_%28xBase%29 0.0% Compare
https://archive.org/stream/byte-magazine-1980-07/1980_07_BYTE_05-07_Computers_and_Education#page/n199/mode/2up 0.0% Compare
https://fogsmoviereviews.files.wordpress.com/2012/07/office_space_gutting_fish.png 0.0% Compare
https://www.amazon.com/Understanding-dBASE-Sybex-Computer-Books/dp/089588349X 0.0% Compare
http://www.clicketyclick.dk/databases/xbase/format/index.html 0.0% Compare
http://www.dbase.com/new-data-management-company-launches-dbase-2-8-package-includes-definitive-book-on-legendary-product/ Excluded Compare
http://www.dbase.com/software-enables-ms-dos-databases-to-run-on-windows/ Excluded Compare
http://www.dbase.com/announcing-dbase-classic/ Excluded Compare
http://www.dbase.com/new-memory-manager-enables-dbase-to-run-even-faster-with-dbdos-1-5/ Excluded Compare
http://www.dbase.com/2013/03/ Excluded Compare
http://www.dbase.com/introducing-dbfexport/ Excluded Compare
http://www.dbase.com/introducing-dbdos-pro-2/ Excluded Compare
http://www.dbase.com/dbfcompare-release/ Excluded Compare
http://www.dbase.com/dbfimport-release/ Excluded Compare
http://www.dbase.com/windows-xp-dead-long-live-dbdos-pro-3/ Excluded Compare
https://en.wikipedia.org/wiki/DBase Excluded Compare
Article:

DBaseLogo BlackWithRed glass 300.png

Imperative, Declarative Cecil Wayne Ratliff Proprietary

Clipper, WordTech products, Harbour. FoxBASE+, FoxPro, Visual FoxPro, VP-Info

dBase (also stylized dBASE) was one of the first database management systems for microcomputers, and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language that ties all of these components together. dBase's underlying file format, the .dbf file, is widely used in applications needing a simple format to store structured data.

dBase was originally published by Ashton-Tate for microcomputer operating system CP/M in 1980, and later ported to Apple II and IBM PC computers running DOS. On the PC platform, in particular, dBase became one of the best-selling software titles for a number of years. A major upgrade was released as dBase III, and ported to a wider variety of platforms, adding UNIX, and VMS. By the mid-1980s, Ashton-Tate was one of the "big three" software publishers in the early business software market, the others being Lotus Development and WordPerfect.

Starting in the mid-1980s, several companies produced their own variations on the dBase product and especially the dBase programming language. These included FoxBASE+ (later renamed FoxPro), Clipper, and other so-called xBase products. Many of these were technically stronger than dBase, but could not push it aside in the market. This changed with the disastrous introduction of dBase IV, whose design and stability were so poor that many users switched to other products. At the same time, there was growing use of IBM-invented SQL (Structured Query Language) in database products. Another factor was user adoption of Microsoft Windows on desktop computers. The shift toward SQL and Windows put pressure on the makers of xBase products to invest in major redesign to provide new capabilities.

In spite of growing pressure to evolve, in the early 1990s xBase products constituted the leading database platform for implementing business applications. The size and impact of the xBase market did not go unnoticed, and within one year, the three top xBase firms were acquired by larger software companies. Borland purchased Ashton-Tate, Microsoft bought Fox Software, and Computer Associates acquired Nantucket. However, by the following decade most of the original xBase products had faded from prominence and several disappeared. Products known as dBase still exist, owned by dBase LLC.

History Origins

Jet Propulsion Laboratory Display Information System

In the late 1960s, Fred Thompson at the Jet Propulsion Laboratory (JPL) was using a Tymshare product named RETRIEVE to manage a database of electronic calculators, which were at that time very expensive products. In 1971 Thompson collaborated with Jack Hatfield, a programmer at JPL, to write an enhanced version of RETRIEVE which became the JPLDIS project. JPLDIS was written in FORTRAN on the UNIVAC 1108 mainframe, and was presented publicly in 1973. When Hatfield left JPL in 1974, Jeb Long took over his role.

While working at JPL as a contractor, C. Wayne Ratliff entered the office football pool. He had no interest in the game, but felt he could win the pool by processing the post-game statistics found in newspapers. In order to do this, he turned his attention to a database system and, by chance, came across the documentation for JPLDIS. He used this as the basis for a port to PTDOS on his kit-built IMSAI 8080 microcomputer, and called the resulting system Vulcan (after Mr. Spock on Star Trek).

Ashton-Tate

George Tate and Hal Lashlee had built two successful start-up companies - Discount Software was one of the first to sell PC software programs through the mail to consumers, and Software Distributors which was one of the first wholesale distributors of PC software in the world. They entered into an agreement with Ratliff to market Vulcan, and formed Ashton-Tate to do so. Ratliff ported Vulcan from PTDOS to CP/M. Hal Pawluk, who handled marketing for the nascent company, decided to change the name to the more business-like "dBase". Pawluk devised the use of lower case "d" and all-caps "BASE" to create a distinctive name. Pawluk suggested calling the new product version two ("II") to suggest it was less buggy than an initial release. dBase II was the result and became a standard CP/M application along with WordStar and SuperCalc.

In 1981, IBM commissioned a port of dBase for the then-in-development PC. The resultant program was one of the initial pieces of software available when the IBM PC went on sale the fall of 1981. dBase was one of a very few "professional" programs on the platform at that time, and became a huge success. The customer base included not only end-users, but an increasing number of "value added resellers", or VARs, who purchased dBase, wrote applications with it, and sold the completed systems to their customers. The May 1983 release of dBase II RunTime further entrenched dBase in the VAR market by allowing the VARs to deploy their products using the lower-cost RunTime system.

Although some critics stated that dBase was difficult to learn, its success created many opportunities for third parties. By 1984 more than 1,000 companies offered dBase-related application development, libraries of code to add functionality, applications using dBase II Runtime, consulting, training, and how-to books. A company in San Diego (today known as Advisor Media) premiered a magazine devoted to professional use of dBase, Data Based Advisor; its circulation exceeded 35,000 after eight months. All of these activities fueled the rapid rise of dBase as the leading product of its type.

dBase III

As platforms and operating systems proliferated in the early 1980s, the company found it difficult to port the assembly language-based dBase to target systems. This led to a re-write of the platform in the C programming language, using automated code conversion tools. The resulting code worked, but was essentially undocumented and inhuman in syntax, a problem that would prove to be serious in the future.

The resulting dBase III was released in May 1984. Although reviewers widely panned its lowered performance, the product was otherwise well reviewed. After a few rapid upgrades the system stabilized and was once again a best-seller throughout the 1980s, and formed the famous "application trio" of PC compatibles (dBase, Lotus 123, and WordPerfect). By the fall of 1984, the company had over 500 employees and was taking in $40 million a year in sales, the vast majority from dBase products.

Recent history

dBase has evolved into a modern object-oriented language that runs on 32-bit Windows. It can be used to build a wide variety of applications including web apps hosted on a Windows server, Windows rich client applications, and middleware applications. dBase can access most modern database engines via ODBC drivers. DOS versions can still run on the latest Windows/Linux machines using the Virtual Machine (VM) DOSbox, or the later variant dbDOS. In 2015, dBase, LLC. introduced a set of new utilities called dbfUtils. The utilities include: dbfExport to export data from .dbf files to CSV, Microsoft(R) Excel, and XML, dbfImport allows users to import CSV, Microsoft(R) Excel, and XML files into a .dbf. dbfCompare allows 2 .dbf tables to compare differences and gives an easy way to synchronize tables. Finally the new dbfInspect allows users to deep-dive into the .dbf files and their contents.

dBase features an IDE with a Command Window and Navigator, a just-in-time compiler, a preprocessor, a virtual-machine interpreter, a linker for creating dBase application .EXEs, a freely available runtime engine, and numerous two-way GUI design tools including a Form Designer, Report Designer, Menu Designer, Label Designer, Datamodule Designer, SQL Query Designer, and Table Designer. Two-way Tools refers to the ability to switch back and forth between using a GUI design tool and the source code editor. Other tools include a Source Code Editor, a Project Manager that simplifies building and deploying a dBase application, and an integrated Debugger. dBase features structured exception handling and has many built-in classes that can be subclassed via single inheritance. There are visual classes, data classes, and many other supporting classes. Visual classes include Form, SubForm, Notebook, Container, Entryfield, RadioButton, SpinBox, ComboBox, ListBox, PushButton, Image, Grid, ScrollBar, ActiveX, Report, ReportViewer, Text, TextLabel and many others. Database classes include Session, Database, Query, Rowset, Field, StoredProc and Datamodule classes. Other classes include File, String, Math, Array, Date, Exception, Object and others. dBase objects can be dynamically subclassed by adding new properties to them at runtime.

Recent version history

Version Released Notes dBASE PLUS 2.8 April 23, 2012 An upgrade release from 2.7.1. dbDOS 1.0 May 14, 2012 dbDOS is a new product to allow users of the DOS based dBase products to continue to use the product on the latest Windows OSs and hardware. dBASE CLASSIC Introduced to work with the dbDOS program August 10, 2012 dBASE CLASSIC, a dBASE for MS-DOS is back. dBASE CLASSIC is based on the original dBASE V for DOS product released by Borland back in 1994. dbDOS 1.5.x October 10, 2012 Enhanced printing capability to now closely resemble printouts from the 1980s and 1990s. dBASE PLUS 8 with ADO March 18, 2013 The current version, dBase PLUS 8, was announced on March 19, 2013. The product not only supports the existing BDE connectivity, but it also adds support for ADO and ODBC either through the new ADO approach or with the existing BDE connections. This update of dBase PLUS 8 has been graphically enhanced, has been modernized for continued support on today's more recent operating systems including support for running applications on Microsoft’s Windows 8 and Windows Server 2012. The product is fully compatible with earlier 32-bit versions of dBase including Visual dBase 7.x and dB2K. It is partly compatible with 16-bit Windows versions (dBase for Windows 5.x and Visual dBase 5.x) and with older DOS versions (dBase II, dBase III, dBase IV, and dBase 5). The latest dbDOS is called dbDOS PRO 2. dbfExport August 7, 2013 The first major release of a new set of utilities from dBase, LLC. The new dbfExport can convert dBASE data from .dbf files to CSV, Microsoft Excel, or XML in three easy steps. dbDOS PRO 2 August 23, 2013 The next major release of the dbDOS product line. Improved Memory Management System that does not require additional 3rd-party memory managers which reduces the hardware conflicts. Reliably copy information from Windows into dbDOS VM clipboard. Re-engineered technique that allows one to paste information from dbDOS VM into the Windows OS clipboard.

Enhanced print screen functionality. Updated dbDOS configuration utility. dbfCompare January 17, 2014 dbfCompare will analyze and color-code the differences between the Master table and the Comparison table based on their table structures. Then the product will do deep-data analysis on the differences between the Master Table data and the Comparison Table data. The result can be viewed Side-by-Side or be broken out into various formats. Can also export a report to PDF or export the Added, Deleted, Modified, or Identical rows to a .CSV file for more processing options. dbfImport January 25, 2014 Import data into a dbf database, from dBase, LLC. It can convert .CSV, Microsoft Excel, or XML based files and load them into dBASE databases (.dbfs). dbfInspect March 17, 2014 The new dbfInspect works with tables from dBASE IV all the way through the latest dBASE version, dBASE PLUS 8 with ADO. This utility can read, modify, insert, delete, pack, and print using any of your tables. It has two search systems, one for simple searches and the other for more in-depth searches. Lets you search memo fields. dbDOS PRO 3.0 May 2, 2014 Enhanced printing capability to now closely resemble printouts from the 1980s and 1990s. DOS Configuration Wizard simplifies the setup and launching of a single dBASE program. Enhanced DOS SHELL functionality. Display for resolutions above 800x600 are 100% sharper and easier to read. Improved backup system. dBASE PLUS 9 June 18, 2014 Additional key features of dBASE PLUS 9 include: dComplete - an Intelli-Sense like feature for the dBASE language; dBlocks - add dBASE snippets of code in a couple of key strokes, dLocator - now find the information across multiple files; dBabel - now support for color-highlighting HTML, XML, SQL, JavaScript and others; dExtract - now export your source code into HTML, RTF, PDF, LaTex, and XML; dbfExplorer - now reveal the file properties inside the Windows Explorer interface; Updated Editor - it includes Code Folding, Auto Indent, End of Line markers, Indentation Guides, Line Numbers, and other features, 60% more keyboard shortcuts; Lookup Data – royalty free data that includes stock, geography, and other common types of lookup data; and Catalyst SocketTools ActiveX controls and libraries help developers create Internet-enabled applications quickly and easily. dbfExport 2 April 17, 2015 The next major release of dbfExport 2, from dBase LLC. Can convert dBASE data from .dbf files to CSV, HTML, Microsoft Excel 2003 and below, Microsoft Excel 2008 and above, or XML. dbDOS PRO 4.0 May 6, 2015 dBase, LLC Unveils New Version of dbDOS PRO 4! dbDOS PRO 4, the latest version of the best-selling solution for supporting MS-DOS based applications on Windows Vista and above operating systems. dbDOS PRO 4.0N May 18, 2015 dBase, LLC Introduces dbDOS PRO 4N – Supports Multi-User MS-DOS Applications, on Windows Vista and above operating systems. Added network communications. dBASE PLUS 10 July 21, 2015 Additional key features of dBASE PLUS 10 include: A new set of Native Components, the new data-aware GridEx (dGrid) and ListView components. An updated Compiler, which allows it to compile larger files, more symbols and is 30% faster. dBASE PLUS 10 introduces a new Debugger – called dBugger. The Embedded Runtime gives the ability to build a single .exe with the dBASE PLUS 10 Runtime embedded into the .exe. Also included, is the new Resource Handling, which now works with both .BMP and .PNG graphic types from resource .dll(s). In addition, dBASE PLUS 10 includes over 15,000 royalty-free images to use in applications. The product also introduced the updated dComplete 2.0, which adds significant code-completion functionality. dbDOS PRO 5+N July, 2016 dBase, LLC Introduces dbDOS PRO 5+N – dbDOS PRO 5+N, the latest version of the MS-DOS-based virtual machine (VM) to run DOS based applications on Windows 64-bit operating systems. dBASE PLUS 11 January, 2017 Additional New features of dBASE PLUS 11 include: Touch and Tablet support – dBASE PLUS 11 now supports touch and gesturing with enhanced support for tablets. Assist Technologies. dmAssist – the data module designer introduces a much easier interface for building and working with data modules. The new dmAssist works with both data-layers of the BDE and ADO technologies. dBASE PLUS 11 makes building data-aware web applications easier with a new responsive web framework that works on both Apache and Microsoft IIS technologies. dmOutput – the new dBASE PLUS 11 allows generating output from data modules. dmC.R.U.D. – the new dBASE PLUS 11 allows generating a starter application. dBASE PLUS 11 includes seven new open source fonts that are designed to make code easier to read and print. databuttons.cc – the standard data-aware components have been enhanced to support components with graphics 24x24 through 64x64. Windows Theming – dBASE PLUS 11 now supports 10 Microsoft Windows themes.

dBase / xBase programming language

For handling data, dBase provided detailed procedural commands and functions to open and traverse records in data files (e.g., USE, SKIP, GO TOP, GO BOTTOM, and GO recno), manipulate field values (REPLACE and STORE), and manipulate text strings (e.g., STR() and SUBSTR()), numbers, and dates. Its ability to simultaneously open and manipulate multiple files containing related data led Ashton-Tate to label dBase a "relational database" although it did not meet the criteria defined by Dr. Edgar F. Codd's relational model; it could more accurately be called an application development language and integrated navigational database management system that is influenced by relational concepts.

The dBase product used a runtime interpreter architecture, which allowed the user to execute commands by typing them in a command line "dot prompt." Upon typing a command or function and pressing the return key, the interpreter would immediately execute or evaluate it. Similarly, program scripts (text files with PRG extensions) ran in the interpreter (with the DO command), where each command and variable was evaluated at runtime. This made dBase programs quick and easy to write and test because programmers didn't have to first compile and link them before running them. (For other languages, these steps were tedious in the days of single- and double-digit megahertz CPUs.) The interpreter also handled automatically and dynamically all memory management (i.e., no preallocating memory and no hexadecimal notation), which more than any other feature made it possible for a business person with no programming experience to develop applications.

Conversely, the ease and simplicity of dBase presented a challenge as its users became more expert and as professional programmers were drawn to it. More complex and more critical applications demanded professional programming features for greater reliability and performance, as well as greater developer productivity.

Over time, Ashton-Tate's competitors introduced so-called clone products and compilers that had more robust programming features such as user-defined functions (UDFs) to supplement the built-in function set, scoped variables for writing routines and functions that were less likely to be affected by external processes, arrays for complex data handling, packaging features for delivering applications as executable files without external runtime interpreters, object-oriented syntax, and interfaces for accessing data in remote database management systems. Ashton-Tate also implemented many of these features with varying degrees of success. Ashton-Tate and its competitors also began to incorporate SQL, the ANSI/ISO standard language for creating, modifying, and retrieving data stored in relational database management systems.

Eventually, it became clear that the dBase world had expanded far beyond Ashton-Tate, which was considered to be retarding innovation, growth and the impact of the technology. A "third-party" community had formed, consisting of Fox Software, Nantucket, Alpha Software, Data Based Advisor Magazine, SBT and other application development firms, and major developer groups. Paperback Software launched the flexible and fast VP-Info with a unique built-in compiler. The community of dBase variants sought to create a dBase language standard, supported by IEEE committee X3J19 and initiative IEEE 1192. They began using "xBase" to generically refer to the language and database design, to distinguish it from the Ashton-Tate product.

Ashton-Tate was invited to participate, but instead it saw the rise of xBase as an illegal threat to its proprietary technology. In 1988 Ashton-Tate filed suit against Fox Software and Santa Cruz Operation (SCO) for copying dBase's "structure and sequence" in FoxBase+ (SCO marketed XENIX and UNIX versions of the Fox products). In December 1990, U.S. District judge Terry Hatter, Jr. dismissed Ashton-Tate's lawsuit and invalidated Ashton-Tate's copyrights for not disclosing that dBase had been based, in part, on the public domain JPLDIS. In October 1991, while the case was still under appeal, Borland International acquired Ashton-Tate, and as one of the merger's provisions the U.S. Justice Department required Borland to end the lawsuit against Fox and allow other companies to use the dBase/xBase language without the threat of legal action.

By the end of 1992, major software companies raised the stakes by acquiring the leading xBase products. Borland acquired Ashton-Tate's dBase products (and later WordTech's xBase products), Microsoft acquired Fox Software's FoxBASE+ and FoxPro products, and Computer Associates acquired Nantucket's Clipper products. Advisor Media built on its Data Based Advisor magazine by launching FoxPro Advisor and Clipper Advisor (and other) developer magazines and journals, and live conferences for developers. However, a planned dBase Advisor Magazine was aborted due the market failure of dBase IV.

By the year 2000 the xBase market had faded as developers shifted to new database systems and programming languages. Computer Associates (later known as CA) eventually dropped Clipper. Borland restructured and sold dBase. Of the major acquirers, Microsoft stuck with xBase the longest, evolving FoxPro into Visual FoxPro, but the product is no longer offered. In 2006 Advisor Media stopped its last-surviving xBase magazine, FoxPro Advisor. The era of xBase dominance has ended, but there are still xBase products. The dBase product line is now owned by dBase LLC.

Programming examples

Today, implementations of the dBase language have expanded to include many features targeted for business applications, including object-oriented programming, manipulation of remote and distributed data via SQL, Internet functionality, and interaction with modern devices.

The following example opens an employee table ("empl"), gives every manager who supervises 1 or more employees a 10-percent raise, and then prints the names and salaries.

USE empl

REPLACE ALL salary WITH salary * 1.1 FOR supervisors > 0

LIST ALL fname, lname, salary TO PRINT

* (comment: reserved words shown in CAPITALS for illustration purposes)

Note how one does not have to keep mentioning the table name. The assumed ("current") table stays the same until told otherwise. Because of its origins as an interpreted interactive language, dBase used a variety of contextual techniques to reduce the amount of typing needed. This facilitated incremental, interactive development but also made larger-scale modular programming difficult. A tenet of modular programming is that the correct execution of a program module must not be affected by external factors such as the state of memory variables or tables being manipulated in other program modules. Because dBase was not designed with this in mind, developers had to be careful about porting (borrowing) programming code that assumed a certain context and it would make writing larger-scale modular code difficult. Work-area-specific references were still possible using the arrow notation ("B->customer") so that multiple tables could be manipulated at the same time. In addition, if the developer had the foresight to name their tables appropriately, they could clearly refer to a large number of tables open at the same time by notation such as ("employee->salary") and ("vacation->start_date"). Alternatively, the alias command could be appended to the initial opening of a table statement which made referencing a table field unambiguous and simple. For example. one can open a table and assign an alias to it in this fashion, "use EMP alias Employee", and henceforth, refer to table variables as "Employee->Name".

Another notable feature is the re-use of the same clauses for different commands. For example, the FOR clause limits the scope of a given command. (It is somewhat comparable to SQL's WHERE clause.) Different commands such as LIST, DELETE, REPLACE, BROWSE, etc. could all accept a FOR clause to limit (filter) the scope of their activity. This simplifies the learning of the language.

dBase was also one of the first business-oriented languages to implement string evaluation.

i = 2

myMacro = "i + 10"

i = &myMacro

* comment: i now has the value 12

Here the "&" tells the interpreter to evaluate the string stored in "myMacro" as if it were programming code. This is an example of a feature that made dBase programming flexible and dynamic, sometimes called "meta ability" in the profession. This could allow programming expressions to be placed inside tables, somewhat reminiscent of formulas in spreadsheet software.

However, it could also be problematic for pre-compiling and for making programming code secure from hacking. But, dBase tended to be used for custom internal applications for small and medium companies where the lack of protection against copying, as compared to compiled software, was often less of an issue.

Interactivity

In addition to the dot-prompt, dBase III, III+ and dBase IV came packaged with an ASSIST application to manipulate data and queries, as well as an APPSGEN application which allowed the user to generate applications without resorting to code writing, like a 4GL. The dBase IV APPSGEN tool was based largely on portions of an early CP/M product named Personal Pearl.

Niches

Although the language has fallen out of favor as a primary business language, some find dBase an excellent interactive ad-hoc data manipulation tool. Whereas SQL retrieves data sets from a relational database (RDBMS), with dBase one can more easily manipulate, format, analyze and perform calculations on individual records, strings, numbers, and so on in a step-by-step imperative (procedural) way instead of trying to figure out how to use SQL's declarative operations.

Its granularity of operations is generally smaller than SQL, making it easier to split querying and table processing into easy-to-understand and easy-to-test parts. For example, one could insert a BROWSE operation between the filtering and the aggregation step to study the intermediate table or view (applied filter) before the aggregation step is applied.

As an application development platform, dBase fills a gap between lower-level languages such as C, C++, and Java, and high-level proprietary 4GLs (fourth generation languages) and purely visual tools, providing relative ease-of-use for business people with less formal programming skill and high productivity for professional developers willing to trade off the low-level control.

dBase remained a popular teaching tool even after sales slowed because the text-oriented commands were easier to present in printed training material than the mouse-oriented competitors. (Mouse-oriented commands were added to the product over time, but the command language remained a popular de facto standard while mousing commands tended to be vendor-specific.)

File formats

A major legacy of dBase is its .dbf file format, which has been adopted in a number of other applications. For example, the shapefile format, developed by ESRI for spatial data in its PC ArcInfo geographic information system, uses .dbf files to store feature attribute data.

Microsoft recommends saving a Microsoft Works database file in the dBase file format so that it can be read by Microsoft Excel.

A package is available for Emacs to read xbase files.

LibreOffice and OpenOffice Calc can read and write all generic dbf files.

dBase's database system was one of the first to provide a header section for describing the structure of the data in the file. This meant that the program no longer required advance knowledge of the data structure, but rather could ask the data file how it was structured. There are several variations on the .dbf file structure, and not all dBase-related products and .dbf file structures are compatible. VP-Info is unique in that it can read all variants of the dbf file structure.

A second filetype is the .dbt file format for memo fields. While character fields are limited to 254 characters each, a memo field is a 10-byte pointer into a .dbt file which can include a much larger text field. dBase was very limited in its ability to process memo fields, but some other xBase languages such as Clipper treated memo fields as strings just like character fields for all purposes except permanent storage.

dBase uses .ndx files for single indexes, and .mdx (multiple-index) files for holding between 1 and 48 indexes. Some xBase languages such as VP-Info include compatibility with .ndx files while others use different file formats such as .ntx used by Clipper and .idx/.cdx used by FoxPro or FlagShip. Later iterations of Clipper included drivers for .ndx, .mdx, .idx and .cdx indexes.

Reception

Jerry Pournelle in July 1980 called Vulcan "infuriatingly excellent" because the software was powerful but the documentation was poor. He praised its speed and sophisticated queries, but said that "we do a lot of pounding at the table and screaming in rage at the documentation".

In popular culture

In the movie Office Space, the character Peter Gibbons, a programmer played by Ron Livingston is working to make the company's systems Y2K compliant. On his bookshelf, the book Understanding dBASE III Plus by Alan Simpson can clearly be seen.

References External links

xBase (and dBase) File Format Description

Source:

Home TOC

Interview with Wayne Ratliff

By Susan Lammers

"I went to an Ashton-Tate research center in Glendale to talk with C. Wayne Ratliff, the creator of dBASE. He welcomed me into his large office, where we sat down at a round table and talked at length about his accomplishments and insights about programming. Ratliff is a tall westerner who has an air of independence and a comfortable manner. After more than fifteen years in the computer industry, he still abounds in fresh enthusiasm. Unlike many programmers who tire of the actual writing of source code, Ratliff still thrives on working at all phases of program development every day."

Susan Lammers:

What led you to become a programmer?

Wayne Ratliff:

When I was in college, I was designing a little two-seater, rearengine car. That was in the sixties when cars were big and fast. So, I started using a CDC 6400 computer to help design the car, because I wanted to get into car design from a real engineering standpoint, instead of simply guessing how big an engine I could fit into my design. I wrote a number of small programs to help design suspensions, figure out the center of gravity, and that sort of thing. It didn't take long until I started looking for other programs to write, because I was enjoying the programming more than I was enjoying building the car.

Susan Lammers:

So programming swept you away from car design?

Wayne Ratliff:

Computers themselves got me away from car design. Before I completed my degree, I got a job with Martin Marietta in Denver. I was a computer. My job title was computer. Other people have programmed computers, but I have been one.

Susan Lammers:

You'd better explain that.

Wayne Ratliff:

Well, it was a throwback to the earlier days of aerospace engineering. When people had, for instance, a differential equation to solve, they had an army of people with Monroe calculators, and each person would work on a separate segment of the equation. One person would do a certain group of adds, then hand their paper to the next person to do the multiplies, and so on. They called those people computers. Computers then were more like administrative assistants, except that they did engineering-related jobs instead of administrative jobs. Since I could program, that's how they used me. Then I got drafted during the heat of the Vietnam war in 1969.

Susan Lammers:

Did you go to Vietnam?

Wayne Ratliff:

No. As a result of the Martin Marietta job, I had a civiliana cquired skill, so I programmed. For two years I worked on a logistics war game called LOGEX, programming in COBOL. Most of my work was related to ordering equipment and supplies. It was like doing an inventory for an extremely large company, except there are unusual military policies you have to deal within--like nuclear weapons requiring presidential authorization.

Susan Lammers:

What experiences led you to your Vulcan program?

Wayne Ratliff:

After the army, I was a Martin Marietta employee and a contractor at Jet Propulsion Laboratory. I was with the Viking project, and wrote the data-management program for the Viking lander, called MFILE. That was in 1976, around the time that I became interested in designing and experimenting with natural language, so I bought an IMSAI 8080 8-bit computer kit and put it together. It took a year to put the thing together, mostly waiting for parts. I had to solder more than 2,200 joints. Of course, if I could have bought it assembled for the same price, or even close, I would have.

Once I had put it together, all I had was a computer. Nothing was included except 1K of memory. You had to keep buying things, such as a keyboard. I had already spent $1,000 for the kit, then I had to spend another $159 for a keyboard. Eventually I ended up spending about $6,000. Now you can buy an AT, with a hard disk, complete and ready to roll for $6,000.

Susan Lammers:

Were your experiments with natural language the foundation for dBASE ?

Wayne Ratliff:

dBASE started, oddly enough, from football games. I was in a football pool where you picked the winner and then a point spread. I've never known that much about football. It was the motivation to win, rather than the game itself, that interested me. I thought that if I devoutly applied myself to the mathematical process, I could win.

The way to do that was to look at all the statistics. Every Monday morning the newspaper publishes all the statistics for the weekend games--it takes up at least a double page. About four or five weeks into the season, I had an entire room completely layered with newspaper! I was trying to figure out how to pick a winner by going from paper to paper, a horrible process, and I decided it was too much to handle without a computer. Well, one thing led to another, and within a week, I'd totally forgotten about football. I had decided that the world needed a natural-language database manager. Obviously, the computer was the solution, and that's the reason why I originally bought the IMSAI 8080.

I went out and bought lots of books on natural language and artificial intelligence. I kept getting drawn from one place to another, and I did lots of experiments. I hadn't researched the database as much as I did the natural-language aspect.

I decided to use the database manager as a foundation for natural language to work on. Natural language by itself is a big "so what?" You need something for it to act on. I started thinking about the data-management program I had written for Viking, and I was essentially going to duplicate that on the 8-bit machine, the IMSAI. By accident, I ran across a description of a program called JPLDIS, or JPL Display and Information Systems. It was easy to understand, and very simple, very clean. I immediately thought it would be easy to implement on a microcomputer.

I believe JPLDIS was actually, in current terms, a clone or rip-off of an IBM product called Retrieve, which ran on some time-sharing systems. So there's a sort of progression from Retrieve to JPLDIS to my program, which I called Vulcan. I was going to take care of the database part first, and then do the natural-language approach, but I put off the natural language and still haven't developed that yet.

Susan Lammers:

What shape did this early version of the dBASE program, or Vulcan, take on?

Wayne Ratliff:

I took the JPLDIS concept, cut back on the specs, and wrote Vulcan. JPLDIS would handle two hundred fields, but I thought sixteen was plenty. I got it working and a little over a year after I started, I did my taxes on it. So, I figured Vulcan had some commercial potential, and I began to polish it up and get it to a sellable stage. In October 1979, I went to market and put my first ad for Vulcan in BYTE magazine, and I ran a quarter-page ad for four or five months thereafter. I got much more response than I could handle.

Susan Lammers:

So your response was immediately positive. Who were your competitors at that time?

Wayne Ratliff:

FMS 80, and later Condor and Selector. During the year and nine months that I was writing the code for Vulcan, my floppy disk drive broke down twice. Each time, it took three months to get it up and running again, so I lost six months. I kept thinking, if I had come out six months earlier, I would have been the very first.

Susan Lammers:

So, suddenly you had a product that was penetrating the market. Did this success take you by surprise?

Wayne Ratliff:

I got completely overstressed. I did everything myself. When an order came in, I typed out the order, filled out the invoice, packaged the program, made a fresh copy of the disk--the whole nine yards. I placed all the ads myself, and also I kept working on the program. I'd come home from my job, work again until midnight, go to sleep exhausted, get up the next day, and repeat the process. Vulcan was at the point where I needed to make a lot of advances to it. Over the months I really ran out of steam.

In the summer of 1980, I decided to quit advertising Vulcan and let it drop off to nothing. I would continue to support all the people who had purchased it, but I wasn't going to aggressively go out to find any new buyers.

Susan Lammers:

Why didn't you try to sell it to a bigger company, or hire some help?

Wayne Ratliff:

It didn't occur to me. There weren't any big companies then. As far as I knew, everybody was a real small outfit. A professor at the University of Washington and his wife were considering taking over marketing when George Tate and Hal Lashlee called. They came over and looked at a demo; even though something always goes wrong during a demo, they were understanding, they knew about demos. I was very impressed by that fact. When most people view a demo, after the first thing goes wrong they lose interest. George and Hal already had a business called Discount Software. They had one employee--they made it sound like they had a whole host of employees, but they really had only one. Also, they were close by, about ten or fifteen miles away. It seemed like a natural to me. They made an offer for exclusive marketing rights, and I accepted. We continued under that arrangement for about two or three years.

Susan Lammers:

When you wrote Vulcan, did you have any notion that it would be so successful?

Wayne Ratliff:

I went through various stages. Before I started marketing it myself, I had a delusion that iff ten percent of the people who read BYTE bought it, I could quit my job and retire. That idea didn't last long. When the first deluge of orders did not come in, I revised my expectations. Even after I made the agreement with Ashton-Tate, I noted in my journal that I expected to net $100,000 on the deal. Total. I think that was an indication of how conservative my aspirations had become.

Susan Lammers:

Let's talk about the transition from Vulcan to dBASE. What kinds of advances did you make in Vulcan that led to the present product?

Wayne Ratliff:

Some advances were made in the user interface, and a few improvements in performance, but the big change was to draw it away from a teletype orientation to full-screen orientation. After I saw DamStar, I recognized that the two-dimensional screen was where everybody wanted to be.

The new commands I added were almost exclusively in the user interface. I don't think I ever caught up on all the advancements it needed. My understanding of today's perception of dBASE is that the program is not very user friendly. I think, in retrospect, if I had followed my heart instead of advice, dBASE would be much closer to perfection today.

Susan Lammers:

But it's a very successful, highly rated product. Is that just the perfectionist in you talking?

Wayne Ratliff:

I got advice on different things: Make it bigger, make it faster, make it smaller, go to 16-bit, make it multi-user, go to multiple languages, French, English, Dutch, German .... There was such a plethora of different directions that I tried to satisfy all of them a little bit. Ultimately, I think that was my mistake.

My intention was to make the program more powerful and more user friendly. If I had stayed with that, the program would be better today, but I'm not sure it would be more successful. Maybe the advice I got was right. In many respects, it's hard for me to think of any way the program could have been more successful in terms of gross sales.

Susan Lammers:

Why do you think dBASE is so successful?

Wayne Ratliff:

There was a tremendous amount of luck. But dBASE was also the right program in the right place at the right time, and that's not totally luck, that's design. The fact that it is a language, as well as a database manager, has turned out to be enormously important.

dBASE caught people's imaginations because it's very open-ended. The way I've programmed all my life is as a toolmaker. When I compare myself, even ten years ago, with other programmers, I see that I was trying to generalize to a large extent; they were trying to write programs that would solve a specific need. Their programs would frequently be delivered much sooner than mine would be, but mine would have longer lifetimes. Once the specific need went away, their programs were dead, they had to be rewritten each time the needs changed. I always wrote in such a way that the program could solve a family of problems, rather than just a single one.

dBASE was different from programs like BASIC, C, FORTRAN, and COBOL in that a lot of the dirty work had already been done. The data manipulation is done by dBASE instead of by the user, so the user can concentrate on what he is doing, rather than having to mess with the dirty details of opening, reading, and closing files, and managing space allocation.

Susan Lammers:

So from the very first, you had the user in mind during the design of dBASE?

Wayne Ratliff:

Oh, absolutely. People frequently ask me questions such as, "Should we do it this way, or should we do it that way?" Intuitively, I go back and think, "What do users want? How are they going to use this? What good is it to them?" A lot of programmers think only about how something can be programmed. They've never sold, they've never marketed. They're very good programmers, but they're not thinking of the real market.

Susan Lammers:

In that respect, would you advise programmers to be less technology-driven and more considerate of users and the market?

Wayne Ratliff:

Yes. Do you think hacker is a good word or a bad word? If you think it's a good word, then they're hackers. They're good people, but they're thinking of their job rather than the user, and you have to go a little beyond that. That's how dBASE got started. I was thinking of how I wanted to use it.

Susan Lammers:

You've seen major transformations come over the industry since you entered it. In what way have your programming techniques changed with the times?

Wayne Ratliff:

The changes are not from what I have learned, but from the changes in computers. When I started working in computers, I always punched the programs up on cards, and ran in batch. I'd take my card deck to the operator and plead with him, turn my job in, and then I'd go back and check the window every half hour to see if it had run and had printed. In general, I'd write an entire program on paper, do a lot of erasing and editing, then give it to a keypunch operator to punch up the deck. That was the big bang approach: You'd write the whole program out and try to make it good on paper. Running it on a computer was just getting it to work. There was no gradual improvement.

Today, with CRTs, you can type in the program yourself. With personal computers, you have almost instant turnaround, but they aren't as powerful as the big machines, so it may take a long time to compile and execute. So I tend to write a few lines at a time and try it out, get it to work, then write a few more lines. I try to do the least amount of work per iteration to make some real substantive change. So now, programming is much more evolutionary, where before it was sort of a big bang.

Susan Lammers:

Does the end product usually differ a lot from your beginning plan?

Wayne Ratliff:

In some respects. I always get ideas and suggestions as I go along. When I plan a project now, it ends up doing virtually everything that I had initially planned, plus a lot more. Or, when I start playing with it, I see an opportunity for improvement. I'm always on the lookout for an opportunity in any form.

Susan Lammers:

Do you still program today?

Wayne Ratliff:

Not as much as I'd like to. I get too involved in the business.

Susan Lammers:

Yes, it seems that a lot of programmers who have successful programs are swept away from their original roots, and transplanted into management....

Wayne Ratliff:

That's happened a lot to me, but my involvement in management is going to decline, disappear even. I hope it does, because management siphons away an awful lot of time. When I come to the office, I don't do any programming at all. I talk, either on the phone, face-to-face, or in meetings. I do virtually all my programming at home.

Susan Lammers:

How do you balance your home life with the business and the bouts of intense, late-night programming?

Wayne Ratliff:

I generally work on programming projects when my wife, Carolyn, lets me. Before I was married, between marriages actually, I worked until around midnight. I like working at night because there are no distractions. The phone doesn't ring, the mailman and the gardener don't come. It's quiet, so there's time to concentrate.

Susan Lammers:

Have you settled on a particular style of work you regard as genuinely productive for your own purposes?

Wayne Ratliff:

I work well either alone or with extremely small groups of people. Once a group gets beyond six, it's totally out of control. Ted Glasser, who has a number of patents and is a very senior person in the computing industry, and is in Who's Who, once told people that the biggest team he could manage was one that could drive out to get pizza in a Volkswagen. Since then he's changed his tune--it's now a regular-size American car. I wholeheartedly agree with that.

As for multiple projects, I generally only do one thing to the exclusion of all else. It I switch, it's a total switch. I may have to put something aside, and it may stay on the sidelines, not worked on for months at a time, and then I go back to it. That's the only way I multiprocess. Once I start a project, I really like to finish. I may not get it to the final, complete state, but I get it to some acceptable state. There has to be some good reason for me to set something aside. Something bigger, like guilt. Guilt works well. If I feel that I'm violating a commitment I made to someone, then I'll put aside something that I really favor.

I'm the kind of programmer who likes to do some planning, but I don't plan everything out in infinite detail. I have an idea of what the goal is, but the real job is to find out what the next step is to get toward that goal. I try to do the minimum that will get me one step further Within a goal, within a step, I take the minimum subset. I don't go for the most difficult part first, nor the easiest. It's not mathematically defined. It's emotionally and intuitively defined.

Susan Lammers:

Then you wouldn't consider yourself detail-oriented?

Wayne Ratliff:

No, I do the details because I know they need to be done. It's not something I enjoy doing. I mean, trimming off nanoseconds is, I feel, totally unimportant. If the program runs at half the speed you think it really ought to, you know that a year from now, with the new machinery, it'll run right on.

Susan Lammers:

What is it about programming that satisfies you?

Wayne Ratliff:

Well, the custom-made sports car I worked on was a satisfying project because I could make something and have it appear in front of my eyes. The worst problem with that project was I needed parts that didn't exist. With computers, if I need something at midnight that I don't have, I can make it, no matter what it is. The worst that can possibly happen is that it takes a long time to make.

Of course, that's not all I like about programming. I like the high-tech thing, I like being able to do something and have it appear on the screen. If you write a program well, it's very elegant; it sings, it's well built. I enjoy it from an engineering point of view, just like a well-built car, a well-built bridge, or a well-built building. Everything about it seems in balance, tuned.

Susan Lammers:

Can you elaborate on this feeling for balance and elegance?

Wayne Ratliff:

Balance takes many forms. The code should be crisp and concise. You should be able to explain any module in one sentence, and things should be in alphabetical order, if possible. Just from a visual view of indentation, it shouldn't go off the edge of the paper at any point. It shouldn't have one "if" that's huge and an "else" that's small. Everything should be balanced everywhere. Balance is the key word.

Susan Lammers:

When you write code, does it come out balanced the first time or does it need a lot of changes?

Wayne Ratliff:

I do a lot of changing. I like to make an analogy between writing code and sculpting a clay figure. You start with a lump of clay and then you scrape away, add more clay, then scrape away again. And every now and then you decide that a leg doesn't look right, so you tear it off and put a new one on. There's a lot of interaction.

The ideal module should be a page long. If it grows beyond a page, I have to decide, now what is it I'm doing here? How many separate things am I working on ? Should they be broken down into separate modules? Part of the elegance, and the balance, is that at a certain level, in this layer-cake hierarchy of a program, all the modules should be about the same weight, same size, same duty, and same functionality.

Susan Lammers:

How does balance help a program?

Wayne Ratliff:

The program becomes maintainable. When you have a good balance, it's as though you've discovered some basic physical underlying principle and implemented it. When things get really out of balance, you know something is wrong. There's probably some inherent fault that makes it out of balance. Generally, when I get this feeling that something's out of whack when one module is just too big, I think about what I'm doing, and I reorient or rejuggle the pieces.

Susan Lammers:

Has anyone in particular influenced your programming?

Wayne Ratliff:

I was really impressed by a book by Gary Meyer, called Software Reliability. Other books have also influenced me in very simple ways. Putting things in alphabetical order is a trick I learned from programming style books. It makes things simple, it makes the program clean, and it's one step toward elegance. That's absolute simplicity: I can't imagine why I didn't think of it on my own.

Another influence was one of my bosses at Martin Marietta, Phil Carney. I used to write FORTRAN programs back then, and when I needed a new statement number, I'd pick the next one sequentially. You don't think of those things in order as the program goes, so I'd choose them arbitrarily. When he saw me do that, he got irritated and said, "Put these things in order, starting with one hundred, and increase them by ten each time." I thought that made a lot of sense. Those are small things, but small things really help.

Susan Lammers:

Do you ever tire of programming?

Wayne Ratliff:

When I find myself doing the same thing over and over and over again, I get bored. I remember having this vague feeling at JPL that I was writing the same loop over and over. Everything was a little bit different each time I did it, but the loop was basically the same. Then one day I was thumbing through the Structured Programming book, and I just happened to see this flowchart of structured-programming design, and I thought, that's what I need. And it was.

Susan Lammers:

Do you write a lot of comments in your programs?

Wayne Ratliff:

Actually, no. I have been criticized in this company for not writing very many comments. I figure there are two types of comments: one is explaining the obvious, and those are worse than worthless, the other kind is when you explain really involved, convoluted code. Well, I always try to avoid convoluted code. I try to program really strong, clear, clean code, even if it takes an extra five lines. I am almost of the opinion that the more comments you need, the worse your program is and something is wrong with it. A good program should not require a lot of comments. The program itself should be the commentary.

Modules should be relatively small. Once a module gets beyond a page of code, there's something wrong. You definitely need one line of comment at the top of each module, which explains what the module does in one sentence. If you can't explain it in one sentence, there's something wrong.

Susan Lammers:

What qualities distinguish an outstanding programmer?

Wayne Ratliff:

There's a spectrum of programming. At one end is a programmer who's working 100 percent for the user; at the other end is a programmer who's working on some mathematical problem and couldn't care less about the user. Curiously enough, game writers are most in tune with the user. The mathematics of the game are probably an irritant to that programmer, whereas, on the other end of the scale, the programmer writing a better square root algorithm finds deciding whether it's going to be at the top or the bottom of the screen an irritant. I would like to place myself about three-quarters of the way toward the game writer, toward the user-interface side.

You can't compare across the spectrum, but you can compare up and down within the spectrum. Theodore Sturgeon said 90 percent of everything is garbage. That's not too far off. That might be a little bit pessimistic--maybe 60, 70, or 80 percent. There's very clear evidence that 3 percent of the population, in any identifiable subset, do 10 percent of the work, and then on the other side, 50 percent of the people only do 30 percent of the total work. That goes for football quarterbacks, programmers, newspaper reporters, and everybody else. There's always a few people who do six times as much work as that 50 percent. So there are good and bad programmers, just as there are good and bad employees in all areas. "Programming is a little bit like the army. Now that I'm out, it's neat to have had the experience."

Susan Lammers:

When you're developing a program, is it a painful or pleasurable process?

Wayne Ratliff:

It's a little of both. Programming is a little bit like the army. When I was in the army, I hated it passionately. I dreaded every minute of it. I looked forward to getting out. But now that I'm out, it's neat to have had the experience. When I'm programming, I enjoy figuring out little things along the way, and when I'm done, it's nice to have gone through it, but still I would rather accomplish more per unit of time. So, there's also a very small amount of agony all the time.

The moment of programming I enjoy the very most is when I get something almost complete. I try it for the first time, it fails miserably, and it continues to fail until about the one hundredth time, when it does pretty good. There's a peak experience there, because then I know I've got it. I just have to apply a little more elbow grease to weed out the rest of the bugs.

Susan Lammers:

Is a programmer's work so individual that someone could look at your code and say, "C. Wayne Ratliff wrote this"?

Wayne Ratliff:

Well, Gary Balleisen, who wrote SuperCalc and who used the source code from the early stages of dBASE, claims he can tell who wrote what by some style signature. I know some things I do, such as the way I terminate blocks, are at odds with everyone else here. And I'm convinced my way is by far the best.

For example, when I first saw C, I didn't like those curly braces that stick so far out to the left side in the listing. It was confusing. But by accident, I ran across a technique in some documentation from Digital Research that said to put those terminators at the same level as the indented code. Well, that's another one of these tiny little changes that make a big difference. And I've been trying to convince everyone else that's the right way to do it. I've been only moderately successful. I even modified one program, a C-beautifier program, to do it automatically. I can take someone else's code and run it through this program, and it will be indented the way I indent.

Susan Lammers:

Have you ever explored the field of artificial intelligence?

Wayne Ratliff:

I was really involved in AI at the start of this business. A little over a year ago, I turned to AI, because I thought that was the future. But I've grown away from it.

AI has a future, but it's not very immediate. First of all, there's the problem of natural language. If you have a natural-language system, you buy it and bring it home and put it on your computer. Then you have to go through a weeks-long, maybe months-long process to teach it what your particular words mean. The same word has different meanings in different contexts. Even what would appear to be a straightforward word, like "profit," can have a variety of meanings. It needs to be very explicitly defined, based on which business you're in and how your books are set up, and that sort of thing. So this long process necessary for training the machine kills AI, as far as it being a turnkey product.

But the other side, which is very interesting, is expert systems. My prediction is that within the next two or three years, expert systems will no longer be associated with artificial intelligence. That's been the history of AI: when something starts to become fairly well known, it splits off. Pattern recognition used to be considered AI, but now it is a separate field. That's the immediate destiny of expert systems. I think expert systems are going to be very important in our industry, analogous to vertical applications.

Susan Lammers:

Do you think there's going to be any major changes in what we think of as programs, in terms of the way we work and deal with them? Perhaps a new language so simple, so user-friendly that everyone can program?

Wayne Ratliff:

There'll be some evolution. Some of the arcane features will slowly disappear. A language like dBASE has some really bad things about it, but over time those will disappear through a gradual evolutionary process. And we can always cross our fingers and hope that there will be some breakthrough, like the spreadsheet was when it first appeared. I hope there will be something that neat again in the future, but it's totally unpredictable.

I'm really enamored with a UNIX program called yacc that builds you a parser. You give it specifications for your language in Backus-Naur form, which is widely accepted in the computer-science industry. It will crank out a C module that parses a language that fits the specs. I'd love to be able to do that for a higher-level program. Ideally, you'd write down your program just as specs, then you'd compile it, and the result would be the program. You could probably write something the size of dBASE in a month.

Susan Lammers:

Do you ever think of retiring from programming?

Wayne Ratliff:

No. I have every expectation of programming for years to come. My wife occasionally has dreams that we'll get rid of all the computers and spend all our time with our horses, and I say, "wait a minute, that's not what I want." I would like to get rid of the stress, but I don't want to get rid of programming.

Susan Lammers:

When a project as intense as dBASE is completed, is there a feeling of anticlimax when it's over?

Wayne Ratliff:

That's when you have to think of some new project. A program is a lot of fun at the very beginning, when you first have ideas about what it can do. Those ideas grow very rapidly. You have some little spark, and then you keep tacking other capabilities onto it. When that euphoria fades and you have to start coding, it gets tough.

I used to think that everybody was a designer in this business. I would go over to George Tate's house, and drink beer and eat pizza, and a lot of times Hal and George and I would meet for a half hour before the beer drinking got started, and in about a half hour, I could get a year's worth of work planned. Everybody wants to do the design work. The implementation, the year of work, and all the rest of it is left to someone else.

Susan Lammers:

But you don't do that at all. You write it as well as design it.

Wayne Ratliff:

Yes, but a lot of design is an ongoing process, it's not a flash of insight, and then an immediate implementation. One of the problems this company's struggling with is finding the best way to do software.

For whatever reason, they don't fel they can trust individuals, or at least a small number of individuals. The procedure now is that Marketing figures out what the program is supposed to do; then Marketing tells Development what they think that is; then Development spends several months and writes down a very detailed spec of what they think they heard; then many people in the company review that spec and negotiate exactly what it's supposed to do. Then the hard work's over. From then on, it's just coded.

This process may be appropriate if you're building bridges, because you know exactly what the bridge is supposed to do. It's supposed to go from one side of the river to the other, and you can specify exactly how much maximum weight it's going to carry, and all the other details ahead of time. In fact, with a bridge, I would imagine you can specify everything on one sheet of paper. That's about as much spec as I think a computer program should go through, too: one sheet of paper.

There's a general agreement in the company that the current process doesn't work, or it's so painful that it's not worth it. It's better to find somebody who has an idea, slip them money under the door, let them work for a long time unhindered, and when they think they're finished with it, you let other people work with the program and make their suggestions about how to improve it.

It's also important to try out the program on users to make sure it solves real users' needs. And that's where this company is going astray; it's ignoring users. They've gotten caught up in marketing, and what they're really fighting are other marketers. All the ads are done by marketers, they're not done by users saying this is what we need. It's one marketer, trying to pit his or her skills against another marketer, so they're fighting the battle of the specs. And I think that's wrong. You may look great in the ads, but so what? What has sold dBASE has not been its ads, although the first ads I think, in hindsight, were extremely good.

Susan Lammers:

What was the first advertising campaign?

Wayne Ratliff:

That was the dBASE versus the bilge-pump ad by Hal Pawluk. It was sort of an inflammatory advertisement at the time it was written.

Susan Lammers: Why? Wayne Ratliff:

The first line of the ad said, "We all know that bilge pumps suck." The company that manufactures that particular bilge pump wrote a letter to George Tate, saying they didn't like having their bilge pump shown in a pejorative sense. George said, "okay, we'll put a little note down at the bottom of the ad that says this particular bilge pump doesn't suck." For some reason, they didn't like that ad either.

Susan Lammers:

That's a pretty good ad. I guess back then business wasn't quite as rigid as it is now. Do you miss that sort of thing?

Wayne Ratliff:

Oh, yeah. As a matter of fact, I'm not dealing well with the company right now. We have a lot of problems. I'm an entrepreneur, and as such, I like to start from nothing and make something. Some people like to take something small through the growth phase and make it something big, and some people like to take something big and nurture it into something even bigger, the mature phase. There are three phases. I think any two of the adjacent phases are fairly compatible, but I feel like I'm in phase one trying to be compatible with phase three. That's causing a lot of friction.

Susan Lammers:

That's a good analysis. It seems that's happening in the industry, too. It's reaching the stage of bigness, companies have just shot up, and now people are having to deal with it, and they're just frustrated . . . .

Wayne Ratliff:

But software hasn't changed. It's the companies that have changed. There is some evidence that the companies' attitudes are wrong. Certainly, it takes a businessman to run the company, but to some extent, people coming into the industry at this late date don't empathize with what software really is. They're in the business business, not in the software business.

Susan Lammers:

What is software, in the context of that remark?

Wayne Ratliff:

Ideally, it's a way of making a computer do something beneficial that ultimately helps people. I'm not so altruistic, that's not my goal. My goal is to write neat software, programs that are challenging. It's not my mission to solve social needs, but that can be another nice outcome of software.

Susan Lammers:

Do you consider computer programming an art, a science, a skill, a trade . . . ?

Wayne Ratliff:

I think there's some science and some art. The more humanized it becomes the more art it is. Game writers are dealing mostly with an art form on the screen, and they're using a high-tech product to embody and convey that art. You'd be pretty much in the same boat if you really had to understand the chemical makeup of clay to be a modeling sculptor. You can learn enough to sculpt clay in a few minutes, but to become adequate with a computer takes time, and more than time, it takes desire.

Susan Lammers:

Whats next after dBASE?

Wayne Ratliff:

Opportunities are changing in scope. With the three classic productivity tools, databases, word processors, and spreadsheets, there's not much room for another new entry, though there are contenders all the time. Look at Paradox: They're trying to become the leading database, or at least get market share. And there's Javelin; it's supposed to destroy 1-2-3. I'm not sure who can be destroyed right now. None of the word processors have the dominant market share, but there are several of them that have a pretty good chunk. Between Microsoft Word, Multimate, WordStar, Word Perfect, Samna, and five hundred others, there's not much opportunity for coming up with a new successful word processor.

There's a lot of opportunity, but not in those areas. I think there's a lot of opportunity for people to be successful marketing expert systems; not just the shells, but the knowledge bases as well, that deal with a fairly large class of problems. With that kind of expert system, you could approach dozens of vertical markets.

Susan Lammers:

Do you think it's possible to design a system that can accommodate a dozen or so of those vertical markets?

Wayne Ratliff:

Possibly. At least you can attack one at a time. Even if there are a thousand vertical markets, each of those has several thousand potential buyers. And even if you just address one at a time, then theoretically, if you write a good product, with a small vertical market, you could get near saturation level because they are kind of cliquish.

Susan Lammers:

Do you think IBM will continue to dominate?

Wayne Ratliff:

I think so. It seems to me that Apple missed its bid, all across the board. They really missed it on the business side, and I think that probably hurt them on the home side. I think there's a little bit of disillusionment about the Macintosh potential. AT&T doesn't seem to be going anywhere, and none of the other companies seems to be making a very strong bid. What keeps IBM on top, I suppose, are all the clones.

Actually, I like the way the market sits right now; the competition forces IBM to make advances, and the competitors know if they don't make advances on IBM, they're going to get hurt. If that can be perpetuated, it would be good. Where the other companies stay compatible with IBM, and in many regards have a superior product, they're kept in line by the fact that there is IBM. I'd like to see that they all live happily ever after. Back when IBM was much stronger in the mainframe business, I really disliked IBM computers.

The 360s, 370s, 3030x's, and the 4340 series; I didn't like them at all. I was really glad to see the signing of the agreement between Microsoft and IBM. My fear was that IBM was going to develop their own operating system, and I've seen IBM-developed operating systems.

Susan Lammers:

Do you ever reflect on the past and feel amazement at what has happened?

Wayne Ratliff:

Oh, yeah. There are a lot of things that could have turned out differently. I remember very specifically the fear and anxiety I would have every time a new product came out. Back in the Vulcan days, I was working late one night, and some guy called me and said, "Have you heard about DataStar?" I said I hadn't heard about it. "A full-page ad," he said, "a MicroPro product." I'd sold thirty or forty Vulcans at that time. I thought, it was fine while it lasted, but it's all over now, because I can't match their resources. I got really downhearted, but after a while, it went away. Then InfoStar was next. MicroPro fixed their problems with DataStar; a big advertising campaign, a big this, a big that, and I thought, oh, well. The same thing with Knowledge Man. When Knowledge Man came out I was so close to achieving some goals I had set out for myself. I was 60 or 70 percent of the way there, and then I thought some new thing was going to come out and kill me.

I started getting less worried each time. I didn't get very concerned about R:base. And I've gotten even less concerned about ANZA. It doesn't do any good to get worried, what happens, happens.

Susan Lammers:

Have you seen Paradox yet?

Wayne Ratliff:

No, I haven't looked at any of the competing products. I was talking to Eric Kim and Dave Hull in Marketing at a party last week, and they asked me what I thought of Paradox, and I said I hadn't seen it. "What, you haven't seen that?" they asked. I said, ""I've never looked at any of these products--I haven't even seen R:base 4000." "You haven't seen R:base 4000?," they said. We went back through history and all the other ones I hadn't seen. They just couldn't believe that I hadn't seen them, hadn't played with them and gotten ideas from them.

Susan Lammers:

What are you currently working on?

Wayne Ratliff:

Recently, I've been working on a public-domain package that I have transcribed from Pascal to C. It's a design and documentation language, sort of a clone, or a superset of PDL, Program Design Language, proposed by Caine, Farber, and Gordon in Pasadena. It's neat because it feels like writing a program, but it doesn't actually execute on the computer. It's a way of doing specifications and design.

Susan Lammers:

What's your advice to young programmers today?

Wayne Ratliff:

If somebody wants to program, it will be easy for them. If they don't want to, no matter how hard they try, at best it will be difficult. More than likely, they'll become disillusioned. So my advice is, do what you want to do.

I've seen people who were not originally involved in programming or computers, and they got into it and liked it. And they just got drawn right in, and got to the heart of it all really fast. I've seen other people who tried to make themselves get involved in it, and they couldn't do it.

Susan Lammers:

What is the magic? What do you think draws somebody into the heart of it?

Wayne Ratliff:

Well, it's some combination. I used to play a mental game and ask myself, what would I be if I'd been born a hundred years earlier? I don't know, but one possibility is a detective, because there's a lot of detective work in programming, particularly in debugging. You work with hints, clues. One of the good things about programming is that you are dealing in hard reality, whereas in real detective work, you can't get an answer a lot of times. In programming, all it takes is hard work. You can always get the answer if you work at it hard enough. I see myself as a generalist, and I think for what I have done, that was important. There are better programers than me, there are better debuggers and designers, and better everything. I can't repeat in polite company exactly what a drill sergeant once said to me, but it was in essence that "I'm a jack of all trades and master of none."

(Source:

Programmers at Work - Interviews - 1st Series - C. Wayne Ratcliff

) Susan Lammers

is president and founder of

Headbone Interactive

, which develops original content for the Internet, television and other media. Susan is a pioneer in the multimedia arena. She spearheaded Microsoft's early efforts as Associate Publisher and Director of Multimedia Publishing in the Multimedia Division and was responsible for the company's first interactive media titles. Projects under her watch included Encarta and Microsoft Bookshelf.

See also:

Who Began The History

: Wayne Ratliff Home TOC

If you have any information that can help us to compile this history, please,

send us a message

. Thanks!