00:00:08 I linguaggi specifici del dominio (DSL) e la loro diversità.
00:01:36 Esempi di DSL: AMPL per la programmazione matematica e HTML per le pagine web.
00:03:00 I vantaggi dell’utilizzo di DSL rispetto ai linguaggi di programmazione generici per compiti specifici.
00:05:22 L’uso di un DSL da parte di Lokad per l’ottimizzazione della supply chain in diverse situazioni.
00:07:23 I vantaggi dell’utilizzo di un DSL per una configurazione più rapida e affidabile.
00:09:35 Limitazioni di un DSL e i loro vantaggi nell’ottimizzazione della supply chain.
00:12:55 Implicazioni sulla sicurezza dell’utilizzo di un DSL rispetto ai linguaggi di programmazione generici.
00:13:01 Il processo di sviluppo di un DSL che richiede molto tempo.
00:14:49 Consigli per le startup che stanno considerando lo sviluppo del proprio DSL.
00:16:01 Sottosfruttamento dei DSL e soluzioni tradizionali che portano a prodotti insoddisfacenti.
00:17:26 Il dilemma dell’utilizzo dei DSL rispetto ai linguaggi di programmazione mainstream e i loro risultati.
00:18:32 SQL e HTML come esempi di successo di linguaggi specifici del dominio.
00:19:46 Potenziale dei DSL in vari settori e il loro potere trasformativo.
00:21:19 Conclusioni e potenziali sviluppi futuri nell’uso dei DSL.

Riassunto

In questa intervista, Kieran Chandler discute dei linguaggi specifici del dominio (DSL) con Joannes Vermorel, fondatore dell’azienda di ottimizzazione della supply chain Lokad. I DSL sono linguaggi di programmazione progettati per compiti specifici, a differenza dei linguaggi di programmazione generici come Java o Python. Vermorel spiega che i DSL vengono utilizzati in settori come l’automotive, dove garantiscono un’operazione priva di errori per componenti critici come i sistemi antibloccaggio dei freni. Discute anche dello sviluppo del proprio DSL, Envision, da parte di Lokad per ottimizzare la supply chain. Vermorel evidenzia i vantaggi dei DSL, come calcoli efficienti e personalizzazione per domini specifici, riconoscendo al contempo le sfide e la natura che richiede molto tempo per svilupparli.

Riassunto Esteso

In questa intervista, Kieran Chandler, il conduttore, discute dei linguaggi specifici del dominio (DSL) con Joannes Vermorel, fondatore di Lokad, un’azienda software specializzata nell’ottimizzazione della supply chain.

I DSL sono una specifica classe di linguaggi di programmazione progettati per risolvere tipi di problemi molto specifici, a differenza dei linguaggi di programmazione generici come Java o Python, che sono destinati a coprire una gamma più ampia di compiti. I linguaggi di programmazione generici sono progettati per fornire un modo comodo, produttivo ed efficiente per fare tutto ciò che può essere fatto con i computer, mentre i DSL si concentrano sulla risoluzione di problemi specifici. Alcuni dei primi linguaggi specifici del dominio, come AMPL, sono stati creati per la programmazione matematica e altri compiti molto specifici.

I DSL vengono utilizzati in applicazioni reali per implementare componenti critici in vari settori. Ad esempio, nel settore automobilistico, un DSL potrebbe essere utilizzato per sviluppare il software che controlla il sistema antibloccaggio dei freni (ABS) di un’auto. L’obiettivo è creare un sistema quasi privo di errori, poiché un guasto in questo componente potrebbe portare a una perdita di capacità di frenata. Al contrario, i linguaggi di programmazione mainstream potrebbero non garantire lo stesso livello di certezza nell’operazione priva di errori.

Un altro esempio di DSL è HTML, che è progettato per creare pagine web. HTML è più accessibile e più semplice dei linguaggi di programmazione generici, il che lo rende adatto per utenti non tecnici o persino studenti delle scuole elementari. Tuttavia, questa semplicità comporta limitazioni, poiché HTML è vincolato nelle sue capacità, consentendo agli utenti di controllare solo il layout di una pagina web anziché consentire compiti più complessi come il controllo dei robot o lo sviluppo di intelligenza artificiale.

Quando gli viene chiesto perché vengono utilizzati i DSL invece di linguaggi di programmazione mainstream più espressivi, Vermorel spiega che utilizzare un linguaggio di programmazione generico per compiti più adatti a un DSL complicherebbe eccessivamente il processo. Ad esempio, utilizzare un linguaggio di programmazione generico per la progettazione di pagine web significherebbe controllare ogni singolo pixel sullo schermo, invece di utilizzare semplici elementi di markup language, come specificare il titolo, la dimensione del carattere o la giustificazione del testo, come nel caso di HTML.

Vermorel spiega che i problemi della supply chain sono diversi, e nessuna azienda è esattamente uguale all’altra. Le aziende hanno paesaggi IT diversi, paesaggi applicativi diversi e varie combinazioni di ERP, WMS e altri sistemi. Questa diversità crea sfide per le soluzioni software che cercano di affrontare l’ottimizzazione della supply chain attraverso un approccio unico. I framework tradizionali che si basano sulla configurazione spesso richiedono una personalizzazione e una configurazione estese per ogni cliente, il che è lungo e costoso.

Riconoscendo che ogni situazione del cliente richiede un software diverso, Lokad ha cercato di sviluppare un processo più efficiente e affidabile. Hanno deciso di creare il proprio DSL, Envision, per semplificare il processo di configurazione e renderlo più rapido e produttivo. Vermorel mette a confronto l’uso di Envision con linguaggi di programmazione mainstream come C#, F# e TypeScript. Sebbene stiano già utilizzando ampiamente questi linguaggi di programmazione generici, si è scoperto che affrontare le richieste dei clienti con essi era lento e costoso. Envision è stato progettato per essere più agile e più adatto alle esigenze uniche dell’ottimizzazione della supply chain.

Vermorel sottolinea che una delle ragioni per cui molte soluzioni software per la supply chain diventano ingombranti è perché cercano di adattarsi a ogni possibile funzionalità e caso d’uso. Lokad ha scelto un approccio diverso, sviluppando un nucleo DSL fortemente focalizzato con il prodotto software stesso che è Envision e le sue capacità. Ciò consente loro di creare implementazioni personalizzate per ogni cliente utilizzando Envision, mentre il compilatore e l’ambiente per Envision sono implementati in C#, F# e TypeScript.

Vermorel spiega che l’utilizzo di un DSL può introdurre limitazioni, ma ciò può essere vantaggioso in determinate situazioni. Ad esempio, quando si ottimizza una grande supply chain con un set di dati considerevole, può essere difficile garantire che i calcoli verranno completati entro un determinato periodo di tempo utilizzando linguaggi di programmazione generici. Un DSL con limitazioni adeguate può garantire che i calcoli verranno completati in tempo, evitando interruzioni nella supply chain.

Tuttavia, lo sviluppo di un DSL può richiedere molto tempo. Vermorel condivide che alla sua azienda sono serviti quasi dieci anni per sviluppare il proprio DSL. Questo lungo tempo di sviluppo può essere in contrasto con la natura frenetica delle startup. La sfida principale nello sviluppo di un DSL è ripensare i problemi fondamentali da risolvere e definire le primitive logiche necessarie per risolverli. Ciò comporta la progettazione della sintassi e degli operatori del linguaggio di programmazione in modo che siano allineati con il problema in questione.

Nonostante le sfide, Vermorel ritiene che il percorso dei DSL sia stato poco sfruttato e potrebbe essere vantaggioso per le startup. Lo sviluppo di un DSL non sostituisce la necessità di ingegneri del software o di linguaggi di programmazione mainstream; anzi, potrebbe richiedere ancora più ingegneri del software. Tuttavia, concentrandosi su un dominio di problemi specifico, un DSL può offrire vantaggi in termini di efficienza, sicurezza e ottimizzazione.

Vermorel inizia discutendo delle limitazioni del software aziendale tradizionale, che spesso diventa ingombrante e difficile da gestire. Quindi introduce il concetto di DSL come possibile soluzione a questo problema. I DSL sono linguaggi di programmazione adattati a domini o settori specifici, offrendo capacità e ottimizzazioni specializzate.

Vermorel fa notare che molti prodotti software presenti sul mercato oggi sono insoddisfacenti e tendono a diventare simili a software aziendali di grandi dimensioni, il che non è l’ideale. Fornisce l’esempio dei sistemi di gestione degli ordini multicanale (MOMS), che sono diventati simili ai sistemi di pianificazione delle risorse aziendali (ERP) con centinaia di schermate e migliaia di opzioni. L’obiettivo iniziale di differenziarsi dagli ERP è stato perso e il prodotto risultante non è molto migliore dell’ERP originale.

Sostiene che l’utilizzo di DSL avrebbe potuto portare a un prodotto più snello e potente nel caso di MOMS. Tuttavia, l’adozione di un DSL comporta le proprie sfide, come anni di mal di testa e vincoli. D’altra parte, l’utilizzo di un linguaggio di programmazione più diffuso potrebbe consentire una crescita più rapida ma potrebbe portare a un prodotto ingestibile.

Un esempio di successo di un DSL è SQL (Structured Query Language), un linguaggio di programmazione utilizzato per la gestione di database relazionali. Vermorel osserva che quando un DSL diventa molto popolare, spesso le persone dimenticano che è un DSL in primo luogo. Crede che ci sia un potenziale significativo per i DSL in vari settori, incluso l’ottimizzazione della supply chain con Lokad.

Chandler chiede informazioni su altri settori in cui i DSL potrebbero essere vantaggiosi. Vermorel suggerisce il marketing come una possibilità, dove le aziende spesso lottano con soluzioni software complesse che non sono abbastanza potenti per soddisfare le loro esigenze. Le risorse umane sono un altro ambito in cui i DSL potrebbero offrire una soluzione su misura, poiché riflettono la cultura unica di ogni azienda, rendendo difficile l’adozione di approcci universali.

Trascrizione completa

Kieran Chandler: Oggi scopriremo un po’ di più su come vengono sviluppati e capiremo anche perché possono essere vantaggiosi rispetto a alcuni dei linguaggi di programmazione più diffusi. Quindi Joannes, forse potresti iniziare dicendoci un po’ di più su cosa sono effettivamente i DSL e come funzionano.

Joannes Vermorel: I DSL sono una specifica classe di linguaggi di programmazione che, a differenza dei linguaggi di programmazione generici come Java, Python e C++, non sono progettati per essere una soluzione per tutto ciò che è possibile programmare su un computer. I linguaggi di programmazione mainstream mirano a offrirti il modo più conveniente, produttivo ed efficiente per fare tutto ciò che puoi fare con i computer o molti computer se lo desideri. Ma i linguaggi di programmazione specifici per un dominio sono qualcosa di completamente diverso. È programmazione, quindi comporta del codice ed è formale e astratto, ma è progettato per risolvere tipi di problemi molto specifici. Ad esempio, storicamente, i primi linguaggi di programmazione specifici per un dominio riguardavano principalmente cose come AMPL, un linguaggio di programmazione matematica progettato per svolgere compiti molto specifici.

Kieran Chandler: Quindi, per quali tipi di problemi si utilizzerebbe un linguaggio specifico per un dominio e a cosa servono nel mondo reale?

Joannes Vermorel: Nel mondo reale, un’applicazione storica sarebbe quella di implementare componenti critiche. Ad esempio, si desidera avere un software che guida il sistema ABS della propria auto, il sistema di frenata antibloccaggio, e si desidera avere la certezza che questa cosa non si blocchi mai perché se si blocca, l’auto improvvisamente non ha più la capacità di frenare. Quindi, è una situazione abbastanza grave e si potrebbe pensare di cercare di non avere qualcosa di troppo buggato qui. Questo è sul lato embedded. Poi ci sono problemi come HTML per le pagine web, dove si tratta di un linguaggio di programmazione, ma si desidera rendere questa cosa più accessibile. C’è una buona ragione per cui si può imparare HTML a scuola primaria; è perché è molto semplice. Le basi sono letteralmente molto accessibili anche alle persone non tecniche. Ma il trade-off è che HTML ti consente di controllare il layout di una pagina web; non ti consente di controllare un robot o fare intelligenza artificiale.

Kieran Chandler: Quindi, sono molto semplici e più limitati. Voglio dire, perché non si utilizzano linguaggi di programmazione più diffusi, che hanno maggiore espressività per questi compiti perché sono in grado di farlo?

Joannes Vermorel: Se si pensa a cosa significherebbe per le pagine web HTML, ad esempio, invece di avere solo un linguaggio di markup in cui si può dire “titolo”, “grandezza del carattere grande” e “corpo del testo”, “voglio che il testo sia giustificato” e così via - controlli semplici - si dovrebbe pensare: “Oh, controllerò ogni singolo pixel sul mio schermo”, e questo non è pratico.

Kieran Chandler: … sarebbe ciò che si potrebbe ottenere da un approccio a basso livello, e se si vuole essere ancora più a basso livello, si dice, beh, controllerò direttamente le mie schede grafiche per avere prestazioni super elevate, e questo è forse ciò che si farebbe se si stesse effettivamente costruendo un motore 3D per videogiochi. Ma se si vuole fare qualcosa di semplice, come una pagina web, ci vorrebbe un tempo infinito per farlo in quel modo. Attraverso i videogiochi 3D, è molto più semplice e diretto passare attraverso ID e simili come HTML. Ok, ed è un argomento con cui siamo molto familiari in Lokad, dato che abbiamo generato il nostro DSL. Quindi perché è stato qualcosa di così interessante per noi come azienda di supply chain?

Joannes Vermorel: La cosa che è un po’ frustrante con la supply chain è che i problemi sono così diversi. Letteralmente non ci sono due aziende uguali, voglio dire, non esattamente uguali. Non hanno lo stesso panorama applicativo. Alcune aziende hanno un ERP; molte ne hanno due per cattive ragioni. Hanno un WMS; hanno più WMS. Hanno 10 diversi ERP perché operano in dieci diversi paesi con diversi paesaggi IT. Hanno la piattaforma di e-commerce che è arrivata dopo, che è una cosa separata. Hanno acceleratori extra. Quindi il problema era che volevamo fare ottimizzazione della supply chain e mi sono reso conto durante gli anni precedenti che letteralmente l’approccio classico di avere un framework che si potesse configurare semplicemente non funzionava. Voglio dire, le situazioni erano così diverse che finivamo con una enorme quantità di personalizzazione e configurazione per ogni singolo cliente. E letteralmente, quando si inizia a pensare di avere un software che è completamente pronto all’uso ma che richiede solo sei mesi per fare qualche configurazione con il software, è davvero configurazione? Non è come reinventare un nuovo pezzo di software? La realtà è che sì, lo è. E quindi abbiamo deciso di portare questo approccio al passo logico successivo, che è, ok, se ogni volta che ci troviamo di fronte a una situazione, richiede un pezzo di software diverso, che ne dite di avere qualcosa che supporti questo processo per renderlo molto produttivo, molto veloce, molto affidabile? E in effetti, è da qui che è nata l’idea di avere un DSL, un linguaggio specifico del dominio.

Kieran Chandler: Quindi, se hai usato un linguaggio di programmazione più comune, quella configurazione richiederebbe molto più tempo, mentre avere quel tipo di ambiente limitato significa che puoi fare le cose molto più velocemente.

Joannes Vermorel: È interessante. Voglio dire, in Lokad, stiamo usando linguaggi di programmazione generici. Fin dall’inizio abbiamo usato C-sharp, C-sharp.NET, che è fondamentalmente lo stack di programmazione di Microsoft, e successivamente abbiamo aggiunto F-sharp e TypeScript per vari scopi. Quindi, stiamo già usando ampiamente linguaggi di programmazione generici e sono molto familiare con ciò che si può fare con questi linguaggi. Ma ci siamo resi conto durante i primi anni di Lokad che affrontare le richieste dei clienti con questi tipi di linguaggi di programmazione era incredibilmente lento e costoso. Quindi, avevamo bisogno di qualcosa di migliore, e non era il problema che non eravamo familiari con quei linguaggi di programmazione. Ci siamo resi conto che passare attraverso di loro per ogni singola situazione del cliente era leggermente un incubo. E a proposito, questa è anche una delle ragioni per cui tutte quelle soluzioni software per la supply chain finiscono come enormi mostri di software. È perché cercano di mettere nel loro prodotto software tutto, e alla fine si finisce con un mostro di software. Quindi, abbiamo deciso di dire, ok, e se il prodotto software fosse

Kieran Chandler: E se il prodotto software fosse solo un DSL e le sue capacità, quindi qualcosa che sarebbe come un nucleo super stretto, e poi quando andiamo da un cliente, creeremo un’implementazione personalizzata implementata non in C-sharp ma in Envision, il nostro DSL? Ma il compilatore e l’ambiente per Envision, in realtà non sono implementati in Envision, ma in C-sharp, F-sharp e TypeScript.

Joannes Vermorel: Ok.

Kieran Chandler: Hai menzionato che ovviamente le supply chain sono incredibilmente diverse e ogni cliente è incredibilmente diverso. L’uso di un DSL introduce qualche tipo di limitazione? Ti impedisce di implementare effettivamente alcune cose?

Joannes Vermorel: Assolutamente, ed è proprio questo il punto, per quanto possa sembrare sorprendente. Vedi, ad esempio, un problema molto basilare con cui ti trovi di fronte è quando hai una supply chain ampia che vuoi ottimizzare e ti ritrovi con un dataset piuttosto consistente. Diciamo che hai un terabyte di dati. Non è assolutamente enorme; puoi andare in un supermercato e comprare un hard disk da 1 terabyte per circa 100 euro, il che è piuttosto economico. Quindi, è una grande quantità di dati, ma non gigantesca. Ora il problema è che il tuo dataset verrà aggiornato ogni giorno e tu vorresti, ad esempio, fare un passaggio su questo dataset per prendere decisioni intelligenti sulla supply chain, come decisioni di rifornimento e decisioni di prezzo.

Ora, il problema è che se hai un linguaggio di programmazione generico, come fai a garantire che il calcolo richiederà solo, diciamo, meno di 60 minuti? È molto difficile. Appena hai cicli o costrutti arbitrari, diventa estremamente difficile dimostrare che la tua esecuzione rientrerà in un determinato intervallo di tempo, il che può essere un problema se il calcolo che stai facendo per prendere determinate decisioni, come decisioni di rifornimento, deve rientrare in una sequenza stretta di esecuzione all’interno dei tuoi sistemi ERP. Hai davvero bisogno che questa esecuzione venga completata in 60 minuti; altrimenti, interrompi l’intera supply chain perché il calcolo richiede troppo tempo.

Quindi questo è tipicamente il tipo di situazione in cui i linguaggi di programmazione generici non possono darti queste garanzie perché, appunto, puoi fare tutto con loro, quindi è molto difficile ottenere qualsiasi tipo di garanzia da quei linguaggi di programmazione. Ma con un DSL che ha limitazioni adeguate, c’è un altro aspetto al momento: il design. È effettivamente molto difficile offrire un ambiente di programmazione completamente sicuro con un linguaggio di programmazione generico. Con linguaggi di programmazione generici come Java, Python o C-sharp, ti apri a intere classi di vulnerabilità di sicurezza. Se puoi fare qualsiasi cosa con un computer, puoi fare cose relativamente pericolose dal punto di vista della sicurezza informatica.

Di nuovo, avere un DSL significa che ci sono intere classi di cose che non sono nemmeno accessibili a te, come giocare con il sistema operativo, e quindi rimuove intere classi di problemi che non sono nemmeno di tua competenza. Tutto ciò che ti interessa è l’ottimizzazione della supply chain.

Kieran Chandler: Sì, ed è di questo che abbiamo parlato nel nostro episodio sulla sicurezza. Guardiamo forse lo sviluppo di un DSL. Voglio dire, quanto tempo ci vuole effettivamente per sviluppare uno di questi linguaggi, nella tua posizione, quanto tempo ci è voluto per sviluppare Envision?

Joannes Vermorel: È una buona domanda. Letteralmente ci vuole un decennio, il che è un po’ folle. Quindi quando sei una startup, sai, dici muoviti velocemente e rompi le cose, abbiamo un prodotto minimamente funzionante che puoi vendere entro sei mesi, e poi inizi a creare il tuo DSL, ed è letteralmente un processo di

Kieran Chandler: Certamente, uno sforzo di molti anni e la sfida principale è che devi davvero ripensare in modo fondamentale ai problemi che stai risolvendo. Quali sono gli aspetti fondamentali dei problemi e quali dovrebbero essere le primitive logiche che devono essere accessibili alla tua mente per risolvere quei problemi con i computer? È ancora peggio che inventare nuove parole; è inventare primitive logiche per collegare concetti in modo che tu possa, alla fine, inquadrare intere classi di soluzioni in questo linguaggio per ottenere soluzioni generate in modo completamente automatizzato dai computer. Ma stai letteralmente pensando al linguaggio di programmazione stesso, alla sua sintassi, al tipo di operatori che hai, il che è… e vuoi davvero che queste cose siano completamente allineate con il problema che stai cercando di risolvere. Quindi, se fossi una startup che inizia ora, consiglieresti di intraprendere questa strada e sviluppare questo linguaggio, che può richiedere un tempo incredibilmente lungo, abbastanza difficile da fare, o consiglieresti di rimanere fermi e lavorare con linguaggi di programmazione più diffusi?

Joannes Vermorel: Prima di tutto, creare il tuo DSL non è qualcosa che userai come sostituto dei linguaggi di programmazione più diffusi. Se sei un’azienda di software e vuoi creare questo nuovo linguaggio come modo per risolvere una classe di problemi, come facciamo per la supply chain, avrai bisogno di un compilatore e di un runtime per eseguire questi programmi scritti in questi linguaggi di programmazione. E questo compilatore sarà scritto con un linguaggio di programmazione regolare. Quindi non è perché segui la strada del DSL che non avrai bisogno di ingegneri del software; anzi, ne avrai bisogno ancora di più.

Considerando la domanda per le startup, penso che sia interessante perché la strada del DSL è così ambiziosa che è stata significativamente sotto-sfruttata. Vedo molte aziende di software e startup che cercano di affrontare i problemi nel modo classico perché hanno fretta, e alla fine si ritrovano con prodotti leggermente insoddisfacenti. Quando guardo il tipo di prodotti che stanno consegnando al mercato, dico che è interessante, ma stanno andando dritti verso diventare un grande pezzo di software enterprise, che non è esattamente dove si vuole andare.

Un esempio sarebbe quello che chiamo “sistemi di gestione degli ordini multi-canale”. C’è una serie di prodotti software che hanno seguito questa strada, e quelli più grandi ora assomigliano molto a ERP a sé stanti, con letteralmente centinaia di schermate, migliaia di opzioni, e ci vogliono mesi per configurarli correttamente. Alla fine non finiscono in un posto molto migliore degli ERP che erano il punto di partenza per differenziarsi e avere prodotti più snelli, più veloci da implementare, e così via. Dieci anni dopo, ti ritrovi con qualcosa che assomiglia incredibilmente a un ERP, e forse questo è tipicamente il tipo di problema in cui l’uso di un DSL avrebbe fatto la differenza.

Kieran Chandler: Stiamo discutendo delle differenze tra l’uso di un linguaggio specifico del dominio (DSL) e un linguaggio di programmazione più diffuso per lo sviluppo software. Con un DSL, potresti affrontare anni di mal di testa ma alla fine ottenere una soluzione potente e snella. D’altra parte, l’uso di un linguaggio di programmazione più diffuso potrebbe portare a una crescita più rapida ma potrebbe risultare in un sistema ingestibile.

Joannes Vermorel: È interessante notare che uno dei primi DSL di successo è stato SQL, il linguaggio di interrogazione per i database. Oggi, ogni fornitore di database vende essenzialmente un DSL, poiché l’unico modo per interagire con un database è attraverso query scritte in un linguaggio specifico del dominio. Quando un DSL diventa incredibilmente di successo, le persone dimenticano che è anche un DSL. Ad esempio, HTML è diventato così diffuso che le persone non lo considerano un DSL. Credo che ci sia molto potenziale per i DSL in vari settori, come l’ottimizzazione della supply chain con Lokad.

Kieran Chandler: Oltre all’industria della supply chain, quali altri settori pensi potrebbero beneficiare dell’uso di un DSL?

Joannes Vermorel: Il marketing è un settore che mi viene in mente. Vedo molte aziende alle prese con soluzioni software complesse che non sono abbastanza potenti. Finiscono per fare molto lavoro con Excel, che è difficile da mantenere e passare in produzione. Le risorse umane sono un’altra area in cui i DSL potrebbero essere utili. La gestione delle risorse umane riflette spesso la cultura di un’azienda, rendendo difficile avere una soluzione unica per tutti. Credo che i DSL abbiano il potenziale per avere un impatto significativo in praticamente ogni settore, ma il modo in cui vengono implementati può variare notevolmente da un problema all’altro.

Kieran Chandler: Concludiamo qui. Grazie per il tuo tempo oggi, Joannes.

Joannes Vermorel: Prego.

Kieran Chandler: Questo è tutto per oggi. Grazie per averci seguito e ci vediamo alla prossima volta. Ciao per ora.