L’evoluzione da JavaScript a TypeScript, la scelta degli ingegneri che lavorano alla piattaforma Slope

Logo Javascript e TypeScript

Tutte le applicazioni web sono composte da due macro-componenti:

  1. una parte server (backend), cioè quella che gira su server (locali o remoti che siamo)
  2. una parte client (frontend), cioè quella in esecuzione all’interno del browser (Chrome, Firefox, ecc…)

Con questo articolo vogliamo illustrare i due principali linguaggi di programmazione comunemente utilizzati per la parte frontend, ma nati in periodi e contesti molto differenti:

  • JavaScript (JS), i cui albori  risalgono circa al 1995;
  • TypeScript (TS), nato nel 2012.

Il nostro obiettivo è quello di spiegare le principali differenze tra i due e le motivazioni che hanno spinto gli ingegneri di Slope a riscrivere alcune parti dell’applicazione da JS a TS.

Che cos’è JavaScript?

TypeScript nasce dalla necessità di ottenere un linguaggio di programmazione più strutturato che dia la possibilità di scrivere codice che sia più robusto e facile da mantenere.
Tuttavia i browser web sono ad oggi in grado di comprendere solo 3 “linguaggi”

  • HTML
  • CSS
  • JavaScript

Come potete vedere TypeScript non è fra questi.

L’HTML è un linguaggio di markup (marcatura) che si utilizza per definire la struttura “logica” delle pagine web.

Il CSS permette invece di definire lo stile grafico delle pagine, come ad esempio i colori, i caratteri, le forme e il posizionamento dei vari elementi.

Il JavaScript, infine, permette di definire la logica di interazione della pagina. In altre parole è responsabile di tutte (o quasi) le operazioni dinamiche e/o le animazioni della pagina che avvengono senza che essa si ricarichi.

Quando uno sviluppatore scrive un’applicazione con il linguaggio di programmazione TypeScript è consapevole che questo codice deve essere trasformato (traspilato) in puro JavaScript per fare in modo che questo possa essere eseguito dal browser.

Da un punto di vista strettamente pratico, se si guarda il risultato finale, non c’è differenza tra un programma scritto in TypeScript e uno scritto in JavaScript per l’utente che naviga un sito web o utilizza un’applicazione web based.

Il browser riceverà lo stesso set di istruzioni sia che il codice di partenza sia stato scritto in TypeScript sia che questo sia stato scritto direttamente in JavaScript da parte del programmatore.

Quali vantaggi si hanno nello scegliere il TypeScript?

TypeScript non aggiunge nessuna funzionalità ad un’applicazione rispetto a quelle che si possono implementare in JavaScript. 

Il vero vantaggio riguarda il processo di sviluppo, progettazione e il mantenimento dell’applicazione.

Come accennavamo all’inizio dell’articolo il JavaScript, di per sé, è un linguaggio relativamente semplice (viene definito “di scripting”) che per esempio non ha tipizzazione statica ma soltanto dinamica, ciò significa che, mentre il programmatore scrive il codice JavaScript non utilizza una sintassi che permette di definire i tipi primitivi di una variabile (alcuni esempi di tipi sono: String, int, boolean…) come invece farebbe in un linguaggio fortemente tipizzato, come ad esempio il Java.

Per fare un esempio pratico possiamo considerare una semplice istruzione che consiste nella dichiarazione di una variabile.

In JavaScript:

let name = ‘Alessandro’;

In TypeScript:

let name: string = ‘Alessandro’;

Come si può vedere fin da subito nel caso di JavaScript non vi è alcuna informazione sul tipo della variabile “name”, mentre in TypeScript è presente il tipo della variabile al momento della sua dichiarazione (in questo caso “string”).

Mentre in TypeScript sarà soltanto possibile assegnare stringhe alla variabile “name”, In JavaScript è per esempio possibile assegnare un intero alla variabile che prima conteneva una stringa:

name = 4;

Provando la stessa cosa in TypeScript verrebbe lanciata subito un’eccezione del tipo:

Type 'number' is not assignable to type 'string'.

L’eccezione è molto chiara ed esplicativa, ci dice che il valore 4 non può essere salvato nella variabile nome perché abbiamo specificato che questa può contenere solo stringhe.

Questo è solo un piccolo esempio delle varie funzionalità del TypeScript che mancano invece in JavaScript.

JavaScript a TypeScript: la scelta degli ingegneri che lavorano alla piattaforma Slope

Il codice sopra elencato, sebbene molto banale, è un esempio lampante di come un linguaggio più strutturato possa permettere di sviluppare codice più robusto e più facile da gestire.

Nel nostro caso, per i vari componenti client della piattaforma Slope facciamo largo uso di JavaScript per la parte client. Negli ultimi due anni abbiamo però iniziato ad utilizzare attivamente TypeScript per convertire gradualmente il nostro codice e guadagnare in robustezza.

Il Planning contenuto nel backoffice è un componente che prevede un largo utilizzo di codice JavaScript, poiché l’utente deve poter effettuare molte azioni in maniera fluida e con un’interfaccia chiara e piacevole.

Planning Slope

Nei mesi passati abbiamo lavorando per riprogettare un nuovo planning utilizzando TypeScript e VueJS (un popolare framework per sviluppare applicazioni client), questo ci ha permesso di ottenere una struttura dell’applicativo molto più solida e semplice da manutenere.

Dal punto di vista dell’ingegneria del software la manutenzione del codice non è una cosa da sottovalutare, in un ecosistema software grande come la piattaforma Slope che evolve e che segue l’andamento del mercato è importante costruire applicazioni per cui sia facile e sicuro aggiungere nuove funzionalità nel tempo.

Oltre al “planning” ci sono anche alcuni componenti di Slope che sono stati concepiti nativamente in TypeScript, un esempio è l’applicazione “Food and Beverage” che è stata la prima a venire scritta interamente in questo nuovo e moderno linguaggio.

La complessità di un software cresce con il tempo e con le funzionalità che si aggiungono giorno dopo giorno. Gli ingegneri che lavorano alla piattaforma cambiano o, anche se questi sono gli stessi, ci si tende a dimenticare delle ragioni per cui si è fatta una determinata scelta tecnica. 

Scrivere codice che sia chiaro e ben strutturato permette quindi di risparmiare molto tempo sul lungo periodo e rende il software sempre più robusto e affidabile, creando un vantaggio innegabile sia per noi che per i nostri clienti.

Alessandro Magionami– Twitter @Alemagionami


Se siete curiosi di saperne di più sulla piattaforma Slope o se sei un ingegnere informatico che vuole lavorare con il nostro team di ingegneri mandaci il tuo CV all’indirizzo jobs@slope.it !
We are (always) hiring

Condividi questo articolo
Con il software gestionale Slope hai sempre sotto controllo ogni aspetto del tuo hotel.

Dichiarazione di accessibilità per il sito slope.it

Slope s.r.l. si impegna a rendere il proprio sito web informativo accessibile, conformemente alla legge 9 gennaio 2004, n. 4. La presente dichiarazione di accessibilità si applica al sito web www.slope.it.

Stato di conformità

Questo sito web è pienamente conforme ai requisiti previsti dall’appendice A della norma UNI CEI EN 301549, sulla base di analisi automatiche e revisione interna del codice.

Redazione della dichiarazione di accessibilità

La presente dichiarazione è stata redatta il 19 Giugno 2025.

La dichiarazione è stata effettuata mediante un’autovalutazione effettuata direttamente dal soggetto erogatore attraverso l’utilizzo di strumenti automatici di verifica dell’accessibilità e revisione manuale del codice.

Modalità di invio delle segnalazioni e recapiti del soggetto erogatore

E’ possibile segnalare gli eventuali problemi di accessibilità attraverso il seguente meccanismo di feedback:

Email: info@slope.it
Oggetto: Segnalazione Accessibilità

 

Modalità di invio delle segnalazioni all’AgID

In caso di risposta insoddisfacente o di mancata risposta, nel termine di trenta giorni dalla notifica o alla richiesta, l’interessato può inoltrare una segnalazione utilizzando la modalità indicata nel sito istituzionale di AgID: www.agid.gov.it

Informazioni sul sito web

  1. Data di pubblicazione del sito web: 24 Giugno 2025
  2. Sono stati effettuati test di usabilità: Sì, attraverso strumenti automatici di verifica dell’accessibilità
  3. CMS utilizzato per il sito web: WordPress

Accessibility statement for slope.it website

Slope s.r.l. is committed to making its information website accessible, in accordance with Law 9 January 2004, no. 4. This accessibility statement applies to the website www.slope.it.

Status of compliance

This website is fully compliant with the requirements of Appendix A of the UNI CEI EN 301549 standard, based on automatic analysis and internal review of the code.

Drafting of the accessibility statement

This statement was drafted on 19 June 2025.

The statement was made through a self-assessment carried out directly by the provider through the use of automatic accessibility verification tools and manual review of the code.

How to send reports and contact details of the provider

It is possible to report any accessibility problems through the following feedback mechanism:

Email: info@slope.it
Subject: Accessibility Report

How to send report to AgiD

In the event of an unsatisfactory response or no response, within thirty days of the notification or request, the interested party can send a report using the method indicated on the institutional website of AgID: www.agid.gov.it

Information on the website

  1. Date of publication of the website: 24 June 2025
  2. Were usability tests carried out: Yes, through automatic accessibility verification tools
  3. CMS used for the website: WordPress