Più di dieci anni fa sono state introdotte delle piattaforme che permettono di creare applicazioni anche abbastanza complesse pur non avendo particolari conoscenze tecniche. Nello specifico si possono distinguere due macro famiglie:
- Low-Code Development Platforms (LCDP)
- No-Code Development Platforms (NCDP)
Entrambe le tipologie di piattaforma sono caratterizzate in genere da un’interfaccia visuale che permette di creare un’applicazione utilizzando elementi già pronti da collegare opportunamente però mentre nel primo caso si può aggiungere ulteriore codice sorgente nel secondo caso non è possibile. I precedenti IDE (integrated development environment) sono quindi sostituiti dai VDE (visual development environment) ma questo non deve indurci a pensare che si possa implementare solamente il presentation layer: in realtà è possibile sviluppare qualsiasi tipo di applicazione comprese applicazioni di backend dove il presentation layer non è affatto presente.
Proviamo ad analizzare i punti di forza e debolezza dell’adozione di una di queste piattaforme. Il primo aspetto interessante è legato allo sforzo di realizzazione dell’applicazione sicuramente inferiore rispetto allo sviluppo di un’applicazione da zero. A questo si affianca una maggiore qualità e affidabilità poiché l’aspettativa è quella di riscontrare un numero sensibilmente inferiore di bug e di soddisfare da subito i requisiti di sicurezza, normativa vigente e via dicendo. Un ulteriore punto a favore è il supporto multi-device che diventa ancora più interessante se si considera lo sforzo normalmente necessario all’aggiornamento dell’applicazione in seguito a nuove versioni di sistema operativo. Di contro il mercato non è ancora maturo e questo è testimoniato dal fatto che in pochi conoscono e utilizzano questa tipologia di piattaforma anche se gli analisti prevedono una loro sensibile crescita nei prossimi anni. Altro punto da non sottovalutare è il fatto di legarsi a una piattaforma in maniera importante: se da una parte l’utilizzo di questa piattaforma ci permette di aggiornare la nostra applicazione in pochi secondi anche a seguito di una nuova versione di sistema operativo dall’altra parte ci vincola a un fornitore poiché ad oggi non è possibile migrare una soluzione da una piattaforma ad un’altra. Un ultimo punto potrebbe essere legato ad un’esigenza veramente spinta di personalizzazione dell’applicazione dove uno sviluppo classico a partire da zero non presenta alcuna limitazione al contrario di queste piattaforme dove esistono spesso dei limiti. Di seguito una sintesi:
Punti di forza | Punti di debolezza |
---|---|
Tempi e effort di sviluppo | Mercato non ancora maturo |
Qualità ed affidabilità | Vincolo forte con piattaforma e fornitore |
Supporto nativo multi-device | Limitazioni nella personalizzazione |
Velocità di aggiornamento |
Oggi ci sono opinioni differenti su queste piattaforme e ovviamente non esistono regole universali per la loro adozione. La scelta dipende fortemente dal contesto specifico e da tutti i suoi fattori come ad esempio gli utilizzatori dell’applicazione, l’esigenza di personalizzazione, i tempi di sviluppo e via dicendo. Un caso tipico in cui potrebbe essere interessante l’adozione è quello delle applicazioni ad uso interno all’azienda per le quali normalmente si ha un budget limitato e aspettative inferiori rispetto a applicazioni commerciali.
Essendo questo mercato in continua evoluzione va osservato con interesse e curiosità: magari in un futuro non troppo lontano lo sviluppo di applicazioni come lo conosciamo oggi sparisca dando molto più spazio a esperti di dominio come sta succedendo nel campo dell’intelligenza artificiale.