Articolo ezine

Da Gambas-it.org - Wikipedia.

ORIGINI DEL BASIC

Sin dalla sua comparsa nel 1963, il BASIC ha sempre trovato fortuna tra coloro che amavano la programmazione come puro hobby e che, a differenza dei programmatori professionisti, non avevano le conoscenze o i mezzi per programmare con linguaggi più potenti ma sicuramente più difficili. Con il passare del tempo la diffusione di questo linguaggio ha trovato terreno fertile sia con l'interesse da parte di Microsoft, che creò il Microsoft BASIC, sia con l'introduzione del linguaggio direttamente nel firmware di diffusissimi home computer degli anni '80 come il Commodore VIC20, il C64, il C16/Plus4, lo ZX Spectrum, o l'MSX. Il BASIC era ormai un must per chi iniziava a programmare.

Con l'avvento dei PC 8086 e 80286 (o meglio x86) le versioni del sono state migliorate fino ad arrivare al GW-BASIC, che la Microsoft aveva arricchito inserendo routine per la grafica ed il sonoro. Parlando di GW-BASIC si parla di un linguaggio interpretato: la velocità era quella che era e, dal lato commerciale, vi era il problema che tutti potevano mettere mano al listato e modificarlo. Chi lasciava libero il listato, chiamato sorgente, dava il pieno consenso all'opensource, ma è un'altra storia e ritorno subito all'argomento principale... Proprio per ragioni sia commerciale e soprattutto di velocità nacquero i compilatori quali il QuickBASIC, o QB, di Microsoft. Questo aveva la piena compatibilità con il Basic di prima con in più una velocità nella grafica per quei tempi spaventosa (parliamo sempre di DOS). Esistevano altre versioni con una IDE, come il Turbo BASIC, la cui interfaccia era già nota agli utenti Borland perché ripresa da altri prodotti della serie Turbo come il Turbo Pascal.

Mentre dall'utilizzatore medio di Microsoft Windows il BASIC veniva accolto come una manna dal cielo, nel mondo GNU/Linux, che all'epoca era ancora considerato un sistema per "smanettoni", esso non era visto di buon occhio: la sua scarsa potenza e il suo sistema privo di alcune strutture fondamentali della programmazione "seria" ne facevano un prodotto di scarso interesse ed al quale si preferiva sempre e comunque il re incontrastato della programmazione, il C. GNU/LINUX basa le sue fondamenta su questo linguaggio e lo stesso era visto come la lingua che il Pinguino avrebbe dovuto parlare.

Successivamente naque la shell grafica Windows, per la quale Microsoft realizzò una versione apposita del suo BASIC denominandolo Visual Basic. Questo ambiente si diffuse rapidamente grazie al fatto che la sua IDE permetteva la realizzazione di applicazioni con interfaccia grafica molto velocemente e semplicemente. La semplicità del linguaggio ne fece un prodotto usato anche come base per l'insegnamento della programmazione nelle scuole. Su altri sistemi come il mondo Linux si seguì tale strada proponendo prodotti quali il Real Basic, che riproponevano il sistema di costruzione visuale delle GUI che aveva fatto la fortuna del Visual Basic.

Tuttavia il mondo dell'opensource è bello perché vario e la situazione sarebbe cambiata ben presto. La riscossa del BASIC infatti nacque dalla tastiera e dalla mente di un programmatore francese che, stufo di usare Visual Basic e della sua struttura, decise di scrivere un suo ambiente di programmazione basato sul BASIC per GNU/Linux. L'idea era quella di creare non un clone del prodotto Microsoft ma un interprete del linguaggio originale arricchito di un'IDE in stile Visual BASIC per la costruzione delle interfacce grafiche. Benoit Minisini (questo il nome del programmatore) ha fatto ciò che si sarebbe dovuto fare: ha portato agli hobbysti utilizzatori di GNU/Linux lo strumento per poter lavorare e per poter arricchire con i propri codici il vasto mondo del parco software che l'open source propone

COS'E' GAMBAS?

Torniamo ai giorni nostri, lasciamo alle spalle tutto ciò che è passato e parliamo di cos'è Gambas, come esso si presenta e cosa ha da offrire. Gambas è un acronimo ricorsivo che deriva da Gambas Almost Means Basic che tradotto suona come Gambas è più o meno BASIC, con lo stesso nome si intendono il linguaggio e l'interprete grazie al quale esso viene eseguito. Gambas non è la copia spudorata del vecchio BASIC e neanche il solito clone open source di Visual Basic ma è un prodotto nuovo che asseconda la passione di chi programma per hobby. E' un linguaggio orientato agli oggetti, imperativo fortemente e staticamente tipizzato. E' facile da imparare avendo una curva di apprendimento molto rapida e, a differenza di quanto si crede, se studiato approfonditamente, è anche molto potente. Esso è interpretato e pertanto necessita che l'interprete sia installato nel sistema su cui si vuole che il codice funzioni. A differenza dei linguaggi di programmazione compilati, quelli interpretati risultano essere leggermente più lenti ed un po' più pesanti per il sistema, tuttavia Gambas è capace di creare degli eseguibili contenenti il codice in byte-code, uno speciale tipo di codice che compila, dove possibile, alcune istruzioni direttamente in linguaggio macchina in modo tale da rendere l'esecuzione del software molto più performante. L'IDE di Gambas (che per la cronaca è scritto in Gambas!) favorisce la creazione in maniera facilissima di GUI per i nostri programmi mediante un ambiente di disegno interfacce tanto semplice quanto completo, grazie al quale si potranno creare software che sfrutteranno le gtk e le qt integrandosi in questo modo sia in ambienti Gnome che KDE. La particolarità di Gambas, infatti, è la possibilità di scrivere il codice senza prestare particolare attenzione all'ambiente grafico in cui il nostro software andrà a girare. Ci penserà il programma stesso a utilizzare la libreria grafica più idonea. Di notevole interesse è anche la possibilità che il gambero blu offre di utilizzare, modificare e gestire diversi tipi di database in maniera molto semplice ed intuitiva. Le sue potenzialità comunque non finiscono qui. Con la stessa facilità sarà possibile gestire file audio e video, leggere documenti in PDF, disegnare grafici, criptare file, utilizzare OpenGL e tanto altro.