What You Should Know Before Choosing Angular 2+
It’s not Angular 1
While the brand name and main developer team are the same, Angular 2+ is not Angular 1. It is a completely rewritten framework, so migrating from 1.x to 2+ requires learning Angular 2+ as a new framework.

Learning and documentation
Development using Angular 2+ has a steep learning curve compared to its rival from Facebook, ReactJS. It has many templating things to know and remember making it hard at first, but when you get the hang of them, it becomes much easier. React, on the other hand, uses JavaScript for its templating, which is more familiar outside the React world. As for documentation, Angular has made it hard to find your way around it. It feels more like a list of how-to guides. It also lacks complete documentation for the Angular JavaScript version (instead of TypeScript) which has been promised even before the stable release.
Versioning
If you are familiar with Angular, you will know that it used 1.major.patch where every major change introduced breaking/major update to the core, and it needed some changes to make it work again, but the patch was for bug fixes and patches. This all changed with Angular 2+, because now they (the Angular team) are using Semantic Versioning, thus making it major.minor.patch, where major means breaking change, minor means new features and patch means bug fixes. This means you are safe to update 2.x.y without worrying about things not working. This leads to the next thing to know.
It’s just Angular
With introducing semantic versioning, the term Angular 2 has lost the meaning that it had before the release caused by the complete rewrite. This allows us to keep sane package management for future Angular releases because now a lot of packages are prefixed ng2-*, angular2-* etc. The next major version is Angular 4 instead of Angular 3, released in March 2017. The Angular router already had a 3.x.x version, so the team skipped 3 to have a unified version for all Angular packages. Please don’t worry, this doesn’t mean a complete rework and relearning everything again; Angular 4 is backward compatible with Angular 2.
Dependencies
While Angular 2+ is a fully-built framework, it still has some dependencies that are required to make it run. The main ones are RxJs and TypeScript. RxJs or Reactive Extensions for JavaScript is a library for Observable patterns. It is a different approach for data flow; it’s more like streams. Angular’s own APIs, such as HTTP, return observables with subscribers instead of promises. TypeScript is a superset of JavaScript that adds static types (and much more). In 2017 TypeScript was not strictly required (Angular could run without it), but it was highly recommended, because it adds so much to JavaScript and it is added to Angular 2+ by default. You also need a module loading library of your choice – SystemJS, Webpack or another.
Stability and guarantee
Building such a big framework as Angular requires a lot of tests to be written. This allows code change implementation to be safe, but that is not all that Angular provides. As you may know, Angular is developed by Google. What you might not know is that every change to the master branch on GitHub is tested against Google’s own apps that use Angular. That means even more tests and even more stability.
Diatom offers Angular Development Services for a wide range of industries, and the framework meets the stability requirements of those projects.
Compilation
Angular 2 introduced a feature called ahead-of-time (AoT) compilation. Before that, Angular code was only compiled in runtime, meaning that you have to provide a compiler with your JavaScript bundle, thus increasing its size and essentially the bootstrapping time of your application. It is called just-in-time (JiT) compilation. AoT allows you to compile and serve the code before the application is launched. This means that browsers have to be concerned only about rendering the app.
SEO
If your site is open for public use, SEO (Search Engine Optimization) is a must-have on every page. You can still build a page without SEO, but it won’t show up in search results as expected. For single-page applications, this is a difficult task because not all search crawlers are waiting for your app to bootstrap or render. This is where Angular Universal comes in. It allows HTML to be rendered on the server side and then sent to the client. During the render, HTML gets replaced with your application code. There is one caveat though. Universal has only a few supported backend languages – NodeJS and .NET.
Conclusion
I think Angular 2 is great. It is my go-to framework, and it lets us provide good-quality web development services. I have used React and Angular 1, but I still prefer Angular 2 over them. Here are a few suggestions from my experience:
- Use Webpack instead of SystemJS. SystemJS is a module loader only, while Webpack can also do bundling, minify app and run scripts on your app. Here’s a simple example; while using SystemJS my apps’ load time was ~4 seconds, then I added Webpack, which reduced it to 2.5 seconds. With Webpack it was easy to add a production build, whose load time is 0.6 seconds with AoT, tree shaking, minification and gzipping.
- Use starter repositories. For example, Angular2-webpack-starter. This will reduce the time to set up everything and be in production-ready mode.
- Update constantly. Angular 2 is still new, and being as big as it is, bugs are being found and fixed constantly.
- Be aware of AoT. While AoT is a great and powerful tool, it significantly differs from JiT. That means, not everything that works in JiT will work in AoT. Not all packages work in the AoT mode. Try to run the AoT mode build frequently.
- Try to use tools that come with Angular 2. RxJS and TypeScript will improve your JS coding style and overall quality.
- Don’t be afraid of not knowing. There is a lot to grasp, a lot to learn, but there is also a lot to gain and people who can help you. You can ask or search for help on Stack Overflow or Gitter.
Angular 2 has come a long way to be where it is now, and I hope there is more to come.
Update (October 2026): AngularJS support ended on 31 December 2021. Since Angular 22 (June 2026), Angular ships one major version a year and supports each for 24 months, as described in the Angular versioning and releases policy. Components are standalone by default since Angular 19, signals (added in Angular 16) work alongside RxJS, and the Angular CLI now builds with esbuild and Vite and ships server-side rendering as @angular/ssr, the successor to Angular Universal.
If your company is interested in our Angular Development Services, please contact us.
Table of content
Years in business
Senior engineers
Projects delivered