Esistono numerosi framework javascript ognuno con la sua lista di vantaggi e svantaggi. Già con la prima versione di Angular i programmatori avevano gli strumenti per progettare e sviluppare applicazioni Javascript su larga scala ma con il passare del tempo sono emersi numerosi difetti. La seconda versione è stata implementata raccogliendo ed ascoltando i feedback della community per ben cinque anni.
La nuova versione di Angular è più semplice per i programmatori rispetto alla precedente; infatti con Angular 1 erano i programmatori a dover capire le differenze tra Controllers, Services, Factories e Providers. Angular 2 è anche più snello come framework e permette di concentrarsi sulla creazioni di classi, inoltre viste e controller sono stati rimpiazzati dai components che possono essere descritti come una versione raffinata delle derictives; tutto questo ha reso la nuova versione di Angular molto più semplice. I componenti di Angular 2 sono molto più semplici da capire.
Angular 2 è stato scritto in typescript, un estensione di javascript che implementa nuove features di ES2016+. Anche l’ecosistema per consentire di programmare con la nuova versione di Angular è stato arricchito con nuovi strumenti che permettono di velocizzare la scrittura del codice (IDE). Questo aspetto è importantissimo per i programmatori che vengono supportati notevolmente nell’apprendimento della nuova versione di Angular.
Anche se la nuova versione di Angular rappresenta una rottura con la versione precedente, sussistono dei punti di continuità rappresentati dalla dependency injection che semplificheranno la vita dei programmatori impegnati nella migrazione da altre librerie come React.
Angular 2 è stato progettato anche per dispositivi mobile e, nello specifico, ottimizzato per la ridotta capacità di calcolo rispetto ai computer tradizionali. Questa ottimizzazione ha reso l’esecuzione delle applicazione Angular base ancora più performanti in termini di reattività.
Come Reat anche Angular sfrutta il pre-rendering dell’ HTML su server o web worker al fine di migliorare l’esperienza utente.
Grazie all’integrazione con Nativescript, Angular 2 è utilizzabile per la realizzazione di app su dispositivi mobile. Inoltre, Ionic ha lavorato ad Angular 2 per sfruttare al meglio le funzionalità dei dispositivi mobile.
La prima versione di Angular ha fornito ai programmatori web un framework altamente flessibile per lo sviluppo di applicazioni. Questo è stato un cambiamento drammatico per molti programmatori web e, sebbene quel framework fosse utile, è diventato evidente che spesso era troppo flessibile. Nel tempo, le best practice si sono evolute ed è stata approvata una struttura guidata dalla community.
Angular 1.x ha cercato di aggirare varie limitazioni del browser relative a JavaScript. Ciò è stato fatto introducendo un sistema di moduli che utilizzava la dependency injection. Questa modalità era nuova, ma sfortunatamente presentava problemi con gli strumenti, in particolare la minimizzazione del codice (tecnica utilizzata per ridurre il tempo di caricamento delle app web based e minimizzare il tempo di utilizzo della banda) e l’analisi statica.
Il linguaggio Javascript è formalmente conosciuto come “EcmaScript”. La nuova versione di javascript , conosciuta come “ES6” offre un numero di caratteristiche che estende la potenza del linguaggio.
ES6 però non è totalmente supportato dai browser odierni, quindi, deve essere tradotto in ES5. Per far fronte a questa mancanza si può usare TypeScript che è il linguaggio usato dal team di Angular per scrivere Angular e che viene compilato in ES5 grazie al suo transpiler. In definitiva, mediante TypeScript Angular utilizza features di ES6 successivamente tradotto in ES5 .
JavaScript è stato creato nel 1995, ma il linguaggio è ancora largamente utilizzato oggi. Ci sono sottoinsiemi, superinsiemi, versioni attuali e l’ultima versione ES6 che offre molte nuove funzionalità.