Introduzione di PAS2JS
PAS2JS lo potremmo definire un compilatore per il linguaggio pascal che non ha però il linguaggio macchina come target di compilazione, ma genera il sorgente in un altro linguaggio: in questo caso genera sorgente JavaScript. Più correttamente lo possiamo quindi definire un transpiler che converte sorgente Pascal in JavaScript (attualmente ECMAScript 5).
I progetti creati con PAS2JS possono girare in un browser ma anche in Node.js; la caratteristica più interessante deriva dal fatto che usandolo con Lazarus, ci permette di sviluppare in stile RAD (Rapid Application Development). Ci sono già dei componenti (per uso professionale, non open source) che sono pronti all’uso e sono quelli sviluppati da TMS Web (che a dire il vero in questo momento hanno un problema proprio con l’IDE di Lazarus), ma stanno nascendo altri progetti open source in questo senso.
Questo transpiler apre tutta una serie di prospettive per lo sviluppo web che prima non erano possibili per gli amanti di Lazarus/FreePascal. Ad esempio è possibile importare librerie esterne JavaScript (jQuery è già stata importata) ed utilizzarle da dentro il pascal. Permette inoltre un utilizzo MVC dove la parte View è totalmente scritta a mano con gli strumenti che si vuole mentre gli elementi del DOM, tramite bind, possono essere controllati dal sorgente pascal (controller) per realizzare i business object.
In questo articolo vedremo come installare PAS2JS nel nostro IDE preferito Lazarus, più avanti seguiranno altri articoli con lo scopo di esplorarne le funzionalità.
Installazione
NB:
pas2js, a partire da Lazarus 2.2.0, è installato di default e quindi potete passare direttamente al paragrafo “Panoramica sull’installazione”.
Da tenere comunque in mente che pas2js è in continua evoluzione e quindi questa procedura di installazione può essere seguita nel caso si intenda aggiornare il transpiler pas2js lla verifica dell’esistenza dei nuovi progettia prescindere dall’aggiornamento di Lazarus e/o FreePascal.
La prima cosa da fare è scaricare il compilatore pas2js.
L’ultima versione è scaricabile da:
https://downloads.freepascal.org/fpc/contrib/pas2js/2.0.6/
e qui è possibile trovare il setup per Linux, MacOs e Windows: potete scaricare e decomprimere dove volete all’interno del vostro file system.
Il passo successivo è quello di installare il package pas2jsdsgn in Lazarus, quindi:
- da menù principale di Lazarus: Pacchetto → Installa/Disinstalla pacchetti
- dalla lista dei pacchetti disponibili, posizionata sulla destra, selezionate per l’installazione il package pas2jsdsgn
- dopo averlo selezionato per l’installazione, cliccate sul bottone [Salva e ricostruisci l’IDE] ed aspettate che Lazarus venga ricompilato
Per assicurarvi che tutto sia andato a buon fine, tornate nella finestra “Installa/Disinstalla pacchetti” e dovreste vedere una situazione simile a quella sotto (package Pas2JSDsgn nella lista di sinistra):
Panoramica sull’installazione
Innanzitutto, l’installazione di PAS2JS ci darà la possibilità di creare 2 nuovi tipi di progetto. Se infatti andate a vedere in Progetto → Nuovo Progetto…, trovate 2 nuovi tipi di Application e cioè:
- Node.js Application
- Web GUI Application (Pas2JS)
Inoltre, verranno installate altre 3 voci nella finestra di dialog: File → Nuovo…
e cioè:
- Web Form (Pas2JS)
- Web Frame (Pas2JS)
- Web Data Module (Pas2JS)
Verrè inoltre aggiunta una nuova pagina per la configurazione del transpiler, la vedremo nel paragrafo immediatamente seguente.
Configurazione
Quest’ultimo step non è obbligatorio per iniziare a sviluppare con PAS2JS ma è ovviamente obbligatorio per poter compilare l’applicazione che si sta sviluppando e per mandare il tutto in esecuzione.
Se dal menù principale di Lazarus scegliete Strumenti → Opzioni…, noterete che sotto il nodo Ambiente c’è una nuova voce che serve appunto per la configurazione di Pas2JS.
Questa pagina di impostazioni serve per informare Lazarus su come trovare gli strumenti necessari per lavorare con Pas2JS:
- il percorso del compilatore pas2js
- simpleserver: un piccolo server HTTP, chiamato compileserver, da lanciare per poter mandare in esecuzione direttamente da Lazarus il progetto che si sta sviluppando
- la porta di ascolto del server HTTP
- dove trovare l’eseguibile del browser che si vuole usare per lanciare l’applicazione sviluppata
- dove trovare l’eseguibile node.js per far girare le applicazioni, appunto, node.js
Per ora l’articolo si chiude qui, spero di aver alimentato la vostra curiosità.
Vorrei segnalare, per chi volesse approfondire, il link: https://wiki.freepascal.org/pas2js e, nel caso ci fosse interesse a conoscere più approfonditamente l’argomento insieme ad altre persone, potete aprire un thread nel forum https://www.lazaruspascal.it/.
Buon lavoro a tutti