Angular 7 – A different way of doing things

Angular 7 will be another huge step forward and a collection of good desitions. Angular’s improvments in version 6 were amaizing. I remember been working with Angular Material and version 6 triggered an incredible improvement in performance.

Now on version 7 there is a few things I believe will make a huge impact:

Splitting of @angular/core

Is my opition this was one of the weak points on Angular. Frameworks like React has the modularity and lightweight as part of a huge benefit, you only load what you need. Angular saw this is the way to go and is an excellent news this change.

@aiStore – A built-in AI-powered store solution

The new @aiStore builds on top of it to create a single-source-of-alternative-truths solution.

@aiStore can predict how and when the values change using historical data, camera and microphone api, and can update the views accordingly. This is called ahead-of-change change detection.

This is where we cross a line where you need to really know the tool you are using and its capabilities to use something like this.

I’ve been working with GraphQL and I will like to see how to combine this ecosystem of tools. GraphQL and Apollo server creates an amazing solution for many problems, one is the cache and avoiding implementing redux.

Not for anyone, not for all cases

Is not the first time Im comparing angular with other frameworks and this @aiStore is another example. After many years using angular -I’ve used angular in 2013 for the first time- I see benefits and tradeoffs of using this framework.

Angular is not the best choise to do something small, a small component for a quick MVP, for example. You need to know a few things and think about the arquitecture of what you want to build to really use the potential of Angular. I see on React a better solution for soemthing small and quick without the overhead of "think" before coding.

Angular can solve a communication problem for your devs if you compare it with other frameworks. What I mean with this is simple, Angular it will require some basic knowledge from you: whats a service, a guard, how do you define a route, how do you load data for that route, etc. The documentation for Angular es excellent, but it requires time to catch up with many concepts if you are moving between versions or if you’re coding for the first time on Angular.

Other frameworks, like React, Vue, etc does not impose you any structure about this things. You can use different routers, stores, etc.

Benefits and tradeoffs

An importat benefit for angular is that you’ll have a common lenguage between your devs for free. If you have to do something, your team will know where to check access to a component, how to load data, when to load it, etc. Your tradeoff if something goes beyond the framework or if you need to do something not so simple as the common elements on angular, you will need a higher knowledge of the tool or go deeper to understand how it works.

The problem I see on other tools is the lack of standarization. For example on react, each company has it owns "ways" to do something, any dev who join that company will need to catch up with that particular way. With the risk of having "too much" on top of the framework and "too many" in house things -this ‘things’ not always evolve at the same speed as frameworks-.

Typescript is a must on angular

Typescript is the perfect complement on any JS code, and with Angular is the best way to have an "inline" documentation -apart of all the other benefits- to use.

In my experience, angular is used in bigger systems and systems living longer lifes. If you have a way to create this inline documentation, it will help you anytime you go back to check anyting on your app.

As a javascript coder, knowing and using Typescript is a must this days. Having an error like "Uncaught TypeError: undefined is not a function" is something for old apps.