Diffondi Gambas


Più volte ho presentato i miei software parlando del linguaggio di programmazione con cui erano stati realizzati. A parte sporadici casi in cui ho utilizzato il C, mi ritrovo sempre a programmare con Gambas.

Amo questo linguaggio per la sua immediatezza e per la naturalezza con cui le idee si fondono con la sintassi. Non mi è mai passato per la mente però di presentare questo linguaggio a chi no lo conosce.

Gambas è un ambiente di sviluppo basato su un interprete del linguaggio BASIC orientato agli oggetti. Esso per molti versi somiglia a Visual Basic ma non ne è il clone!
La curva di apprendimento è velocissima e vi ritroverete a scrivere programmi funzionanti e completi in maniera sin troppo facile.

Con Gambas è possibile creare velocemente programmi dotatie di GUI sia QT che GTK+, accedere a database MySql, Firebird, ODBC ed SQLite, pilotare applicazioni KDE, tradurre il proprio software facilmente in altre lingue, creare applicazioni web, sviluppare software OpenGL 3D e tanto altro ancora…

Esso, basandosi su un interprete, è usabile solo su piattaforme *nix e pertanto è possibile sfruttare facilmente le potenzialità di questo sistema con lo stesso codice.

Per chi proviene dal mondo Windows ed è abituato a Visual Basic noterà che migrare è molto semplice e che le potenzialità di questo linguaggio sono tutt’altro che limitate.

Ho sempre sperato che Gambas potesse diventare un linguaggio diffuso poichè credo che la semplicità debba essere alla base degli strumenti utilizzati da un hobbysta/programmatore. Tuttavia il suo utilizzo è ancora troppo marginale. La sua diffusione comporterebbe l’arrivo di altre menti che potrebbero lavorare a progetti sempre più grandi ed interessanti che sarebbero una buona pubblicità per il linguaggio stesso.

Chiunque si avvicini a questo linguaggio può sempre contare su una delle migliori (se non la migliore!) comunità del mondo sempre pronta a risolvere i problemi e sempre pronta ad aiutare i progetti nascenti.

Ci trovate all’indirizzo www.gambas-it.org, nella speranza di diventare sempre di più grandi.

Se possiedi un blog, se hai un sito, se vuoi avvicinarti alla programmazione nel mondo GNU/Linux o se ti piace questo linguaggio parlane e favorisci la sua diffusione.

Le immagini utilizzate in questo post sono state realizzate da me. E’ possibile prelevarle per poterle utilizzare come mezzi di diffusione del linguaggio mediante siti, blog o carta stampata.

Didattica Gambas: Passaggio parametri da riga di comando


Un paio di post fa ho spiegato molto sinteticamente come creare applicazioni in C che permettessero il passaggio al programma di argomenti da riga di comando.

Ora vedremo come eseguire la stessa procedura ma con codice scritto in Gambas. Anche se la potenza di questo linguaggio si basa sulla facilità con cui si possono scrivere software con interfaccia grafica, alle volte può essere molto più utile scrivere codici di programmi per terminale.

Proprio come accade per il linguaggio C, anche con il gambero è possibile passare argomenti che verranno poi salvati in un vettore di tipo stringa dove ogni elemento corrisponde ad un parametro.

Avviamo un nuovo progetto e selezioniamo “Applicazione a riga di comando”. Fatto ciò si presenterà il solito IDE ma con la mancanza dei tipici oggetti grafici.
Si nota subito la mancanza del form FMain sostituito dal modulo MMain.

Spostiamoci nell’editor del codice e scriviamo:

PRINT "Nome programma: " & Application.Args[0]
PRINT "Argomenti passati: " & Application.Args.Count
PRINT "Primo argomento: " & Application.Args[1]
PRINT "Secondo argomento: " & Application.Args[2]

Analizziamo gli elementi fondamentali del codice. L’uso di Application.Args[x] permette di controllare il contenuto dell’array degli argomenti passati. Bisogna tenere presente che il primo elemento del vettore Application.Args[0] contiene sempre il nome del programma stesso. Proseguendo così si trovano il primo argomento passato (Application.Args[1]), il secondo (Application.Args[2]), ecc…..

Di notevole importanza è anche l’elemento Application.Args.Count che altri non è che una variabile di tipo integer contenete il numero degli elementi passati al programma. Specifico che se al programma vengono passati 3 elementi Application.Args.Count varrà 4 poichè in esso è conteggiato anche il nome del programma stesso.
Esso inoltre è importanti per scrivere programmi dei quali non si conosce preventivamente il numero di argomenti passati. Grazia a Application.Args.Count, infatti, è possibile gestire un ciclo che legga tutti i dati anche senza conoscerne il numero preventivamente.

Compilando e lanciando il codice precedente e scrivendo nel terminale ad esempio:

./mio_programma uno due  

Ci verrà restituito:

Nome programma: mio_programma
Argomenti passati 3
Primo argomento: uno
Secondo argomento: due


Le potenzialità di questo codice sono molte ed è possibile creare programmi molto versatili usabili comodamente da terminale.

Inoltre voglio precisare che questo tipo di gestione può essere utilizzata anche con programmi ad interfaccia grafica. Infatti è possibile lanciare questi programmi da terminale passando eventuali argomenti magari per settare delle impostazioni iniziali.

Calcolatrice in Gambas


Quando si inizia a programmare la prima cosa che si fa è creare una calcolatrice. Non interessa che essa sia bella o sia la semplice riga comando, l’importante è che il primo programma funzionante che si scrive sia una calcolatrice. Non ho mai capito il perchè ma ovviamente non potevo non arricchire il mondo dell’informatica con la più semplice delle calcolatrici scritte in Gambas.

In realtà l’idea non è stata mia ma è nata dall’esigenza di un utente di inserire nel suo progetto una pratica calcolatrice per fare semplici calcoli per un gestionale.

Il progetto è veramente basilare e sarà ampliato a seconda delle funzionalità richieste. La cosa di cui sono davvero fiero è che ho dato quel tocco in più per eseguire la visualizzazione in perfetto stile vera calcolatrice, ovvero, quando si preme il tasto dell’operazione che si vuole eseguire il numero sullo schermo rimane e scompare solo quando successivamente si inizia ad immettere il nuovo operando.

Questo progetto può essere utile per fini didattici e come sempre trovate il download nella colonna di destra.

EDIT: Alla versione 1.0.2 è stata aggiunta la visualizzazione del nastro, cioè l’area nella quale vengono elencate le operazioni effettuate in precedenza.

EDIT: L’attuale versione 1.1.0 prevede il nuovo tasto percentuale intelligente; ovvero è possibile effettuare le normali operazioni in cui però il secondo membro è una data percentuale del primo.

ESEMPIO:

1000 + 20% = 1000 + 200 = 1200


EDIT: Con la versione 1.1.1 si risolve un piccolo bug per il calcolo della percentuale ed è possibile effettuare la stessa direttamente da tastiera con il tasto % [shift + 5]

EDIT: Corretto l’auto-aggiornamento della nastro nella versione 1.2.0. Ora lo stesso scorre automaticamente ad ogni operazione in modo da mostrare sempre l’ultima eseguita.

EDIT: Riscontrato piccolo bug nelle operazioni con primo membro decimale. Risolto nella versione 1.2.2