Opa (linguaggio di programmazione)
Opa è un linguaggio di programmazione open source per lo sviluppo di applicazioni web scalabili. Può essere usato sia per programmazione lato client e lato server, dove programmi completi scritti in Opa sono compilati in Node.js sul server e JavaScript sul client, con un compilatore che rende automatiche tutte le comunicazioni tra i due.[1][2] Opa implementa una tipizzazione forte e statica, utile nella protezione conto attacchi informatici come SQL injection e cross-site scripting.[3] Il linguaggio è stato presentato ufficialmente per la prima volta alla conferenza OWASP nel 2010,[4] e il codice sorgente rilasciato su GitHub[5] nel giugno 2011, sotto la GNU Affero General Public License. Successivamente, la licenza è stata sostituita con la licenza MIT per la parte del framework (librerie) e la AGPL per il compilatore cosicché le applicazioni scritte in Opa possono essere rilasciate sotto qualunque licenza, che essa sia proprietaria o open source. Design e funzionalitàOpa è formata da un server web, un database ed un motore di esecuzione distribuito.[6] Il codice scritto in Opa viene compilato in JavaScript utilizzando Node.js lato server e in JavaScript utilizzando jQuery per garantire una compatibilità cross-browser sul lato client.[7] Il vantaggio di questo approccio rispetto ad altri come le piattaforme Rich Internet Application (RIA) è che gli utenti non devono installare un plugin nel loro browser.[8] Opa condivide l'ideale dei framework per applicazioni web, ma utilizza un approccio alternativo.[9] I suoi designer affermano che ciò aiuta Opa ad evitare molti problemi di sicurezza, come gli attacchi SQL injections o cross-site scripting (XSS).[10] Il linguaggio di base è di tipo funzionale e ha un sistema dei tipi statico con l'interferenza dei tipi. Opa fornisce inoltre le sessioni che incapsulano uno stato imperativo e comunicano utilizzando una comunicazione a scambio di messaggi, simile ai processi Erlang. Opa fornisce molte strutture e funzioni comuni nello sviluppo web come oggetti first-class, per esempio l'HTML[11] e i suoi parser, basati sulle Parsing Expression Grammars.[12] A causa di questa adesione tra il linguaggio ed i concetti legati al web, Opa non è concepito per la creazioni di applicazioni non web (e quindi applicazioni desktop).[13] La versione stabile 0.9.0 del febbraio 2012 ha introdotto una tecnologia di mappatura per il database non relazionale orientato ai documenti MongoDB, simile alla object-relational mapping.[14][15][16] La versione 1.1.0 rilasciata nel febbraio 2013 aggiunge inoltre il supporto per PostgreSQL, spianando la strada per il supporto a diversi database SQL. EsempiHello worldIl tradizionale programma Hello World, che produce un web server che serve una pagina statica con "Hello, web!" come contenuto, può essere in scritto in Opa così:[17] Server.start(Server.http,
{
title: "Hello",
page: function() {
<h1>Hello, web!</h1>
}
}
)
Può quindi essere compilato in un file codice eseguibile JS con: $ opa hello_web.opa
L'esecuzione del file risultato JS lancia l'applicazione web: $ ./hello_web.js
Linguaggi correlati
Note
Bibliografia
Collegamenti esterni
Information related to Opa (linguaggio di programmazione) |