News / Technology /

Angular 4.0 Sets the Stage for IDE-Driven JavaScript Development

6 Apr 2017 10:26am, by

The release of Angular 4.0 must be perplexing to the outside observer, due to Google skipping of version 3.0 of the JavaScript application framework entirely. But the vagaries of semantic versioning aside, this release includes a lot of hearty new features and capabilities, while still remaining mostly backward compatible with version 2.x.x.

As with most JavaScript these days, Angular 4.0 seeks to be smaller and sleeker than previous releases. This is aided by some changes to how the compiled code is generated. In some cases, this can shrink components by 60 percent, according to the Angular team. A new animation package has been added, thus removing those components from the core Angular package. This will save space for applications that do not use this functionality.

Programmatic functionality has been slipped into the template binding syntax, allowing for if/else style usage, and the assigning of local variables. The Angular Universal project, which allows Angular applications to run on the server, was also updated to be concurrent with this release.

Perhaps the most interesting thing about the Angular 4.0 release is neither the full numeral version jump nor the interesting updates and features that have been added to the framework. Instead, it is perhaps more interesting to take a look back at just how Angular has transformed since it hit 1.0 five years ago.

Much like the landscape of JavaScript itself, the path of Angular been altered along the way as the tides have shifted within the developer ecosystem. What started out as a way to quickly prototype designs soon turned into an easier way to write JavaScript functionality into a web page.

Today, however, Angular 4.0 is a poster child for JavaScript everywhere. Universal was originally created by the Angular community, but the core team has since adopted it as a part of the overall project. Release 4.0 is the first to come since that absorption.

Universal brings to mind some of the more hallowed chapters in JavaScript history, from Sun’s work over a decade ago on Rhino to bring JavaScript to the server, to the progress of the Node.js community over the past five years.

As such, Angular is much more in tune with fulfilling the destiny laid out last year with the Angular 2.0 release, rather than the originally dreamed future of Angular 1.0.

This is exemplified in last year’s release notes about Angular 2.0: “Angular 1 first solved the problem of how to develop for an emerging web. Six years later, the challenges faced by today’s application developers, and the sophistication of the devices that applications must support, have both changed immensely,” reads the release blog.

Compare this to the original goal of Angular, which was written out here: “Our goal with AngularJS is to eliminate the guesswork in creating web app structure and take the pain and the boilerplate out of web client apps.”

Along the way, not only has Angular grown to address the problems of modern Web development, it’s also spawned the uptake of an entirely new subset of JavaScript: TypeScript.

Anders Hejlsberg, technical fellow at Microsoft, said that for the first couple of years, TypeScript was hosted on the recently doomed Codeplex. “We moved to GitHub 2.5 years ago now, and after moving to GitHub, we saw an increased activity. Then we started working with the Angular team at Google, as a joint venture. They needed some features, we were interested in gaining more adoption, so we jointly jumped in. They concluded this is so good, we’re going to write Angular in TypeScript and recommend to our users that they use TypeScript,” said Hejlsberg.

This also makes Angular the tip of the TypeScript spear, and as such, perhaps the tip of the Visual Studio Code spear. That IDE not only supports TypeScript, it also supports the Language Server Protocol, a new way of spreading syntax highlighting and code completion to IDEs in a write-once, support anywhere manner.

 The Language Server Protocol means that TypeScript is also supported in Eclipse Che, neovim and, in the future, the venerable titans of text editing, Emacs and Vim.

“You start with JavaScript, and you can add type annotations and through those type annotations, you can get a mature developer experience powered by static types, and when you compile or transpile, you have JavaScript again,” said Hejlsberg.

Thus, it has indeed been a long strange trip for Angular to get to 4.0: One that has gone from simplifying DOM and making HTML templating easier, to offering a server-side application solution, and uniting Microsoft and Google in a single cause.

And only six years ago, this was Angular:

Feature image by Laura Aziz, via Unsplash.


A digest of the week’s most important stories & analyses.

View / Add Comments