Il web si sta evolvendo, dai il benvenuto alla nuova generazione di applicativi web real-time.
Dallo storico lancio di Gmail nel lontano 2004, sempre più spesso aziende e startup sentono l'esigenza di costruire esperienze web più simili ad applicazioni desktop che a classici siti Internet. Pagine fortemente dinamiche, interattive, veloci al punto tale da risultare istantanee, in grado di permettere la fruizione di informazioni aggiornate in tempo reale.
L'insieme di tecnologie che si è rivelato essere in grado di garantire il necessario supporto per questo genere di applicazioni prende il nome di Single Page Applications, e rappresenta l'ultima frontiera dello sviluppo su web.
Da un punto di vista tecnico una single-page-application, a differenza di un sito realizzato con le "classiche" tecnologie server-side, viene interamente scaricata dal browser fin dalla navigazione della sua prima pagina. Da quel momento, ogni interazione dell'utente con il sito (click, navigazione, etc..) non provocheranno alcun ricaricamento globale della pagina, ma piccole modifiche incrementali, comandate da una logica puramente client-side, eseguita direttamente sul browser dell'utente, senza la necessità di interrogare un server remoto.
Il risultato finale? Una navigazione incredibilmente più veloce, trasferimenti di rete più efficienti, migliori prestazioni complessive per l'utente finale... insomma, esattamente ciò che è necessario per garantire un'esperienza fluida nel caso di frequenti aggiornamenti d'interfaccia, a maggior ragione su un dispositivo mobile.
Framework JS
Spostare il core dell'applicativo dal server verso il browser, per quanto evidenti siano i vantaggi in termini di reattività ottenibile, porta con sé innumerevoli sfide, prime tra tutte la necessità di mantenere una compatibilità con una vasta popolazione di browser e dispositivi dalle performance molto differenti tra loro.
Queste sfide sono la ragione per la quale, negli ultimi anni, sono nati e cresciuti esponenzialmente in popolarità i primi framework Javascript, strumenti in grado di aiutare gli sviluppatori a costruire SPA astraendo e semplificando operazioni altrimenti ripetitive e soggette ad errori. Angular e React sono i due framework client-side al momento più popolari, maturi e supportati.
Angular e React sono progetti che condividono alcune caratteristiche, a partire dalla licenza d'uso totalmente open, così come il fatto di essere stati sviluppati in seno alle due maggiori realtà web odierne, rispettivamente Google e Facebook, ed essere sfruttate come motore per alcuni dei social network più visitati al mondo; solo per citare i più celebri: YouTube, Facebook ed Instagram.
Scendendo più nel dettaglio, le differenze però iniziano a diventare più marcate: AngularJS, essendo stato rilasciato nel 2010, conta oggi su una base d'utenza molto più ampia. React d'altro canto, nonostante sia stato rilasciato soltanto nel 2013, ha conquistato l'interesse globale per un modello di sviluppo semplice e lineare, una curva di apprendimento meno ripida e performance più elevate.
Cosa scegliere allora?
Sarebbe bello poter definire con certezza quale le alternative possa essere considerata la migliore. La realtà dei fatti è che siamo in una fase ancora estremamente incerta, in cui è difficile potersi sbilanciare.
Lo sviluppo dei primi applicativi dinamici server-side risale infatti a più di 20 anni fa, un secolo fa per il mondo dell'IT. Le SPA invece, per quanto i casi di successo citati dimostrino inconfutabilmente la loro ragione d'essere, sono ancora una tecnologia estremamente giovane. Ad oggi, non è chiaro quale tra le diverse filosofie che sottendono ai diversi framework JS possa rivelarsi la migliore nel lungo periodo, o se magari il miglior paradigma di programmazione client-side debba ancora arrivare.
Quello che è certo è che Cantiere è da anni in prima linea nel continuo studio delle migliori tecnologie client-side disponibili, con esperienza diretta con tutti i principali framework front-end, e casi di estremo successo a dimostrare l'effettiva fattibilità di un approccio client-side fin da oggi.
Parlaci del tuo progetto, saremo felici di poterti indirizzare nella direzione migliore.