Clipper (linguaxe de programación)

**Clipper** é unha linguaxe de programación imperativa creada en 1985 por Nantucket Corporation. Nun principio pensouse en que Clipper sería un compilador para o sistema xestor de bases de datos dBase III (de feito as *versións estacionales* de Nantucket incluían unha etiqueta que o indicaba así), pero co tempo o produto madurou, converténdose nunha linguaxe máis poderosa que o orixinal, non só polas súas propias implementaciones senón tamén polas ampliacións á linguaxe desenvolvidas por terceiros en C e Pascal, dos que vai herdando características. Isto convérteo na ferramenta líder de desenvolvemento baixo MS-DOS de aplicacións relacionadas con bases de datos, sobre todo programas de contabilidade e facturación (SAGE-SP, líder do mercado español, úsao para Contaplus e FacturaPlus), e axendas comerciais e programas de tarificación (aproximadamente o 80% das compañías de seguros de España utilizárono nos programas para os seus axentes).

A diferenza doutras linguaxes xBase, Clipper nunca contou cun modo intérprete similar ao de dBase, e as súas utilidades para manexo de base de datos entregábanse co código fonte. Como moitos outras linguaxes xBase, Clipper en realidade non é un compilador puro, pois traduce o código fonte a P-code (tamén chamado pseudocódigo) que é interpretado por unha máquina virtual. Este sistema é rápido pero non tanto como o sería un compilador puro que xerase ensamblador. Por iso sempre necesita ter os ficheiros de runtime.

As primeiras versións denomínanse *versións estacionales* por facer referencia a unha estación do ano nos seus nomes oficiais. Todas elas nomeábanse como **compiladores dBase**. Estas foron:
* Nantucket Clipper Winter'84 - lanzada o 25 de maio de 1985
* Nantucket Clipper Summer'85 - lanzada en 1985
* Nantucket Clipper Winter'85 - lanzada o 29 de xaneiro de 1986
* Nantucket Clipper Autumn'86 - lanzada o 31 de outubro de 1986
* Nantucket Clipper Summer'87 - lanzada o 21 de decembro de 1987

Clipper 5.0 supón un salto cualitativo da linguaxe, aínda que comeza con mal pié. Dada a popularidade cada vez maior (Summer 87 foi utilizada ata o ano 2000 como ferramenta de desenvolvemento), decídese centrarse máis en ampliar a linguaxe que en ser un *compilador mellorado* de dBase. Se implementan os pseudoobjetos e outras melloras... pero o produto lánzase con numerosos bugs que fan que o público obxectivo se retraiga e siga usando Summer87, moito máis estable. A 5.01 corrixe moitos destes problemas, pero non será ata a 5.2 que se produza o envorque masivo. As versións 5 de Nantucket son:
* Nantucket Clipper 5.00 - lanzada en 1990
* Nantucket Clipper 5.01 - lanzada o 15 de abril de 1991
* Nantucket Clipper 5.01 Rev.129 - lanzada o 31 de marzo de 1992

O xigante do soft Computer Associates adquire Nantucket e lánzase a mellorar o produto afianzado as características herdadas de C, en particular o tipo de datos **code-block** (literalmente *bloque de código*, un híbrido entre as macros de dBase, a avaliación de cadeas de caracteres e os punteiros de funcións). Outra das melloras procedentes da 5.0 é o sistema de Replaceable Database Drivers (RDD ou drivers reemplazables de base de datos), que permite cunha soa sentenza cambiar entre diferentes normas de base de datos. A aparición da versión 5.2, cunha carreira frenética de subversiones (con melloras e corrección de erros) ata a 5.2c, marca o comezo da migración masiva de quen aínda permanecían en Summer'87. Devirá na versión de Clipper máis usada da historia. Pola contra a súa sucesora, 5.3, a pesar de implementar melloras, cae nun erro de vulto, ao non ter en conta a compatibilidade con polo menos as máis populares librerías de Clipper (tanto comerciais como freeware), e ao consumir máis recursos de DOS.
 
* CA Clipper 5.01a -
* CA Clipper 5.20 - lanzada o 15 de febreiro de 1993
* CA-Clipper 5.2a - lanzada o 15 de marzo de 1993
* CA Clipper 5.2b - lanzada o 25 de xuño de 1993
* CA-Clipper 5.2c - lanzada o 6 de agosto de 1993
* CA Clipper 5.2d - lanzada o 25 de marzo de 1994
* CA-Clipper 5.2e - lanzada o 7 de febreiro de 1995
* CA Clipper 5.30 - lanzada o 26 de xuño de 1995
* CA Clipper 5.3a - lanzada o 20 de maio de 1996
* CA Clipper 5.3b - lanzada o 20de maio de 1997

Computer Associates decide abandonar Clipper ante a puxanza de Microsoft Windows, e envorca parte do desenvolvemento de Clipper (o *proxecto Aspen* de Nantucket) na súa nova ferramenta CA-Visual Objects, que se presenta case á vez que Clipper 5.3 Pero o abandono da síntaxis xBase e o non prover unha ferramenta de migración adecuada, unido ao alto prezo do produto (que ademais debía competir con outros produtos da propia casa, un deles baseado en BASIC), fai que o groso de programadores Clipper opten por permanecer en 5.2/5.3 con librerías de terceiros como FiveWin ou migren a ferramentas xBase como Visual FoxPro a medida que o mercado DOS vai reducíndose.

O 22 de abril de 2002 Computer Associates e GrafX Software anuncian que alcanzaron un acordo de licenciamiento, mercadotecnia e desenvolvemento de dúas das súas linguaxes de desenvolvemento: CA-Clipper e CA-Visual Objects.

Unha das principais características que axudou ao éxito de Clipper foi a posibilidade de expandir a linguaxe con rutinas en C e ensablador. Varias delas, como CodeBase ou Apollo son RDDs. Coa aparición de Windows desenvolvéronse varias para portar as aplicacións Clipper a Windows. Delas a máis popular é a española FiveWin (http://www.fivetechsoft.com), empregada nos produtos líderes de contabilidade en España.

Ademais, o uso de linkadores alternativos permitiron mellorar o rendemento do EXE xerado. O máis aclamado é Blinker, que engade un extensor de DOS con modo protexido (é utilizado con numerosas linguaxes e compiladores). Engadiu soporte para compilar programas e librerías para Windows.

Na actualidade a linguaxe Clipper está sendo activamente implementado e estendido por varios proxectos e vendedores. Entre os proxectos de software libre podemos destacar Clip, Harbour e xHarbour. Entre os compiladores comerciais *Xbase++* e *FlagShip*. E Outros produtos como "MEDIATOR" que lle brindan a posibildad de conectarse a Servidores de bases de datos relacionales como Ms-SQL, MySQL e Oracle.

Varias desas implementaciones son portables grazas ao seu desenvolvemento en C (DOS, Windows, Linux (32 e 64 bits), Unix (32 e 64 bits), e Mac VOS X), soportando varias extensións da linguaxe , contan con varias extensións da linguaxe, e varios Replaceable Database Drivers (RDD) que soportan os formatos máis populares, como DBF, DBTNTX, DBFCDX (FoxPro e Comix), MachSix (Apollo), SQL, e máis. Todas estas novas implementaciones manteñen a completa compatibilidade coa síntasix estándar xBase, á vez que ofrecen programación orientada a obxectos e síntaxis orientada ao destino como SQLExecute().

En 2005, os newsgroups de Usenet relativos a Clipper comp.lang.clipper e comp.lang.clipper.visual-objects seguen activos.

## Programación en Clipper 
Un sinxelo ola mundo:

```php
? "¡Ola Mundo!"
```

Unha máscara simple de entrada de base de datos:

```php
USE Cliente SHARED NEW
 cls
 @\  1, 0 SAY "ClitNum" GET Cliente->CliNum PICT "999999" VALID Cliente->CliNum > 0
 @\  3, 0 SAY "Contacto" GET Cliente->Contacto VALID !empty(Cliente->Contacto)
 @\  4, 0 SAY "Direccion" GET Cliente->Direccion
 READ
```

## Véxase tamén 
### Ligazóns externas 
* FiveTech, desenvolvedores de FiveWin e un dos motores do Proxecto Harbour (en inglés).
* Proxecto Harbour (en inglés).
* ViaOpen, desenvolvedores de controis para FiveWin e FiveWin Pocket PC (en inglés).
* FWCodeSnips, CodeSnips para FiveWin e FiveWin Pocket PC (en inglés).
* Visual FlagShip, compilador para GNU/Linux, Unix e Windows (en inglés).