The Good and Bad of Angular development

Olivia Cuthbert
8 min readApr 6, 2021

--

Angular is a member of the JavaScript ecosystem and is currently one of the most popular software development tools. It was launch by Google in 2009 and has received a warm reception from the developer community. According to a 2019 survey by StackOverflow According to StackOverflow’s 2019 survey, 30.7% of software engineers use AngularJS and the new version Angular 2+ to build user interfaces.

Let’s take a look at these tools’ main features and explore the pros and cons of each from a front-end engineering perspective.

What is Angular: What is the history of AngularJS and Angular 2+?

Angular is an open-source software engineering platform backed by Google and used for building front-ends. Its history dates back to 2009 when Google engineers Misko Hevery and Adam Abrons developed the framework we know today as AngularJS and officially released it in 2010.

Before the advent of AngularJS, HTML, the web’s markup language, was always static, and users could not actively interact with an HTML page interface. Before HTML, AngularJS, the web markup language, was permanently fixed, and users could not actively manipulate the interface of HTML pages. There were ways to create dynamic single-page applications (SPAs), but they were too complex for practical engineering. The AngularJS architecture reduced the development effort to create dynamic content and allowed users to get web pages with active forms and elements. Angular 2+.

Angular 2+. In September 2016, Google released Angular 2, a completely rewritten version of the same team’s framework, to satisfy an increasingly modern web. The differences between the old version of Angular and the second version of Angular were too drastic to switch from one to the other. Migrating the application to Angular 2 required a lot of changes due to the syntax differences. In subsequent updates, the Angular team has developed migration techniques and tools to transition from AngularJS to painless.

Angular version history

The Angular community divides into AngularJS and Modern Angular. To withdraw terminology confusion, we will refer to the new framework like Angular, as suggested by some in the community, rather than the older version AngularJS 1.x.

The modern Angular framework has versions ranging from 2 to the latest Angular 9, introduced in February 2020. This section will discuss the main improvements that each version of Angular has brought with its release.

Angular 2

The release of Angular 2 brought several changes from the original framework, including being rewritten in TypeScript and mobile-ready. The architectural style is now component-based, and, thanks to TypeScript, Angular 2 has a new built-in compiler. Other changes included reducing application size and syntax changes, so it was not possible to upgrade AngularJS to a recent version.

Angular 4

The digital introduction of Angular 3 was made possible by significant improvements to the Angular router, which also upgrade the router in the third version. When Google released Angular 4, it also boosts the router to the fourth version; the fourth release introduced Angular CLI 1.0.0 as a core component of the Angular project. With the announcement of Angular Universal, Angular applications can now render Angular applications outside the browser.

Angular 5–6

The fifth and sixth releases focused on optimizing the Angular CLI and compiler; the Angular CLI now has a workspace that developers can use to host multiple Angular projects in different directories. Also released as part of version 5 is a new upgrade tool that simplifies the migration from one version of Angular to another. The introduction of the “Web Worker” feature and improvements to the CLI, in general, were also important features.

Angular 7

In Angular 7, prompts adds to the CLI. The prompts provide hints to explain CLI components’ function and purpose, making the CLI easier to use. I made several improvements to the application, including Performance and codebase size, and the CLI documentation has also have updated.

Ivy Renderer

Another significant improvement is differential loading, which use to download special packages for browsers to support legacy browsers and faster content loading.

Angular 9

The latest update, version 9, debuted in February 2020. This version brought several improvements that affected the framework, its platform, CLI, and Angular Material.

The main improvement is that we have entirely changed the default compiler for all Angular applications to the Ivy renderer. You can check out the compatibility and losslessness with Ivy here. The framework has also adopted a new compiler method with some syntax, type checking, and CSS style binding.

The MEAN stack

Angular belongs to the so-called MEAN stack. This acronym stands for four technologies covering the main aspects of software product development.

M — MongoDB, the NoSQL (non-relational) database

E — Express, back-end middleware

A — Angular, front-end framework

N — Node.js, execution environment. (You can read more about the pros and cons of Node.js in our dedicated article)

Engineers can use Angular independently of other stack technologies. Still, they can always rely on the existing ecosystem of companies with full-stack developers who are experts in covering all aspects of software development.

Angular tools and setup

Here are the primary tools that engineers often use in Angular to get the most out of the framework.

RxJS. It’s unlikely to work with Angular without RxJS, a reactive programming library that aims to handle asynchronous data with multiple events. It allows engineers to create multiple channels of data exchange to facilitate resource consumption.

Angular’s CLI, a command-line interface (CLI), is used to create projects, add files, perform updates, respond to debugging tests, and deploy.

RxJS and the Angular CLI explain in detail below.

Code Editors. Many of the most popular code editing products currently support Angular. The most common ones that the community has accepted are Visual Studio Code, Sublime Text, and — as expected — the Angular IDE, WebStorm. However, make sure your favorite code editor supports Angular.

Advantages and disadvantages of AngularJS

Advantages of AngularJS

⊕ Bidirectional data connection.AngularJS built with the Model-View-Controller architecture. And the framework synchronizes the model with the view. When the data in the model changes, the statement also changes. Two-way data binding allowed engineers to save development time because they didn’t have to write additional code to synchronize the view and model continuously.

⊕Direction. This feature enabled the HTML extension described above. This feature allowed developers to assign specific behaviors to the DOM (Document Object Model), allowing them to create dynamic and rich HTML content.

⊕ Dependency Merging. Dependencies are what determine how different code interacts and how changes to one element affect other elements. Usually, dependencies are defined directly in the component itself. Therefore, whenever you change a dependency, you must change the part. In AngularJS, you can decouple a member from its dependencies using an injector that defines the dependency as an external element. Dependency injectors increase the reusability of components, making them easier to manage and test.

⊕ Community.AngularJS has been very popular among engineers since its early development. The strong community provided enough training materials, discussions, and third-party tools to get started with AngularJS.

The disadvantages of AngularJS

I Performance. Dynamic applications have not always performed as well. Complex SPAs can be slow and awkward due to their size.

I Steep the learning curve. Because AngularJS is a flexible tool, there are always multiple ways to do a task and has caused some confusion among engineers. However, the abundance of tutorials and topic guides made it possible to solve most problems.

After the update to Angular 2 and then Angular 4, the original AngularJS 1.x slowly started to decline. Although the new versions still have the benefits section’s features, they have completely reworked in the latest reports.

Angular 2 and Angular 2+

The main problem with Angular is that it came into the new world under the influence of its biggest competitor, ReactJS (see React vs. Angular comparison). And the debate about whether to use Google’s or Facebook’s framework is pretty heated. Since we’ve already discussed the original AngularJS 1.x in comparison to other JavaScript frameworks, let’s look at the new Angular environment’s main advantages and disadvantages. While we won’t be directly comparing Angular to its competitor, ReactJS, this rivalry should consider when choosing the most appropriate medium for your next project.

Maintainability. Better implementations can quickly replace components that are easily separable from each other. The engineering team will be more efficient in maintaining and updating the code within the iterative development workflow.

The disadvantages of Angular

If you’ve been following the hype and controversy surrounding the release of Angular 2–6, you know that there is a lot of criticism of the technology. Let’s take a look at the significant drawbacks that you should also consider.

Θ A divided and restless community.

Regardless of the claims of LTS, what makes the technology strong in the market is the community that surrounds it. And the history of the Angle community is quite controversial. According to the 2018 StackOverflow developer survey, Corner (both Corner 1.x and Corner) was the second most popular technology in the frameworks, libraries, and other technologies category, which is excellent. According to the same 2019 survey, Angular/Angel’s IMS has dropped to ninth most popular with 53% of respondents.

The community is likely to be in disarray: if you look at the page listing the most dreaded frameworks, Angular comes in fourth place with 42.4%. Its main rival, React.js, takes the top spot among the most popular and most sought-after web frameworks, followed by Vue.js.

Web framework ranking

It is mainly because AngularJS 1.x users are likely to migrate and not think about upgrading to modern Angular. As you may recall, you cannot migrate directly from AngularJS 1.x to newer versions.

Θ Migrating from older AngularJS to Angular takes time.

There are many techniques to do this, one of which is the hybrid approach, which means running the old and new Angular at the same time while you update the whole product gradually. Negative will this take time, but it will also require revising several tools, switching to a new language, and managing a heavier application because both Angulars work.

Another technique you can use during the transition is called lazy loading. Lazy loading is an optimization technique that essentially means that only the parts of the application (or its content) that the user has invoked are loaded. When a component or functionality is needed, Angular takes advantage of that part of the application and does so. When AngularJS application parts are lazily loaded, they can be called and rendered from the Angular application.

Θ Angular is cumbersome and complicated.

The most common complaint we gather from the Angular developer community is that the tool is wordy. This problem hasn’t changed since AngularJS.

While the component-oriented architecture has mentioned a significant advantage of Angular, the way components are too complex. For example, in Angular, a single piece can require up to five files, dependency injection, and declaration of component lifecycle interfaces. Other areas of concern are Angular-specific third-party libraries and syntax. As a result, much of the development time in Angular spent on repetitive tasks.

Θ The circular learning curve

Hiring new developers familiar with JavaScript to learn and use the new Angular is a challenge compared to a similar React or Vue implementation. The range of topics and aspects to be covered is wide: modules, dependency injection as mentioned above, components, services, templates, etc.

Another obstacle is RxJS, a reactive programming library for asynchronous programming. Studying it, at least at a basic level, is a must for using Angular. Engineers complain about error messages that are too cryptic to understand without further research and then trial and error manipulation.

TypeScript, as mentioned in the benefits section, is also a bone of contention. Although TypeScript improves the maintainability of code, learning it does not make the code more manageable. If you are looking for an Angular developer you can contact top angular development companies in India.

--

--

No responses yet