October 3, 2016

Take 3, Scene 14: The Present and Future of Angular 2, Part 1

On this two-part episode of Take 3, Cassian Lup and Andrei Tamas join us all the way from Romania to discuss the newest iteration of the AngularJS framework: Angular 2. Angular 2 is a framework meant for both web and mobile app development.

Episode Highlights

  • Cassian and Andrei share the background behind Angular 2 and how 2014 became the year of Angular
  • We discuss how much Angular has changed from its first iteration, and Cassian and Andrei share how much they’ve worked with it
  • Andrei and Cassian share some insight into why Angular was both hyped and feared during its release stage

About the Guests

Cassian Lup is a Senior UI Developer for 3Pillar with a passion for web technologies and experience with Javascript, REST, SASS, Bootstrap, Gulp, and Agile.

Andrei Tamas is a Module Lead and UI Developer at 3Pillar. He is a JavaScript enthusiast with strong experience in web app development.

Read the Transcription

Julia Slattery: So let’s start with a brief overview. What is Angular and how is it used?

Cassian Lup: So Angular is one of the first mainstream Javascript frameworks to hit the market. We’ve been used to libraries being available and being used by a very wide amount of projects. But having frameworks to actually define the way we should write Javascript applications from beginning to end was a new concept. And Angular really took it mainstream with this approach.

Andrei Tamas: Essentially Angular is the framework that helps you create dynamic, single page apps. It lets you use Javascript and the HTML build web apps, but people have started using it for other things like mobile app development.

Cassian Lup: This new approach to having mobile apps use Javascript definitely rocked our world in terms of development. We’ve been used to just having native solutions. And once those hybrid approaches started emerging as a trend, we were in need of a new tool or new set of tools to do that. You were mentioning single page apps – that is actually a major paradigm shift in what we’ve been used to because we as web developers, we’ve been writing apps that essentially serve the whole content from the backend, right.

But the new trend is we build the API that actually enables us to build a separate appliance and then the client with the API would communicate. And the client runs on the users’ device, be it a browser on a computer or a mobile device or a native device even. We can do that. But there’s this bridge that we need to build between the two. So the separate approach of having the API built separately from the client side is where Angular really shines. It’s the answer to building these apps in a very elegant way on the client side.

Andrei Tamas: Definitely. I agree with that; Angular was a big promoter of that one since the first day it arrived.

Julia Slattery: There have been two iterations of it – Angular 1 and now Angular 2. Can you speak to why Angular 1 completely took over the whole app development world, to the point where 2014 became the year of Angular 1?

Andrei Tamas: Well, I think a major point for that was the fact that it was created and backed by Google, as well as being open source, and then a lot of people kept contributing to it. And for the time when it was launched it was, it had really cool features, aside from the paradigm shift that we mentioned earlier. it had the features like two-way data binding, dependency injections. And lots of cool new things that were really a fresh perspective for the Javascript world when it came out.

Cassian Lup: You mentioned dependency injection just now. I know that there’s a pattern that Java applications use heavily. And that only proves that Angular was written by a Java guy, right? Miško Hevery is the name of the guy that wrote it from Google. And what he did was he brought a lot of Java concepts into the front of the world. And you know front end is considered to be not as evolved of a language like Javascript, right?

It had been written in ten days. People came to realize that Angular 1 was, in a sense, similar to Javascript as a concept because it lacked in performance and it just was built probably as a proof of concept. I remember looking at the keynote that actually launched Angular 1. And Miško Hevery, the guy I mentioned before, was giving this presentation from Google. And the story goes that he had his project presented to them. People were like, “Meh, it’s just another project. We don’t think it’s going to take off.” Well turns out that the community of non-Googlers discovered Angular and made it popular. And then Google caught on and said, hey, there is value here, and we can build on this momentum. And in fact they did. So as people started using it more and more, it became highly and widely used, as in at least one million developers use it as far as they tell us.

So they realized that it had some flaws, right and it needed to fix those. But that is essentially how Angular 2 came to be. They thought of rewriting this opinionated anti-solution to find the needs and they do provide everything you need from it. But one more thing, I feel it’s very important that I do mention at this point that Angular actually brought us Javascript testing. We have major lack in that regard, in terms of well-established backend. Languages had unit tests and duration tests in place and everybody knew how to do them. But in Javascript, nobody did unit testing, because we said that Javascript is just a UI manipulation tool whereas it turned out that we now have logic in the client side, in the UI. And Angular was built with testing for first class citizen. So that really changed how we write word programs.

Andrei Tamas: Definitely, I agree. Testing was a big, important addition and something that was truly made popular only with the rise of Angular apps actually. I’ve heard of that.

Julia Slattery:  Angular 2 was recently released to the world. Have you both had a chance to work with it yet?

Cassian Lup: So I remember being at Angular Connect last year, which by the way is taking place these days in London. It’s probably the biggest event you could go to, to get your Angular fix. So the majority of the Google core team working on Angular is there. And they announced Angular 2 beta, right? So that was a major breakthrough, lots of applause, you know people were highly excited about that. You just saw the whole new different way of writing Angular apps. And people were both scared but confident on making this work.

So that was the first time I actually got my hands dirty with Angular 2, one year ago. And since then, I’ve been following the releases that took place. I went through several betas, and then through release candidates – as a matter of fact, they had six of them. And recently just launch the stable, official release that they encourage you to use in production. So I’ve been keeping an eye on that. Admittedly not on each release because there have been some breaking changes. There’s a lot of politics involved. They change their router completely. But yeah, you know mostly toying and experiencing with what writing Angular 2 apps is and feels like. There’s actually a super-secret initiative here in 3Pillar that we’re trying to work with to experience new technologies. And Angular 2 is part of our labs system where we go and build this internal app in Angular 2. So I’ll say that that’s the most serious and hands-on experience I do have with the framework.

Andrei Tamas: For myself, I’ve also kept a close eye on Angular 2 and its progress and evolution. Like Cassi, I think I first laid my hands on it early after last year’s Angular Connect conference and played a bit with the initial betas. After that, life got in the way and I had to drop it for a while. But recently, since the latest release candidates were launched and now that we have Angular 2, I’ve actually started to devise a plan on how to migrate my own big Angular app to Angular 2. And it’s quite an exciting process, and hopefully that will happen soon enough and I’ll be able to fully enjoy Angular 2 in my day-to-day work.