L’innovazione è una macchina spietata: si va avanti solo se si resta al passo e ci si adegua, mentre chi rimane ancorato a vecchi schemi è destinato a soccombere.
Se la capacità di adattarsi, ed anzi anticipare il futuro, è fondamentale in ogni aspetto della vita, lo è ancor di più nell’ambito della programmazione, che dalla sua nascita ad oggi ha subito una storia travagliata: dalle applicazioni stand-alone, alla struttura client-server, dall’architettura service oriented (che ha visto il predominio di Microsoft) a quella REST e ora ai container.
In questo scenario fare un salto nel cloud per i progettisti è diventato fondamentale perché sono molteplici i vantaggi che se ne possono trarre.
Il Cloud moderno, che non è più solo infrastruttura, ma anche servizi, offre una serie di benefici che permettono la creazione di software più potenti perché la nuvola mette a disposizione computazione, calcolo numerico complesso, storage ad alta disponibilità e scalabilità. Il Cloud regala quindi una serie di servizi che avvantaggiano i progettisti e gli sviluppatori, che non devono più costruire tutto da soli partendo da zero.
Molto interessanti sono i servizi cognitivi, come quelli di Microsoft – ad esempio il riconoscimento di immagini, il riconoscimento dello speaker di una voce, il riconoscimento di oggetti all’interno di un’immagine – perché pensare di svilupparli in maniera autonoma rappresenta uno sforzo eccessivo che un programmatore da solo non potrebbe mai affrontare. Tramite il cloud inoltre, si paga solo quello che si utilizza.
“Non è però tutto oro quello che luccica – avvisa Raffaele Rialdi, Chief Software Architect e Founder di DotNetLiguria – e il cloud può anche presentare dei pericoli. Se la disponibilità è uno dei punti di forza del cloud ne rappresenta contemporaneamente anche una debolezza: se infatti i dati devono essere accessibili dai nostri uffici e dalle nostre case i rischi che si corrono sono molteplici e relativi alla connettività. Perché la disponibilità dei servizi può venire meno in mancanza di connettività o se questa non raggiunge tutte le aree del territorio, problema molto sentito in Italia. Proprio per questi motivi i servizi cloud non sempre sono appetibili per il programmatore che può avere timore nell’usare un servizio poco disponibile”.
Altro problema è quello della vulnerabilità, dove l’attenzione da parte del progettista deve essere enorme.
In questo scenario non c’è una ricetta universale, occorre valutare da progetto a progetto cosa è meglio fare, nella consapevolezza dell’impulso che il cloud può dare alla programmazione, ma tenendo sempre presenti le problematiche in cui è possibile incorrere.