E così AngularJS e DurandalJS convergono...

di Stefano Mostarda, in .NET,
 La notizia è ormai vecchia di qualche settimana e quindi nel nostro mondo puzza già di vecchio. Eppure mi sono preso un po' di tempo prima di scrivere questo post, perchè volevo prendermi tempo per metabolizzare e capire cosa fare nel breve termine.
Non sono un fan di AngularJS. Sebbene i circa 500 miliardi di tutorial in rete facciano vedere quando sia estremamente semplice creare una SPA con AngularJS, questi tutorial sono una demo o poco più. Quando si vuole creare una SPA strutturata con AngularJS c'è molto codice da scrivere e in molti casi questo codice è tutt'altro che intuitivo. Il molto codice da scrivere viene però ben ripagato da una semplicità incredibile nel gestire il binding e il markup.
DurandalJS è secondo me il framework per SPA per eccellenza. Sebbene fare una demo da zero richieda più codice rispetto ad AngularJS, Durandal ci permette di avere sin da subito un'applicazione modulare e che rispecchia meglio i crismi del pattern MVVM. La pecca di DurandalJS sta nel fatto che il sistema di binding è poco naturale per via dell'utilizzo di KnockoutJS (sia chiaro KnockoutJS è un fantastico framework, ma con i browser moderni comincia a diventare obsoleto).
Il team di DurandalJS sta lavorando già da tempo a una nuova versione detta "NextGen" che romperà la compatibilità con i browser più datati (alias < IE9, firefox 3-4, chrome ???) rendendo quindi il framework più snello (niente più necessità di KnockoutJS, niente più hack per vecchi browser) e quindi più semplice da usare e più performante a runtime. Anche il team di AngularJS sta lavorando a una nuova versione modello NextGen di DurandalJS (quindi niente più supporto a browser datati) e per questo ha deciso di coinvolgere il leader di DurandalJS.

A questo punto però il problema è: se tra 6/12 mesi ci sarà una nuova versione di AngularJS che ingloba il meglio di DurandalJS e AngularJS cosa facciamo noi adesso?

Il team di DurandalJS afferma che la versione NextGen uscirà e sarà supportata a lungo. Inoltre dice anche che ci sarannò dei tutorial per convertire una SPA basata su DurandalJS in una SPA basata su AngularJS. Questo mi fa pensare che alla fine, la nuova versione di AngularJS sarà basata per il 70% su quello che c'è di AngularJS e per il 30% su contributi portati dal team di DurandalJS. La mia previsione è che la parte di ViewModel e gestione dei moduli sarà come in DurandalJS, la parte di binding sarà simile tra DurandalJS NextGen e AngularJS 2.0 e che la parte di View (molto corposa) sarà quella di AngularJS.

Tutto questo per dire che:
  • Se avete SPA che devono girare su tutti i browser (anhe quelli datati): usate il framework che più vi aggrada, tanto non verranno più aggiornati.
  • Se avete SPA che devono girare solo su browser moderni e con view molto complesse e poca logica applicativa: cominciate a passare ad AngularJS (visto che il motore di view sarà quello di AngularJS)
  • Se avete SPA che devono girare solo su browser moderni e con molta logica: io propendo per DurandalJS (visto che poi la migrazione di questo codice Durandal verso codice Angular dovrebbe essere semplice)

In generale, questa fusione mi genera sentimenti contrastanti; da un lato sapere che avrò il meglio di entrambi i framework mi rende felice, ma nel medio termine la mia paura è che non essendoci reali competitor ci sarà anche meno innovazione... vedremo.

Stay tuned...
Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese