Il linguaggio Harbour – il vecchio Clipper ha nuova vita

01

Ricordate il linguaggio Clipper, con cui si creavano e gestivano le applicazioni con i Database? Da oggi tale linguaggio è risorto dalle sue ceneri, molto più potente e versatile di prima. Il suo nuovo nome: Harbour.

Clipper era (ed è…) un potente linguaggio di programmazione. Veniva utilizzato prevalentemente per la creazione di programmi gestionali con database relazionali, funzionanti all'interno del sistema operativo MS-DOS. Clipper era molto in voga negli anni ottanta, quale compilatore, anche per il linguaggio DB3. Il suo successo venne decretato per molte caratteristiche che lo rendevano diverso da altri linguaggi di programmazione. Tra queste ricordiamo:

  •  la facilità con cui si realizzavano interfacce video molto gradevoli come, ad esempio, sistemi a menu a tendina, input e validazione dei dati a video, il tutto con una semplicità impressionante;
  • la semplicità di creazione, gestione ed utilizzo di un sistema completo di database, con tanto di archivi, indici, relazioni e quant'altro potesse prevedere l'utilizzo di dati ed informazioni ad alto livello;
  • la possibilità di eseguire il debug ed il controllo del programma, riga per riga, con possibilità di visualizzare anche lo stato delle variabili, in tempo reale;
  • la possibilità di compilare il codice sorgente in eseguibile (EXE) da distribuire liberamente ai propri clienti ed utenti;
  • presenza di tanti tool per la creazione dei databases, report, etichette e buste, e tanti altri.

Naturalmente, come ogni settore dell'informatica, i tempi sono cambiati e, se nell'intervallo temporale compreso tra il 1980 ed il 2000, le copie di questo prodotto furono milioni, con l'evoluzione dell'hardware e dei sistemi operativi, il Clipper cominciò poco a poco a tramontare. Ricordiamo che il compilatore era disponibile solamente per piattaforme basate sul sistema operativo MS-DOS. Inoltre, la struttura base a 16 bit, imposta ovviamente dai PC, limitava non poco l'efficenza e la velocità. Ciò nonostante, il Clipper era uno dei pacchetti maggiormente venduti al mondo.

 

 

Col passare degli anni, e del susseguirsi delle aziende commerciali che commercializzavano Clipper, le vendite diminuirono sempre più ed il prodotto tramontò,  risultando di fatto obsoleto.

 

Non scomparvero però i numerosissimi programmatori ed appassionati del linguaggio Clipper che, aspettando fiduciosi un miracolo, furono premiati in breve tempo. Così, grazie all'opera instancabile di programmatori molto in gamba, nacque Harbour, un compilatore che doveva sostituire in toto Clipper. In effetti fu cosi  in quanto, oltre a garantire la piena compatibilità al 100%, esso  introduceva nuove caratteristiche, compatibili con l'odierna tecnologia informatica. La versione 1.0.0 vide la luce nell'agosto del 2008.

Nacque così Harbour Project, un ambizioso progetto che offriva le caratteristiche (e molto più) dell'ormai tramontato Clipper. Il progetto mantenne subito le promesse e, in poco tempo, gli utenti misero in moto una colossale macchina composta da forum, repository, progetti ed altro.

 

Harbour, come detto prima, permette di realizzare interfacce di testo molto complesse, scrivendo poche righe di codice. Ad esempio, per realizzare un menù di scelta a video, è sufficiente creare il seguente programma:

 

PROCEDURE Main ()
   CLS
   nScelta=1
   @ 09,08 TO 15,35 DOUBLE COLOR "rg+/n"
   @ 10,10 PROMPT "1) Inserimento………."
   @ 11,10 PROMPT "2) Modifica…………."
   @ 12,10 PROMPT "3) Visualizzazione……"
   @ 13,10 PROMPT "4) Stampa……………"
   @ 14,10 PROMPT "5) Cancellazione…….."
   MENU TO nScelta
   RETURN
 

 

Oppure per realizzare un sistema per l'inserimento dei dati, è sufficiente scrivere il seguente piccolo programma:

 

PROCEDURE Main ()

   CLS
   cCognome = SPACE(20)
   cNome = SPACE(20)
   nEta = 0
   @ 07,18 TO 13,63 DOUBLE COLOR "g+/n"
   @ 08,20 SAY "Inserire il cognome  " COLOR "w+/n" get cCognome COLOR "rg+/r"
   @ 10,20 SAY "Inserire il nome     " COLOR "w+/n" get cNome COLOR "rg+/r"
   @ 12,20 SAY "Inserire l'eta       " COLOR "rg+/n" get nEta COLOR "w+/b"
   READ
   RETURN
 
 

Il linguaggio Harbour (ormai è lecito chiamarlo così) dispone anche di tecnologie avanzate al passo dei tempi. Basti pensare che  esso offre, tra le tante,  seguenti caratteristiche:

  • Connessioni dati ADO, SQL e ODBC;
  • XML, TCP-IP, FTP, ecc;
  • Può essere utilizzato con tantissimi sistemi operativi (Windows, Linux, Mac, Arm, ecc);
  • Da oggi possono essere realizzate anche complesse interfacce GUI, utilizzando librerie come le QT;
  • I vecchi problemi di memoria statica sono stati completamente eliminati.
  • E molti altri…

Dal momento che Harbour è gestito da tanti volontari è lecito aspettarsi l'esistenza di tanti pacchetti ed utilità che completano il nucleo centrale. In effetti è cosi, infatti esso dispone di "contribs", ossia di svariati contributi che gestiscono qualsiasi tipo di esigenza. Tra i contributi più importanti ricordiamo:

  • hbformat – Harbour source code formatter
  • hbexpat – libexpat wrapper (XML parser)
  • hbgt – GT library
  • hbodbc – ODBC wrapper (SQL/db)
  • hbzebra – Barcode creating functions
  • sddodbc – RDDSQL ODBC backend
  • hbtip – TCP/IP-specific comm. protocol functions
  • hbhpdf –  wrapper (PDF)
  • e, tanti, tanti altri.

 

I sorgenti (PRG) di Harbour possono essere creati con qualsiasi editor testuale, dal momento che i listati (PRG) sono semplici files di testo. Ad ogni modo, la comunità di Harbour ha previsto un eccezionale ambiente di sviluppo, che agevola enormemente le operazioni di programmazione di un programma. L'ambiente è hbIDE e mette a disposizione del programmatore tanti strumenti di sviluppo, quali documentazioni sui comandi e funzioni, colorazione sensibile del codice, tools vari, gestione automatica del progetto, debug integrato, strumenti testuali di ricerca e molti altri.

 

Harbour può creare anche programmi con interfaccia GUI. E' sufficiente infatti interfacciare il linguaggio con le famore librerie QT della Nokia, per ottenere uno stabile e affidabile programma, utilizzabile su qualsiasi sistema operativo.

 

I programmatori di Clipper hanno adesso una ragione in più per programmare ed utilizzare i loro programmi. La compatibilità è infatti del 100% e qualsiasi vecchio programma può essere ricompilato senza problemi con il nuovo ambiente.

Harbour è la soluzione consigliata per i programmatori esigenti che hanno la necessità di creare, in poco tempo, veloci e sicure applicazioni. Inoltre esso è completamente gratuito, supportato da migliaia di persone disponibile e professionali ed è open-source.

Concludendo, ecco alcune ottime motivazioni per utilizzarlo nel proprio lavoro:

  • Perché è un software gratuito compatibile al 100% con i compilatori Clipper;
  • Perché rimuove alcuni dei limiti imposti dalla implementazione di base, ma la portata di questo dipenderà dalla piattaforma scelta;
  • Perché Harbour è altamente stabile, solido ed efficiente;
  • Perché Harbour supporta RDDs driver di database (sostituibili) per consentire il collegamento a più fonti di dati;
  • Perché Harbour è portabile su più sistemi operativi, utilizzando lo stesso codice sorgente;
  • Poiché l'architettura è completamente aperta e supporta contributi di terze parti;
  • Perché Harbour è open-source, e quindi non è soggetto alle decisioni di una società privata;
  • Perché Harbour è sviluppato da un team di grande esperienza.

Harbour può essere scaricato all'indirizzo http://harbour-project.sourceforge.net/

STAMPA     Tags:, ,

5 Comments

  1. fuzzy 7 novembre 2012
  2. remo.pe 7 novembre 2012
  3. Piero Boccadoro Piero Boccadoro 8 novembre 2012
  4. Emanuele 8 novembre 2012
  5. Piero Boccadoro Piero Boccadoro 8 novembre 2012

Leave a Reply