To help you decide if you should switch to Angular, we spoke to Minko Gechev, author of the third edition of Switching to Angular. Minko has worked incredibly closely with the Angular project – he was the author of the Angular 2 style guide. That means he’s well placed to explain the benefits of Angular and to help you decide if its the right framework for you.
- Angular as against the public opinion has a consistent development lifecycle and is trustworthy for the developers to start their career with.
- The primary goal of the Angular community is to make the framework lighter and much more efficient.
- The book Switching to Angular – Third Edition works as a perfect stepping stone for new developers looking to start their journey with Angular.
- Angular.js and Angular are two different frameworks. Often people incorrectly refer to AngularJS as Angular version 1 which makes developers think that Angular is the next version of AngularJS. Although similar in nature, they should never be considered as predecessor and successor.
How has Angular come to dominate front-end development?
What do you think is the primary reason for Angular to have the lion’s share of front-end development market?
Minko Gechev: There are several important reasons:
- Angular is a really well-designed framework which provides entire solution for the developers working on the user interface.
- The framework is developed and maintained by Google. This means that it is very well engineered and a high-quality solution.
- Angular provides great development experience.
Since the beginning Angular was designed to simplify the development process dramatically. The framework provides friendly APIs which makes the process of building complex user interface trivial. Out of the box, Angular has very performant and well tested implementations of two-way data-binding, dependency injection and change detection. Notice that these will not only reduce the boilerplates in the process of application development but also make our code more testable, thanks to dependency injection. This means that the Angular team also thinks about improving the quality characteristics of our applications.
On top of that Angular for web development provides a lot of external modules maintained by the Angular team itself, so the same team which works on Angular core, also develops Angular router, Angular forms, Angular material, etc. This allows us to confidently use the entire stack without bothering that the individual pieces of the puzzle may not fit well together.
Another important fact is that the framework is developed by Google. This implies a high-quality engineering power for enterprises and individuals who can confidently bet on Angular as a long-term solution for development framework. As it is unlikely from Google to drop support for the framework unexpectedly. Keeping in mind that Angular is used in tonnes of projects inside Google itself, we can rest assured that it’s being tested on a very high-scale constantly. Google would never make a compromise in terms of quality.
Development experience is something I am really interested in. The framework is developed with TypeScript. It provides great tooling support implemented in different text editors and IDEs; with precise auto completion suggestions and warning about typing errors; developers’ productivity can increase a lot.
On top of that, Angular’s templates are very convenient for static analysis. This helps programmers to build tools which ease the development process even further. A few examples of such tools are codelyzer and the Angular Language Service. Finally, the framework provides predictable release schedule following semantic versioning. We always know what changes to expect in the next release to plan accordingly.
What would you like to tell your followers about the latest development in the Angular eco-system?
MG: Google is constantly making Angular for web development smaller and faster. Each new release introduces better tooling which drops more unused code from the bundles and makes them smaller. The Angular compiler also brings plenty of optimizations which transform our applications to better performant versions of themselves.
At the same time, we can see very minor incompatibility changes across major releases. The Angular team does an amazing job in making sure that they improve the framework a lot behind the surface but for us, the developers, they leave the APIs unchanged.
On the other hand, we have the Angular community which builds on top of the core. There are plenty of community tools improving our day-to-day development process. Also, there are plenty of high quality material which help us to get started with the framework.
Should beginners use Angular?
What makes this book a must have for the would be Angular developers?
MG: The book provides a gentle introduction to all the framework’s concepts. In the first chapters, we focus on ideas rather than digging into unfamiliar code. By the time we start writing applications, readers already have a good understanding of the framework foundation so they can just start coding without any struggle.
As a former member of the Angular mobile team and long-term contributor, I have revealed implementation details which will help readers get in-depth knowledge about how everything works under the hood. From my teaching experience, I’ve noticed different patterns which help people develop a deeper understanding of new concepts and use them in practice.
The main challenges of making the switch to Angular
What are the main challenges that anyone would face while shifting to Angular framework?
MG: There might be some conceptual overhead in the beginning. The framework encourages us to use best practices which means there might be a lot of new concepts, such as dependency injection, two-way data-binding, observables and Ahead-of-Time compilation.
It takes time and practice to digest everything but the good thing is that we can do that incrementally. In the book I provide a step-by-step approach – we start developing fully functional applications with the bare minimum and after that increase our expressiveness and architecture by introducing new ideas and concepts.
[box type=”info” align=”” class=”” width=””]Check out this post to learn how to build components using Angular.[/box]
Is Angular’s dominance fragile?
Angular is going through a lot of changes presently, do you feel that these many changes can impact the developer retainability of a particular tool or tech, especially when there are frameworks like React and Vue breathing down the neck of Angular?
MG: The incorrect perception about fragility in the Angular’s API is a result of the rewrite of AngularJS. Often people incorrectly refer to AngularJS as Angular version 1 which makes developers think that Angular is the next version of AngularJS. This is incorrect. Angular and AngularJS are completely different frameworks, the only thing in common is that Angular is inspired by AngularJS.
This incorrect statement also makes people think that the changes which will happen between Angular version 5 and Angular version 6, for instance, will be as impactful as the changes which happened between Angular version 2 and AngularJS. This is wrong as well. In fact, there were almost no backwards incompatible changes between Angular version 2 and Angular version 5 which means that the API is under strict control and the migration process between major releases is always only related to update of the project’s dependencies’ versions.
Regarding the other libraries and frameworks out there such as React and Vue, I see that they are introducing a lot of new ideas as well. There’s competition which is very healthy since it allows the entire ecosystem to constantly evolve.
3 key features of Angular
Please share three of the most remarkable features that you feel makes Angular special. Why should people switch to Angular?
- The dependency injection mechanism of the framework which makes our code testable and enforces better separation of concerns. I’ve had to use other alternative technologies in the past and I can honestly say that this is the feature I missed a lot.
- The Angular compiler is another remarkable feature. It transforms our application to much more performant versions of itself.
- Finally, I like the Angular templates. They have plenty of good features and thanks to the great design the Angular compiler is ableto perform a variety of optimizations over our applications.
Could another framework replace Angular?
Do you in the near future see any framework replacing Angular in popularity and if yes then why?
I think this trend will stay because it’s much safer to bet the future of your product on a framework supported by a big organization. This means it is less likely to have unexpectedly discontinued maintenance and support. With all the qualities that Angular has, I believe that the framework has a very bright future. It has been adopted by a lot of large companies – Microsoft, Capital One, NBA, VMware, Google and many others.
[box type=”info” align=”” class=”” width=””]Check out this post on 5 web development tools that will matter in 2018[/box]
When Angular made the breaking change to version 2, everyone was divided in their opinion about whether it was the right step, what was your thought?
MG: As I mentioned above, Google didn’t introduce breaking changes to version 2 – they created a brand new framework inspired by AngularJS.
It’s incorrect to refer to Angular as Angular 2, Angular 4, or Angular 5, etc. It’s just Angular. There’s a new major release of the framework every 6 months. At the moment we’re at version 5; 5 months from now Angular will reach version 6, etc. The differences between Angular version 2 and Angular version 5 are insignificant, there were very minimal backwards incompatible changes. It’s pointless to refer to every new version of Angular by placing a number behind unless we’re describing any specific change which happened across releases. In “Switching to Angular” I’ve focused on the solid foundation of the framework which is unlikely to change in near future.
At ng-conf 2017 I introduced a tool which can automatically migrate any Angular application between versions 2 and 4 which simplified the transition process even further.
On the other hand, AngularJS (which is incorrectly called Angular 1) is still in use, although Google strongly encourages developers to migrate to Angular.
How is this book a stepping stone for a new Angular web developer and what should they try their hands on next?
The book also explains in detail what should be the expectations of the readers regarding the future of the framework.