Luca Annunziata

Falcon, dallo script all'AI

Fa tutto quello che fanno gli altri, e anche qualcosa di pi¨. Si presenta come un linguaggio di programmazione definitivo. Ed Ŕ pure open source. L'ha creato un programmatore italiano. PI lo ha incontrato

Roma - In circolazione ce ne sono decine, ciascuno con i suoi pro e i suoi contro: e quando un linguaggio di programmazione non basta, quando non ce n'è uno che soddisfa le proprie esigenze non rimane altro che farne uno ex novo. Tra coloro che hanno intrapreso questa strada anche l'italiano Giancarlo Niccolai, che si autodefinisce professionista dell'IT: invece di dover rinunciare alle prestazioni o piegarsi a dei compromessi si è rimboccato le maniche ed è ripartito quasi da zero. E ha creato Falcon, che in poco tempo è già riuscito a farsi ammettere tra i linguaggi ufficialmente supportati da Kross (il framework di meta-scripting di KDE4).

Il sito di Falcon, tutto scritto con il nuovo linguaggio di programmazionePerché lanciarsi in una sfida del genere? "Il punto è che per lavoro scrivo software fortemente orientato al multithreading - spiega Niccolai a Punto Informatico - Si tratta di applicazioni fatte per girare su macchine con almeno 8 o 16 processori, che gestiscono decine di istanze in concorrenza, e avevo bisogno di riuscire a controllare e configurarle ad un livello elevato".

La scelta più ovvia, prosegue, era quella di tentare di adattare un linguaggio già pronto, come il Python o il LUA: "Sono tutte soluzioni valide, utilizzate spesso anche dalla industria dei videogiochi per configurare l'intelligenza artificiale del bit - racconta - Ma sono tutte pensate con un taglio leggermente diverso rispetto a quello di cui avevo bisogno: piuttosto che studiare qualcosa di non mio, con il rischio di non riuscire ad adattarlo e non ottenere le performance desiderate, ho deciso di costruire un nuovo linguaggio che mi garantisse lo scambio di informazioni ad alte prestazioni".
Strada facendo, le cose sono andate meglio del previsto: l'approccio seguito garantiva prestazioni interessanti, sia a livello di applicazione che di interazione con il sistema operativo. Merito di una macchina virtuale molto efficiente, tra le migliori in circolazione nonostante si tratti ancora di una versione preliminare non ottimizzata ("Ci concentreremo su questo aspetto nella prossima release 0.9" chiarisce Niccolai), ma anche grazie ad una strada poco battuta per quanto attiene la pesantezza delle istruzioni: "Ogni istruzione della VM Falcon è complessa: con una sola istruzione è possibile fare più cose rispetto a quanto si fa con altri linguaggi".

Questo si tramuta in un vantaggio operativo, poiché diviene possibile gestire migliaia di script al secondo senza sovraccaricare l'unità di elaborazione: "Su macchine abbastanza potenti, e non stiamo parlando ancora di server ad altissime prestazioni, 1000 o 2000 script consumano al massimo tra il 2 e il 4 per cento della CPU". La differenza la fa la flessibilità del paradigma di programmazione: nessun tentennamento, nessuna preferenza per il linguaggio funzionale o quello orientato agli oggetti. Falcon è in grado di supportare cinque diversi modi di programmare.

"Volevo un orientamento agli oggetti serio, ma non volevo confinarmi in questo settore - racconta Niccolai - Volevo qualcosa di elegante e performante". Per questo in Falcon si può programmare secondo un modello procedurale puro ("senza vergogna!"), ad oggetti o funzionale: e poi ci sono altri due modelli, più moderni e recenti, che possono offrire nuovi spunti e nuove possibilità agli sviluppatori. ╚ il caso del modello orientato ai messaggi: "Significa dichiarare la propria volontà di ricevere questi messaggi e avere la possibilità di inviarli al motore che li interpreta: significa effettuare delle chiamate senza sapere chi risponderà". Se c'è una funzione che è in grado di fornire le informazioni richieste, sarà lei stessa a farsi avanti per fornire i suoi servigi.

"I primi 3 modelli da soli bastano a sviluppare un programma completo: ma ci sono situazioni - spiega Niccolai - dove è meglio avere la possibilità di scegliere, perché in questo modo cresce esponenzialmente il numero di cose che è possibile realizzare". All'interno dello stesso codice i diversi paradigmi possono coesistere liberamente, e anche se non sfruttati appieno non influiscono sull'efficienza del programma.
73 Commenti alla Notizia Falcon, dallo script all'AI
Ordina
CONTINUA A LEGGERE I COMMENTI
1 | 2 | 3 | 4 | Successiva
(pagina 1/4 - 16 discussioni)