Harbour è un linguaggio di programmazione open source che si ispira al Clipper, sviluppato dalla Nuntucket, negli anni '80, come compilatore per il linguaggio di programmazione/interrogazione del database DBIII, per il quale era fornito solo un interprete.
Tale decisione avrebbe potuto decretare la morte di Clipper ma le cose sono andate diversamente perché alcuni programmatori decisero di continuare a supportare il linguaggio sviluppando dei compilatori alternativi. Fra le soluzioni proposte una delle più interessanti è certamente Harbour, un software open source, distribuito sotto una licenza GPL modificata che consente lo sviluppo di applicazioni proprietarie (http://www.harbour-project.org/license.html).
L'unico neo di
questo ottimo progetto è la documentazione. Molti potenziali
utenti si trattengono dall'intraprendere lo sviluppo di
progetti con Harbour a causa della difficoltà di
reperire le informazioni necessarie per cominciare ad usarlo. In
realtà vari siti forniscono una ricca documentazione circa i
possibili usi "avanzati" (come la programmazione ad oggetti
o l'interfacciamento delle librerie grafiche) ma
apparentemente manca una guida per chi sta muovendo i primi
passi.
Spero che queste mie poche note contribuiranno a risolvere il
problema.
Installazione
Nota: questo
documento presenta la procedura di installazione degli
eseguibili sotto Windows. I lettori interessati ad installare
Harbour sotto altri sistemi operativi (Linux, MS-DOS, OS2) sono
rimandati al fondo del documento dov'è illustrata la procedura
di installazione di Harbour a partire dai sorgenti.
Volendo provare Harbour bisogna innanzitutto procurarsi il pacchetto di installazione che può essere scaricato gratuitamente dal sito: http://www.harbour-project.org/. In questo tutorial faremo riferimento alla versione per Windows (pacchetto harbour-3.0.0-win.exe).
Scaricato il pacchetto per avviare l'installazione basterà cliccare su di esso. Si aprirà la finestra del Wizard. Cliccate su "Next" per andare avanti. La schermata successiva vi chiederà di confermare l'accettazione dei termini della licenza. Premete "Next". Quindi apparirà una terza finestrella che vi consentirà di scegliere i componenti che desiderate installare. Vi suggerisco di installare anche l'IDE (occorre selezionarlo, vedi figura).
La schermata successiva consente di scegliere la directory in cui saranno installati i file., solitamente C:\hb30. Proseguite premendo Next".
La procedura di installazione proseguirà quindi con la creazione della directory selezionata e la copia dei file.
Il processo termina con l'introduzione di una nuova voce nel menu START e con l'aggiunta di una icona di collegamento alla directory di istallazione sul desktop.Uno sguardo al contenuto della directory c:\hb30
Al termine dell'installazione la directory c:\hb30 conterrà nove subdirectory, il programma di disinstallazione e una mezza dozzina di file di testo contenenti spiegazioni varie. Si consiglia in particolar modo di leggere il contenuto dei file COPYING e INSTALL; il primo riporta il testo della licenza sotto la quale Harbour viene rilasciato, mentre il secondo fornisce indicazioni circa la procedura di installazione e l'utilizzo del compilatore.
Passando ad esaminare le subdirectory troviamo:
addons
bin contiene i file eseguibili di Harbour.
comp directory in cui è installato il compilatore C “mingw”
contrib contiene contributi di vari sviluppatori che utilizzano Harbour.
doc documenti.
examples file di esempio.
include file da includere per utilizzare le funzioni contenute nelle librerie.
lib librerie.
test routine de test di regressione.
Prima di cominciare ad utilizzare Harbour sarebbe altamente auspicabile leggere a documentazione contenuta nella directory c:\hb30\doc. In particolare può essere utile esaminare il file “dirstruct.txt” che descrive l'organizzazione della directory di installazione di Harbour (facendo purtroppo riferimento all'installazione sotto Linux che è molto più articolata). Si consiglia inoltre di esaminare il file “clipper.txt” che illustra alcune nuove funzionalità introdotte in Harbour che non erano presenti nel linguaggio originale. I file “cmdline.txt” e “cmdopt.txt”trattano delle opzioni di compilazione, “class.txt” e “destruct.txt” della programmazione ad oggetti, eccetera. Gli argomenti su cui focalizzare la vostra attenzione dipendono dai vostri interessi e dalla vostra precedente esperienza come programmatori in linguaggio Clipper.
Curiosamente i file che illustrano la licenza sotto la quale sono rilasciate le librerie grafiche Qt non sono contenuti nella directory c:\hb30\doc bensì nella directory c:\hb30\bin. Prima di intraprendere lo sviluppo di un nuovo progetto che prevede l'impiego di un'interfaccia grafica si suggerisce di prendere visione dei suddetti file perché le condizioni di rilascio delle Qt sono diverse da quelle di Harbour.
La directory c:\hb30\bin contiene tutti gli eseguibili (esclusi quelli riconducibili al compilatore C che si trovano in c:\hb30\comp) compreso l'ambiente di sviluppo grafico “hbide.exe”.
Il primo
programma
Per quanto concerne la prassi di utilizzo, Harbour consente di scegliere fra due modalità di lavoro: si può compilare da riga di comando come si faceva con Clipper oppure si può optare per un ambiente di sviluppo a finestre (HBIDE), lavorando a progetti.
Qualunque sia la nostra scelta, prima di procedere conviene creare una directory di lavoro per le prove (c:\hb30\prove) e un semplice programma “HELLO.PRG”:
PROCEDURE Main()
? "Hello World!"
RETURN
Scritte le tre righe di codice precedenti e salvato il file possiamo provarlo immediatamente da linea di comando digitando:
hbrun hello.prg <INVIO>
in alternativa possiamo compilare il file utilizzando il comando:
hbmk2 hello.prg <INVIO>
e poi eseguire il programma digitando:
hello <INVIO>
Volendo utilizzare HBIDE bisognerà innanzitutto accedere alla directory c:\hb30\bin.
Cliccate quindi sulla voce corrispondente al file hbide.exe per aprire la finestra corrispondente ed eseguirlo.
Cliccate quindi su File, quindi su New, ed infine su Project; si aprirà la finestra di Explorer.
Posizionatevi sulla directory c:\hb30 dove creerete la directory “prova2” (o più precisamente c:\hb30\prova2), che sceglierete cliccando su “choose”.
Creerete quindi il programma da compilare cliccando su File, quindi New ed infine su Source (dovrebbe essere selezionata la directory creata in precedenza c:\hb30\prova2).
Create il file hello2.prg che verrà immediatamente aperto nell'area centrale della finestra di HBIDE.
Copiate o scrive all'interno il testo dell'esempio precedente, aggiungendo la scritta “Ciao!”:
PROCEDURE Main()
? "Hello World!"
? "Ciao!"
RETURN
Passate poi a considerare il progetto (file “hello.hbp” aperto sotto forma di form nella porzione destra della finestra.
Riempile le voci corrispondenti al nome del progetto (Project Title) e quella associata al nome del file eseguibile (“Output Name”) indicando un nome che vi piace, ad esempio “hello2”.
Cliccate poi sulla linguetta “HBP” e quindi sull'icona gialla ritraente una cartella.
Quando si aprirà la finestra della selezione dei sorgenti (“Select Sources”) selezionate il file “hello2.prg” creato poc'anzi.
Confermate cliccando su “Save”
Fatto ciò è possibile compilare i file sorgenti che costituiscono il progetto cliccando sull'icona arancione ritraente un muro. In alterativa aprite il menu “Build” e cliccate su “Build Project” che genererà il programma eseguibile.
A questo punto si potrebbe lanciare il programma generato(ad esempio usando il comando “Build and Lunch”) senonché si tratta di un programma fatto per girare in modalità console visualizzando subito i risultati, per cui quando lo si fa partire si apre una finestra, il programma viene eseguito in una frazione di secondo quindi la finestra viene subito richiusa, per cui non si riesce a vedere niente
Per vedere se l'eseguibile lavora correttamente occorre lanciarlo da una finestra di DOS.
Se usate Windows-XP, cliccate su START, tutti i programmi, Accessori, Prompt dei comandi.
Quando si aprirà la finestra nera di DOS digitate
CD C:\HB30\PROVA2 <INVIO>
e quindi
hello2 <INVIO>
Otterrete il risultato mostrato nella figura sottostante.
Nel caso in cui invece voleste cimentarvi con un hello world grafico vi rimando agli ottimi tutorial del Gruppo Eratostene (www.gruppoeratostene.com/harbour/harbour-tutorials.htm).
A beneficio dei più impazienti: create un nuovo file di progetto “hello4.hbg” e copiate all'interno il seguente codice:
# # $Id$ # -3rd=hbide_version=1.0 -3rd=hbide_title=HELLO4 -3rd=hbide_output=HELLO4 hbqt.hbc -w3 -es2 hello4.prg
Quindi create il file “hello4.prg” contenente il seguente codice (derivato dal primo esempio del tutorial di Giovanni Di Maria)::
#include "hbqtgui.ch" PROCEDURE Main () LOCAL oWnd oWnd := QMainWindow () oWnd : setWindowTitle ( " Hello World!" ) oWnd : resize ( 300 , 200 ) oWnd : show () QApplication (): exec () RETURN // END SOURCE
Salvate tutto.
Aprite quindi il file “hello4.hbp” come progetto in HBIDE e rigenerate il progetto utilizzando l'opzione “Build and Launch” (icona del muro con la freccia blu). Al termine della build verrà eseguito automaticamente il codice generato che aprirà una finestra di Windows avente per titolo “Hello World!”.
INSTALLAZIONE DI HARBOUR DAI
SORGENTI
La procedura di installazione a partire dai sorgenti si utilizza tipicamente in tre casi:
L'installazione a partire dai sorgenti ha due prerequisiti: (1) dovete disporre di un compilatore C installato correttamente e (2) vi occorrono i sorgenti.
(1) Circa il primo punto se usate Linux non dovrebbero esserci problemi poiché quasi tutte le distribuzioni forniscono il compilatore GNU preinstallato proprio per in casi come questo. Se invece usate Windows avete solo l'imbarazzo della scelta; io ad esempio ho utilizzato OpenWatcom 1.9, un compilatore open source scaricabile gratuitamente da softpedia.
Giovanni Di Maria, Harbour HowTo Tutorial,
Giovanni Di Maria, HBQT-Tutorial.
NB: se utilizzate i due tutorial di cui sopra (sono fatti bene per cui a mio avviso ne vale la pena), fate attenzione ad usare le funzioni di copia e incolla di Windows perché inseriscono degli spazi in posti imprevisti. Compilando i programmi di esempio si rischia che questi non funzionino, non perché sono sbagliati ma perché la funzione di copia e incolla ha aggiunto degli spazi che non avrebbero dovuto esserci.