03 - Open Source (EN)

Harbour – the history of XBASE languages

Last Updated on 26 May 2021 by Roberto De Pedrini

In this article we are going to see the history of XBASE languages and how the creation of Harbour
specifically came about.

The story begins in 1979 with the VULCAN project. Given the lack of
success, the package was subsequently sold to George Tate (founder of Ashton Tate). Thanks to a
good advertising investment, DBASE II was introduced in 1982 which had managed to become one
of the standards for the time. Initially the product ran on 8-bit architectures, so it was rewritten with
the language C. The DBASE III was thus released on the market in 1984 and with the PLUS
version, support for networks and access to data was added using a multi-user system. The DBASE
born as an interpreted programming language, was adopted by many developers (This was its
success but also its downfall). To make the created application work, it was necessary to have the
DBIII installed on each system and a copy of the sources of your program totally in clear text. This
was very expensive as the cost of the product was very high. Many began to circulate pirated copies
of the DBASE with attached programs stolen from companies that had a regular license. Thus a real
black market was created. Ashton Tate, even though she was aware of what was happening, decided
not to take any action but focused only on selling as many copies of the product as possible. In fact,
to protect the work of those who developed with DBIII, it was enough to create a compiler and
make the data part separate from the application part. Given Ashton Tate’s lack of interest,
Nuntucket decided to bring the clipper. The first version of the compiler came to light under the
code name Summer87. It was an immediate success because c he felt like writing multi-user
programs, was rock solid, almost BUG-free, efficient and relatively easy to learn (especially for
those coming from DBIII). Its kinship with C did not make it too strange even for those who came
from this language. As we saw in the previous preview article with Harbour in fact even Clipper
was equipped with all the tools to connect it to the C. Many developers immediately began to
convert the code from DBIII to Clipper. Thanks to its flexibility, the language could be used by both
novice and experienced developers. Nantucket was bought at the height of its success by Computer
Associates, which was a software giant. From the acquisition the clipper 5 was released on the
market, this version had been totally modified, through the use of a translator the code was totally
converted into C. The object-oriented programming paradigm was added, support for databases
thanks to modular drivers RDD- Replaceable Database Drivers ( example in the introductory article
of Harbour where we show the multiple connection between db2 and mysql) and the use of indexes.
which allow:

•the use of indexes and database structures that are much more efficient than native
DBF / NTX formats;

•opening up to other platforms and types of databases;

•the ability to implement advanced and robust on-the-fly encryption and decoding mechanisms for headers and /or data.

With the success of the clipper and other clones like foxpro or Quicksilver, Ashton Tate was
starting to lose ground and to try to save the day I filed lawsuits against various software vendors.
One effect of this action was to provoke vendors who avoided using the term “dBASE”: a
trademarkowner of Ashton-Tate. This resulted in the creation of the generic term “xBase” which
means “dBASE-like”. Years later Ashton-Tate had launched the DBIV, which had little luck, and
later for the Windows environment the dBase 5, but this too was not very successful and eventually
failed. Even the CA after the success of the clipper I begin to have problems. With the arrival of
windows, the language was no longer updated and was slowly phased out. After the clipper the CA I
try to present Visual object (this project is also kept alive on the .NET platform with the code name
X # – https://www.xsharp.eu/), but I am a product full of BUGs and immediately decommissioned.
Microsoft intervened at this point and bought Visual Foxpro. The move appeared as an
acknowledgment that Visual Foxpro was the best xBase tool available, and that Microsoft had made
up its mind to enter the xBase language arena from the front door. Many programmers bought
Foxpro peacefully thinking that the language would not die and new rosy developments would
come. None of that. Microsoft’s real strategy soon became clear: it had bought Foxpro only to get it
out of the way and direct programmers to its proprietary alternatives. Foxpro was left to die slowly
and the latest release dates back to 2007. Subsequently, Microsoft had decided to make the entire
project open-source, but even in this case there was a rethinking and to try to limit the damage to
the trust of its customers, the Redmond giant released some open code components to make sure
that companies could develop plug-ins to keep legacy code up-to-date and migrate to modern solutions as quickly as possible. Like Foxpro, the Clipper was still in full use (many designs are estimated to have lasted until 2006). Antonio Linares, a strong C programmer with very good
knowledge of the internal workings of Windows and who had fallen in love with Clipper, wrote an
extension that he called Fivewin. The beauty and depth of Fivewin lie in the simplicity of the
language created by Linares to manage the Windows environment, in the perfect integration of its
extensions into the existing language and in the fundamental quality of its work. Even if Fivewin
had some small problems (corrected in periodic updates), the general quality was very good and the
cost acceptable: the product was immediately successful among programmers. The clipper at this
stage, thanks to this product, began to get modern by giving developers a plug-in with which they
could save their applications while leaving the code already written intact, adding new ones using
the graphics libraries offered by Windows. But the Clipper had a big problem within its engine, as
the CA had totally failed it remained a 16-bit compiler (the last version CA released of Clipper is
5.3b in 1997). As the world made great strides towards 32-bit architecture first and 64-bit later, it
began to suffer from insurmountable structural limitations. Thus it was that Linares began to
develop an independent compiler compatible with Clipper (and Fivewin of course) capable of
facing the challenges of the future and harnessing the full power of today’s 32 or 64-bit PCs. His
vision was great and the personal effort immense. The name that was given to the project was
Harbour ( to symbolically represent a port that ensured the safety of the xbase programmers and the
glorious clipper sailing ship).The big news was that the new compiler was born as an Open Source
project, that is, of free use by anyone. The alternatives for the xBase programming community
consisted of a few rather expensive proprietary products (Alaska xBase ++, Flagship, Visual
Foxpro, dBase V, …). However, none of these products seemed capable of picking up the Clipper
legacy. Furthermore, only Flagship was multi-platform, that is, available both for the Windows
system and for Linux. The idea of the Open Source compiler coagulated a number of programmers
and the system slowly began to take hold. The admirable thing about the project concerns the
passion and teamwork that everyone puts into improving this language every day, above all because
‘there is no computer giant that decides the fate of Harbour. Soon the Linux version was available,
which allows a programmer to write a program and to be able to compile and run it without
particular modifications in the two environments. The current situation sees Harbour as a project
available for different platforms, such as Windows, Linux, Mac OS X, Windows CE, Pocket PC,
Symbian, iPhone, OS / 2, AIX, Android etc…. Furthermore, with the Mod-Harbour plug-in
(mentioned in the introductory article – Harbour the return of a legend) we have the possibility to
create web applications and what is surprising is the flexibility of Harbour, a small group of
developers have created a plug- in called Harbourino able to write the code of the elements only
once and use them simultaneously on both desktop and web applications but we will see this in
future articles. This article was only to open a historical parenthesis necessary to understand the
origins of Harbour and how this language marked an era. a small group of developers have created a
plug-in called Harbourino that can write the code of the elements only once and use them
simultaneously on both desktop and web applications but we will see this in future articles. This
article was only to open a historical parenthesis necessary to understand the origins of Harbour and
how this language marked an era. a small group of developers have created a plug-in called
Harbourino that can write the code of the elements only once and use them simultaneously on both
desktop and web applications but we will see this in future articles. This article was only to open a
historical parenthesis necessary to understand the origins of Harbour and how this language marked
an era.

Related Posts
DB2 for i SQL – String Manipulation – POSSTR-LOCATE-LOCATE_IN_STRING (EN)

Introduction Often, in our applications, we need to work with text strings, and DB2 SQL can come in very useful Read more

DB2 for i – FAQ & Howtos (EN)

DB2 Database and SQL ... maybe the most important things on IBM i platform: here's a collection of FAQs, tips Read more

IBM i 7.4 Announcement (En)

Comes directly with the Easter egg this IBM announcement for the news of the IBM i 7.4 version, iNext version Read more

Generated Always Columns (EN)

Introduction "Generated Always Column": are columns, table fields, filled by DB2 engine: something like columns with a default value but Read more

About author

Giorgio Caponera, IBM Fresh Face 2019, developer and IBM i passionate

Leave a Reply

Your email address will not be published. Required fields are marked *