| RelHost.Net |
|
Falcon - introduzione Falcon è un linguaggio di programmazione pensato e creato da un italiano, Giancarlo Niccolai, partito, come quasi tutti gli scrittori di linguaggi, da un'idea base... principalmente quella di creare uno strumento flessibile, capace di soddisfare le esigenze di qualunque programmatore di modo che fosse in grado di piegarsi al processo logico di creazione del programma seguendone le linee di pensiero senza dover obbligare lo sviiluppatore a modificare la propria logica. L'obbiettivo è, evidentemente, la massima produttività. Partendo da questa premessa del tutto ideale è interessante notare come, nella pratica, Falcon sia, veramente, un eccellente linguaggio multiparadigma. E' possibile lavorare in maniera procedurale, prototype-oriented, object-oriented, funzionale, message oriented ed infine, a partire dalla release 0.8.12 è supportata anche la programmazione tabellare. In progetto per la ver. 1.0 anche il supporto ad un settimo paradigma, la programmazione logica. Di tutti questi aspetti parleremo in maniera diffusa. Già questa serie di caratteristiche è abbastanza unica... ma non è tutto. Per la versione 1.0 avremo anche una forma di programmazione basata su contratto, della quale parleremo al momento della sua implementazione. Ovviamente è presente un meccanismo di garbage-collection che è peraltro in fase di ottimizazione e revisione in vista della prima versione ufficiale. La possibilità di esprimersi attraverso vari paradigmi e la disponibilità di abbondanti features consente allo sviluppatore di modulare il linguaggio ai suoi schemi mentali (e non il contrario). Altri ritengono che tutto questo possa portare più confusione che vantaggi reali; tutti i punti di vista sono assolutamente rispettabili a mio avviso, il poter disporre di così tanti strumenti è invece un aspetto decisamente positivo. Sta allo sviluppatore fare buon uso di quanto gli viene offerto tenendo presente l'aspetto senza dubbio vantaggioso di non dover cambiare linguaggio qualora si voglia adottare un paradigma in particolare tra quelli disponibili. Tant'è che alcuni linguaggi in voga, come C#, stanno, piano piano, aggiungendo features su features in particolare rivolgendosi verso la programmazione funzionale. E' il linguaggio che deve supportare lo sviluppatore non quest'ultimo che deve modificare il proprio pensiero per adattarsi al linguaggio, almeno in linea di principio e come già detto al'inizio. I campi applicativi
per Falcon sono ovviamente vastissimi, non è impossibile nemmeno di utilizzare
questo strumento per la
generazione di pagine Web dinamiche (cosa che è già stata fatta tramite
integrazione con Apache2). Ci sono controindicazioni? Beh, con la premessa che non esiste il linguaggio definitivo e perfetto, sicuramente Falcon si presenta ancora un po' indietro in termini di diffusione. La Community è ridotta, il linguaggio soffre ancora di qualche baco qua e là (ciò che è evidentemente del tutto comprensibile ed aggiungo che la qualità mi sembra, di contrasto, davvero molto elevata) mancano IDE o strumenti RAD dedicati ed anche il supporto da parte di più diffusi editor di testo è, al momento, ancora non ai massimi livelli. La libreria run-time è piuttosto ridotta rispetto a quanto disponibile per altri linguaggi e questo è un altro difetto di gioventù non facilmente recuperabile in tempi brevi. Va sottolineato come l'autore e i suoi soltanto dalla versione 0.9 hanno un po' spinto per diffondere il linguaggio, avendo invece in precedenza fatto pochissima pubblicità al linguaggio, il quale va detto è open source e fruibile gratuitamente. Si tratta comunque di un progetto di ampia portata, ambizioso e pesante, costantemente in evoluzione. Se vogliamo, esiste un fascino dai due volti legato a questo linguaggio; il primo è che si tratta di un prodotto italiano e, con la dovuta oggettività, un po' di campanilismo a volte ci vuole. Inoltre il voler sviluppare da 0 un prodotto di questa portata, senza sponsor ne appoggi è, a parer mio, una sfida che va quantomeno apprezzata e provata. Oggi ci sono molti linguaggi di scripting, alcuni affermati altri in via di consacrazione... ultimamente è in voga la moda di appoggiarsi a piattaforme precotte come .Net (è il caso di Boo e Cobra ma anche IronPython e IronRuby) oppure Java (Groovy, Scala) il che fornisce un boost notevole, questo è fuori discussione, ma è altrettanto vero che si tratta di scelte un po' di comodo, per quanto assolutamente degne e condivisibili. Il sapersi sporcare le mani, mi si passi il termini, anche con la scrittura di librerie e tools di base è un'arte difficile ma anche tanto degna di rispetto e ammirazione. Per il momento l'unico sito affidabile (a parte questo :D) è quello ufficiale nella pagina dei links troverete quel poco che c'è in giro su Web (per ora :-)). E' possibile iscriversi al forum, al quale potrete preferire il newsgroup sy Google su il canale IRC, sul quale ho sempre avuto risposte chiare ed educate ai miei tanti quesiti ancorchè fossero banali, prelevare l'interprete, seguire l'evoluzione del progetto, scaricare la documentazione ufficiale. Quest'ultima, va detto, è di qualità molto superiore a ciò che si trova in giro relativamente ai linguaggi di nuova generazione, a testimonianza di una cura direi insolita che l'autore e i suoi collaboratori riversano in questo progetto. In conclusione si tratta certamente di uno strumento di qualità, con un futuro tutto da costruire ma ricco di promesse. Ambiti applicativi. Falcon è un linguaggio di scripting e come tale si comporta. A detta dell'autore stesso esso può esprimersi al meglio nei seguenti ambiti:
Viceversa laddove, come accennato, le implicazioni computazionali siano pesanti (analisi statitstica di grosse moli di dati) ma anche relativamente alla gestione di grafica 3D Falcon segna un po' il passo. Da parte mia non ho la pretesa di insegnare nulla a nessuno: sto seguendo l'evoluzione di Falcon e ne sto apprendendo l'uso. Il materiale presente è solo il frutto delle mie fatiche in questo senso, fatiche i cui risultati intendo condividere con chi è interessato. Inoltre forse riuscirò ad organizzare un repository di risorse di vario genere su questo linguaggio. Ovviamente gratuitamente ho ricevuto e gratuitamente darò... tutto quanto troverete qui insomma è disponibile for free senza alcun bisogno di richieste, al massimo una mail ringraziamento, se siete in buona. Caratteristiche generali:
Insomma c'è da divertirsi....
|