Clipper Tutorial: a Guide to Open Source Clipper(s)/Getting Acquainted
Open Source and licenses
Let's define 'Open Source': it is software distributed with the source code that anybody can study, modify for their own needs and redistribute. It is often also free (it costs nothing).
A very good definition (in 10 criteria) can be found here: https://opensource.org/osd
Harbour, xHarbour and Clip are released under the GNU General Public License (GPL) plus an option that allow the users to distribute the applications they develop under the license they wish (if they were to follow strictly the GPL they would have had to distribute their applications under the GPL). The GPL is the license adopted by the GNU project, and it makes it perhaps the most famous Open Source license because an entire operating system is released under it - the OS that is commonly referred to by the name of its kernel, Linux, and that some people call GNU/Linux.
"what is the GNU Project?" http://www.gnu.org/gnu/thegnuproject.html
"what is the General Public License?" http://www.webopedia.com/TERM/G/GPL.html
"what is Linux?" https://www.linux.com/what-is-linux
In addition to the GPL, Clip offers optionally a commercial license. The user can choose which license applies to his installation.
x2c is released under the Apache license. The most important software released under the Apache license is Apache, a widely used open source web server.
Some curiosities and a little history
Definition of 'clipper' translated and adapted from two Italian encyclopaedias: «sailing vessel with three or five masts, sharp prow, large, square sails, gross tonnage 600-1200». Thus a "clipper" was a kind of ship, used in the second half of the XIX century. The choice of this name, and of other names such as "Harbour" and "Flagship", suggests that xBase programmers might have a distinctive maritime vocation. The first Clipper was built in Baltimore in 1746. During the War of American Independence, the Baltimore Clipper had great development. Other ships then took the name of Clipper though there was little similarity (except for the width of the canopy) with the first. From 1840 onwards, Clippers became especially famous for the gold rush and for the famous "tea and wool races". Although at that time regular steamships were already navigating, the Clippers maintained slightly higher average speeds of the fastest steamers. In 1854 the Clipper Lightning by Donald Mc Kay covered the distance from Boston to Liverpool in 13 days, 19 hours and a half (a record time for a vessel). The famous English Clipper Cutty Sark, one of the fastest sailing ships of all time, launched in 1869, traveled 363 miles in 24 hours. Another famous Clipper, the Melbourne, used to transport passengers, launched in 1875, travelled from England to Australia in 81 days. The golden age of Clippers ended around 1880.
A few links to expand on this type of Clipper:
I've also seen a few (e)books which discuss these ships (i.e. "The Clipper Ship Era" by Arthur Hamilton Clark, "The Great Clippers" by Jane D. Lyon, "The Book of Old Ships").
According to my Italian dictionary, "clipper" has two other meanings: "(aviation) big airplane for trans-Atlantic flights" - see http://www.flyingclippers.com/transoceanic.html and "(electronics) electronic device to reduce the amplitude of a wave" - see http://www.daenotes.com/electronics/devices-circuits/clipper-clamper, http://www.daenotes.com/electronics/digital-electronics/clipper-circuits.
The legend about the name "Clipper" is reported at http://www.ghservices.com/gregh/clipper/story.htm. It said the name was chosen because the idea of a compiler for the dBase language was conceived by Barry ReBell and Brian Russell during a lunch in a Malibu restaurant, Nantucket Lighthouse (hence the name of the company), which had pictures of Clipper ships on its napkins.
Today there is a free dBase clone: http://dollybase.sourceforge.net/. (The reference to the sheep "Dolly", clonated in 1997, looks quite overt...).
At the moment, the commercial software available comprehends CA-Clipper 5.3x, Alaska Xbase++, CA-Visual Objects, Multisoft Flagship, Microsoft FoxPro, Visual dBase, Harbour.
The May 1998 issue of the Italian magazine PC Professionale in a review for Borland Visual dBase 7 started by summarizing its "glorious" history:
«dBase III has been the workhorse of the programmers of the '80s, then gave way to other instruments, especially in the transition from MS-DOS to Windows 3.1, but it never left the scene, it even had visual developments. The seventh version of the scion of that language, fiercer than ever, is thirty-two bits, supports ActiveX controls, remote SQL databases and a renewed and productive work environment.
It is unusual for programmers who have been in business for several years to never have heard of dBase. The first version of this product was a sort of Visual Basic of the 80s: it freed developers from the complications of access to database files and the interface was easy to use as it could be DOS, thanks to the automatic instructions completion and effective online help. Since then much water has passed under the bridges and dBase programmers had access to a first compiler, graphical interfaces, and even then a migration of the syntax to an object oriented approach.»
The author, Michele Costabile, noted also that:
«The difference between programmable databases (Access, FoxPro) and traditional development tools (Visual Basic, Delphi) is becoming largely a matter of nuances: the first were born as a language built around a database, and the latters have come to assimilate structurally database support.»
According to Dev (a programmers' Italian magazine), the Harbour Project was started by Antonio Linares, author of FiveWin, about 1998 with an original name as Five and that the project started on a CVS server named harbour.joca.es.
I found the following Facebook groups related to this topic:
- Harbour MiniGUI
- Harbour Project
- CA-Clipper - Harbour - XBase - Dbase Programmers
Other sites to visit & files to download
A nice tutorial Introduction to dBASE III Plus at http://manmrk.net/tutorials/database/dbase/IntrodBASEIIIPlus.htm
The article on Freshmeat at the address http://freshmeat.net/articles/view/307/, Non-SQL Databases for Linux, is a good starting point for our xBase study. If you discover that you like very much xBase, have a look at http://www.reocities.com/tablizer/xbasefan.htm, a page for xBase fans.
A set of Norton Guides, including documentation for Clipper from Summer 87 to Clipper 5.3, and also for Clip-4-Win version 3.0, Blinker 5.1, Harbour 0.37, and other tools is located in this good website worth a visit: http://www.clipx.net/norton.php. The last Harbour installs a Norton Guide file (namely in the path c:\hb31\examples\gfspell\spell.ng). A Norton Guide Viewer for Windows by Dave Pearson can be downloaded at his website http://www.davep.org/norton-guides/
discovered a pair of basic tutorials - yet complete - in Spanish (being Italian, I can read and understand Spanish without too much trouble...). One is contained in this page: http://www.elguille.info/Clipper/manual.htm (if you know Spanish and want to print it, it's about 50 pages long). The second tutorial is compressed in a zip you can download from http://mx.geocities.com/maghtin/manuals.htm (the file is named clipper5.zip and it contains a 33-page pdf file).
I will surf to know what's in The Oasis (http://www.the-oasis.net/). They included a link to this Guide and seem to have a large archive of Clipper material.
Giovanni Di Maria's wrote a tutorial, which is the as far as I know the only effort done by an Italian (other than me) at providing to the community informations about Harbour programming. Di Maria did a great job, although perhaps it would be more correct to call it a 'cookbook' and not a 'tutorial'.
http://vivaclipper.wordpress.com/ (edited by bpd2000)
http://dbaseclassic.com/ dBASE CLASSIC™ is based on BORLAND dBASE 5.0 FOR DOS
http://www.whitetown.com/dbf2sql/ DBF to SQL Converter allows you to convert your dbf files to SQL script. Personal license $29.95
Links for PHP interface:
https://sourceforge.net/projects/xdb/ and http://linux.techass.com/projects/xdb/ Xbase (formerly known as xdb, also formerly known as xBase) is a collection of specifications, programs, utilities and a C++ class library for manipulating Xbase type datafiles and indices.
https://sourceforge.net/projects/xbase-py/ A Python interface for managing dbf files