AngularJS, the popular JavaScript library, was spawned from the idea of creating a framework with an application mentality for building experiences on the Web. Version 6 was released in May with a focus on the toolchain more so than the framework itself.
According to Stephen Fluin, developer advocate at Google, the idea for Angular JS came out of developers at Google who were building web applications but weren’t happy with the way they could write them. “They reflected a bit on if they could build applications in any way they wanted to, what would it look like?” Fluin said in a recent interview with SD Times. “What would they rely on the browser to do? What would they rely on a tool, library, platform, framework, to do for them? So, that was kind of the genesis of AngularJS.”
This also explains why Angular is listed at or near the top of most every poll of software developers regarding the tools they use to build applications. Though the Angular team at Google can’t trace usage behind company firewalls, a look at their documentation traffic showed they crossed a million 30-day actives to their doc site, and earlier this year reached 1.25 million. But, as Fluin pointed out, “that number is actually a lower bound than how big our community really is.”
Today, the Angular team at Google is doubling down on efforts to make the platform easier for developers to use, and make them more productive and effective at delivering great experiences for users. A lot of the tools released in Angular 6 aim to give developers the newest tools and approaches to help them keep up with the rapidly evolving development tool ecosystem that exists across the web. One of those tools is ng update, designed to make changes to the way applications work with their dependencies. “Historically, how you would stay up to date with the evolving ecosystem is that you would update to the latest version of a dependency, of a third-party tool that you were using, and then you would go and fix your application for all the things that changed,” Fluin explained. “Ng update will update your dependency, so it will update you to the latest version of Angular, of other third parties, but also now under the hood it has the sophistication to make changes to your application that are driven by that third-party change.”
Keeping up with changes is difficult enough when the application is being used in-house and is not public-facing. But, in those organizations that have hundreds of developers and perhaps billions of users, staying productive is imperative. Scaling the process of application development to meet those needs is an area the Angular team is focused on.
Another challenge developers face is something Fluin called “the tyranny of the user.”
He explained that the experiences delivered today cannot just stay the same; they must get better over time. Those experiences “have to be richer, more engaging, more beautiful, more empowering,” he said. “And so, how do we continue to empower developers to build these richer experiences? These are things like internationalization, focusing on animations, accessibility, all these sorts of things where now in 2018 we can do a better job of reaching more users and delivering richer experiences than we could a few years ago.”
To create these application experiences, developers require tools. According to Fluin, “an almost universal truth” among Angular development teams is that they’re all using component libraries. “This goes back to the question of how do we scale the process of software development,” he said. “Due to Angular’s architecture, it’s very easy to say, ‘Here is our component set, here’s how it’s reusable, here’s how it’s testable, and so it’s very easy to either adopt an existing component library or to bring in a third-party component library, like Infragistics, and we’re even seeing people doing hybrids of these, where you can bring in a third-party component library and then extend and augment and modify it for your own needs.”
And to ultimately meet the needs of the application’s users, building experiences that are more client-side and web-focused will give a better user experience. “When a user clicks on something on their phone or on their desktop – using web technologies that are delivered instantaneously anywhere, anytime – they get an immediate response,” Fluin said. “The data should already be sitting there. When I hit save, it should be saved instantly; I shouldn’t have to see the page reload or a spinning progress bar.”
Getting rid of those things by building improved experiences, Fluin added, is a huge deal.