# Clipper (llenguatge de programació)

Clipper és un llenguatge de programació procedimental i imperatiu creat a 1985 per Nantucket Corporation i venut posteriorment a Computer Associates, la que el va comercialitzar com CA-Clipper. En un principi Clipper es va crear com un compilador per al sistema gestor intèrpret de bases de dades dBase III (de fet les versions estacionals de Nantucket incloïen una etiqueta que ho indicava així), però amb el temps el producte va evolucionar i madurar, convertint-se en un llenguatge compilat més poderós que l'original, no només per les seves pròpies implementacions sinó també per les ampliacions desenvolupades per tercers en C, Ensamblador i Pascal, dels quals va ser heretant característiques. Això el va convertir en l'eina líder de desenvolupament d'aplicacions de bases de dades relacionals sota sistema operatiu MS-DOS.

## Característiques

A diferència d'altres llenguatges xBase, Clipper mai va comptar amb una manera intèrpret, similar al de dBase. Les seves utilitats per a maneig de base de dades, com ara la de creació de taules (DBU), es lliuraven amb el codi font escrit en Clipper i inclòs, l'usuari podia adaptar-les a les seves necessitats si volia. Es aportaven també moltes rutines escrites en C i Ensamblador a les que l'usuari podia anar, fins i tot ampliar i crear biblioteques de pre-enllaç completes.
Clipper treballa en mode compilador pur generant un codi objecte binari, el paquet proveïa també un enllaçador (RTLINK o Dlink) que amb el mòdul objecte i les llibreries de pre-enllaç generava un mòdul ejecuble directe. Això últim li atorgava a les aplicacions Clipper una velocitat que altres conductors de bases de dades no posseïen, i, com desavantatge, la necessitat de recompilar i enllaçar novament cada vegada que es corregia algun error en el codi font (la depuració era lenta).
Posseeix característiques que van ser molt atractives per a la seva època i el seu entorn de treball (DOS), com ara: maneig propi de memòria virtual (RAM en disc); maneig de memòria estesa, les aplicacions podien superar la barrera dels 640Kb de RAM imposada per MS-DOS; rutines i llibreries poden carregar-se només quan són necessàries i es descarreguen de RAM quan ja no fan falta (enllaç i overlays dinàmics), la quantitat de registres per taules estava només limitada a la capacitat del disc; gran robustesa a les aplicacions, particularment en les dissenyades per client-servidor (xarxa LAN), etc.
Si bé no tenia pràcticament funcions de càlcul com ara les trigonomètriques, que altres llenguatges com FoxPro si incorporar, l'usuari les podia fàcilment elaborar en C i utilitzar-les com qualsevol altra funció de llibreria pròpia del paquet, avantatge que esdevenia que el compilador Clipper i moltes de les seves llibreries estaven gairebé completament desenvolupades en C.
La seva forma, administració, emmagatzematge i intercanvi de pantalles era senzill, efectiu i veloç, el que atorgava bon dinamisme a les aplicacions desenvolupades amb Clipper.
El llenguatge en si era poderós, comptant amb una gran quantitat de sentències, funcions, administració de memòria i variables que permetien al programador desenvolupaments molt flexibles i eficients, en forma raonablement ràpida. També el paquet incloïa un complet "manual en línia navegable", que es carregava en memòria RAM, a requeriment del programador, i s'accedia per la sola pressió d'un parell de tecles.
En la seva llarga època daurada, ha estat, probablement, el llenguatge gestor de bases de dades relacionals de "baix i mitjà port" més utilitzat en el món. Encara avui hi ha molts desenvolupadors Clipper (alguns agrupats comunitats i amb fòrums a Internet), que elaboren aplicacions, fins i tot estil Windows, fent servir les seves pròpies llibreries gràfiques escrites en C i Ensamblador.

## Les primeres versions

Les primeres versions es denominen versions estacionals per fer referència a una estació de l'any en els seus noms oficials. Totes elles és nominada com a compiladors dBase. Aquestes van ser:
* Nantucket Clipper Winter'84 - llançada el 25 de maig de 1985
* Nantucket Clipper Summer'85 - llançada a 1985
* Nantucket Clipper Winter'85 - llançada el 29 de gener de 1986
* Nantucket Clipper Autumn'86 - llançada el 31 d'octubre de 1986
* Nantucket Clipper Summer'87 - llançada el 21 de desembre de 1987
* Gatsoft Clipper Summer'88 - llançada el 16 de març de 1988

## Clipper 5

Clipper 5.0 suposa un salt qualitatiu del llenguatge, encara que comença malament. Donada la creixent popularitat (Summer 87 ha estat utilitzada fins a l'any 2000 com a eina de desenvolupament), es decideix centrar més a ampliar el llenguatge que en ser un compilador millorat de dBase. S'implementen així els pseudoobjectes i altres millores ... però el producte es llança amb nombrosos bugs que fan que el públic objectiu es retregui i continuï utilitzant la versió Summer87, molt més estable. La 5.01 corregeix molts dels problemes, però no serà fins a la 5.2 que es produeixi el bolcat massiu dels desenvolupadors.
Les versions 5 de Nantucket són:
* Nantucket Clipper 5.00 - llançada a 1990
* Nantucket Clipper 5.01 - llançada el 15 d'abril de 1991
* Nantucket Clipper 5.01 Rev.129 - llançada el 31 de març de 1992
La multinacional americana Computer Associates adquireix Nantucket i es llança a millorar el producte afermant les característiques heretades de C, en particular el tipus de dades code-block (literalment bloc de codi , un híbrid entre les macros de dBase, l'avaluació de cadenes de caràcters i els punters de funcions). Una altra de les millores procedents de la versió 5.0 és el sistema "Replace Database Drivers" (RDD o drivers reemplaçables de base de dades), que permeten amb una sola sentència canviar entre diferents normes de base de dades. L'aparició de la versió 5.2, amb una carrera frenètica de subversions (amb millores i correcció d'errors) fins a la 5.2c, que marca el començament de la migració massiva dels que encara romanien en Summer'87. Esdevé així la versió de Clipper més usada de la història. Contràriament, la seva successora, 5.3, tot i implementar millores, cau en un error garrafal, en no tenir en compte la compatibilitat amb almenys les més populars biblioteques de Clipper (tant comercials com gratuïtes), i per consumir excessius recursos de DOS.
* CA Clipper 5.01a -
* CA Clipper 5.20 - llançada el 15 de febrer de 1993
* CA-Clipper 5.2a - llançada el 15 de març de 1993
* CA Clipper 5.2b - llançada el 25 de juny de 1993
* CA-Clipper 5.2c - llançada el 6 d'agost de 1993
* CA Clipper 5.2d - llançada el 25 de març de 1994
* CA-Clipper 5.2e - llançada el 7 de febrer de 1995
* CA Clipper 5.30 - llançada el 26 de juny de 1995
* CA Clipper 5.3a - llançada el 20 de maig de 1996
* CA Clipper 5.3b - llançada el 20 de maig de 1997
Computer Associates decideix abandonar Clipper davant la puixança de Microsoft Windows, i bolca part del desenvolupament de Clipper (el projecte Aspen de Nantucket) a la seva nova eina CA-Visual Objects, que es presenta gairebé al mateix temps que Clipper 5/3 Però l'abandonament de la sintaxi xBase i el no proveir una eina de migració adequada, unit a l'alt preu del producte (que a més havia de competir amb altres productes de la casa, un d'ells basat en BASIC), fa que el gruix de programadors Clipper opten per quedar-se a les versions 5.2/5.3 amb llibreries de tercers com FiveWin, o migrin a eines xBase com Visual FoxPro a mesura que el mercat DOS va reduint.
El 22 d'abril de 2002 Computer Associates i GrafX Software anuncien que han arribat a un acord de llicència, màrqueting i desenvolupament de dos dels seus llenguatges de desenvolupament: CA-Clipper i CA-Visual Objects.
Una de les principals característiques que va ajudar a l'èxit de Clipper va ser la possibilitat d'expandir el llenguatge amb rutines en C i assemblador. Diverses d'elles, com CodeBase o Apollo són RDDs. Amb l'aparició de Windows es van desenvolupar diverses d'elles per portar les aplicacions Clipper a Windows. La més popular és l'espanyola FiveWin, emprada en els productes líders de comptabilitat a Espanya.
A més, l'ús de linkers alternatius van permetre millorar el rendiment de l'executable generat. El més aclamat va ser Blink, que afegeix un extensor de DOS amb mode protegit (és utilitzat amb nombrosos llenguatges i compiladors). Va afegir suport per compilar programes i biblioteques per a Windows.
En l'actualitat el llenguatge Clipper està sent activament implementat i estès per diversos projectes i venedors. Entre els projectes de programari lliure podem destacar Clip, Harbour i xHarbour. Entre els compiladors comercials Xbase++ i Visual flagship . I Altres productes com "Mediator" i "Eagle1 i Condor1 Arxivat 2009-07-09 a Wayback Machine." que li ofereixen la possibilitat de connectar- a Servidors de bases de dades relacionals com MS-SQL, MySQL i Oracle.
Xbase++ ha estat anomenat el compilador Clipper de 32 bits, sent actualment el líder en innovacions i incorporacions al llenguatge. Ja s'han venut més de 25.000 còpies del compilador i el fan servir des de desenvolupadors solitaris fins a grans empreses com Hewlett-Packard o el Govern del Canadà.
Diverses d'aquestes implementacions són portables gràcies al seu desenvolupament en C (DOS, Windows, Linux (32 i 64 bits), Unix (32 i 64 bits), i Mac OS X), suportant diverses extensions del llenguatge; compten amb diverses extensions del llenguatge, i diversos Replace Database Drivers (RDD) que suporten els formats més populars de taules, com DBF, DBTNTX, DBFCDX (FoxPro i Comix), MachSix (Apollo), SQL, i més. Totes aquestes noves implementacions mantenen la completa compatibilitat amb la sintasis estàndard xBase, alhora que ofereixen programació orientada a objectes i sintaxi orientada a la destinació com SQLExecute .
Actualment hi ha una versió lliure, el Projecte Harbour que té com a objectiu original ser 100% compatible amb la versió 5.2 (La més popular de les versions de Clipper), també s'han afegit noves característiques com a suport per a SQL a través de SQLite. Harbour està disponible per a múltiples plataformes, incloent no només MS-DOS i Windows, sinó també a Linux, OS/2 i altres. El mes d'agost del 2008 es va anunciar oficialment el llançament de la versió 1.0.
El 2005, els newsgroups de Usenet relatius a Clipper comp.lang.clipper i comp.lang.clipper.visual-objects segueixen actius.

## Programació en Clipper

Un senzill hola món:
Una màscara simple d'entrada de base de dades:

## Referències

* ↑ «xHarbour Language Extensions».

## Enllaços externs

* Programari Comercialitzador i co-desenvolupadors de CA-Clipper