Angular framework's grand ambition: Not breaking anything
Google's web app scaffolding seeks recognition as platform
Known for its role in the MEAN stack – MongoDB, ExpressJS, AngularJS, and Node.js – Angular lost the "JS" suffix and some of its momentum when version 2 appeared last year, largely because it was incompatible with the first release.
Static typing – checking the type of data associated with a variable at compile time – can reduce type-related errors by making them apparent before the code gets run.
Though StackOverflow's 2017 Developer Survey puts AngularJS ahead of React, that may reflect the size of Angular's installed base more than current affinities. Given other metrics, such as GitHub stars, not to mention those voicing enthusiasm for React and Vue.js, Angular looks to have lost some ground against lighter weight alternatives.
But comparing Angular to React or Vue.js isn't entirely apt because Angular has loftier ambitions.
"We're very aware of what's going on in the ecosystem," said Stephen Fluin, developer advocate on Angular at Google, in a phone interview with The Register. "But we do have a different perspective."
Where React and Vue.js qualify as frameworks, said Fluin, "We're trying to move up to the level of a platform. We want to help you at all parts of the development lifecycle."
That can be seen in the formal adoption of Angular Universal, a server-side version of Angular that began as a community-developed offshoot of the client-side project.
Fluin explained that around 2009 developers began rendering more and more application code on the client-side, to make apps less likely to get bogged down by delays in receiving data from the server.
One of the major goals with the version 4 release, said Fluin, was to avoid the breaking changes that occurred between version 1 and version 2.
"The thing we were hoping to achieve was compatibility," said Fluin. "We want to make sure people can come with us."
Beyond that, Version 4 aims to address some of the performance concerns voiced by Angular developers. The latest build reduces the size of generated code for Angular components by about 60 per cent.
Fluin said much of the initial reaction he'd seen on social media about the version 4 release came from developers pleased that their Angular app components had become so much smaller.
Along those lines, version 4 has moved the animations package out of @angular/core, so production code doesn't have to carry unneeded baggage if animations aren't necessary.
Other improvements include an expanded template binding syntax and Typescript 2.1/2.2 compatibility.
Fluin said looking ahead, the Angular team has enabled Service Worker support as an experimental feature, accessible by setting the appropriate flag. Angular apps that utilize Service Workers will work offline automatically.
He also said Angular has just released an experimental Visual Studio Code extension that taps into the standardized language service layer. The extension provides developers with a deeper understanding of their application code through capabilities like tab completion and errors at write time rather than build time. ®