What are your thoughts on Angular?

Took me some time to find anything Google created with newer Angular 5+. Most is old AngularJS 1.x (Loading. Please wait…). Please correct me if I did understod it wrong.

They separate AngularJS from Angular on that page. Anyhow, I don’t make any claims about the quality of the list. I got no dog in this fight.

I’d say Angular isn’t very good when it comes to smaller test-cases as it wasn’t designed for that use-case. People talk about ivy making things faster and smaller, but idk if it would have a huge impact on these sorts of unrealistic use-cases.

You also have to invest into some of the out-of the box technology such as gzip (Angular is very gzippable), lazy loading, bundle optimization, and aot. You could go even further and leverage service workers to cache your entire app + extra stuff. Yes you can do all of this manually with any other framework, but Angular gives this to you out of the box.


Google has been slowly updating their Google Cloud Console with Angular 2+ code. I assume they are leveraging some sort of hybrid, as most of the “older” ui is still ran in AngularJS.
Another public facing Google built Angular app is the awesome messages.android app that came out recently where you can send/recieve text messages from your android phone (using the same app).

Google has a lot of choices when it comes to user facing technologies, like Polymer (youtube runs on polymer/web components) and jsaction (gmail uses this). So the fact Angular isn’t chosen 100% all the time is reasonable due to the nature of Google (how many chat apps do they offer?)

Finally due to the nature of all SPA frameworks, and the fact were talking about a search engine company, Angular and most other SPA frameworks are not that great for public facing sites that want to leverage SEO. Unless you invest into some kind of hybrid (Angular universal), server-side rendering or are totally fine just being indexed properly by Google. (Google is the only search engine that runs JS when indexing pages)


PS. I wanted to bring in what I’ve found about Google’s use of Angular, as I spent a good time on the question of “Why aren’t there more public facing Google built Angular sites?”. Angular, like almost everything else, is just a tool that should be used properly for the proper use-case. Its not a be all end all solution, nothing is.

If it slow with smaller test-cases, how could it be faster with bigger :slight_smile:

You’re going to have to define speed, “slow” in the context of a complex web application could mean one of a thousand different things, and if it is slow, says nothing about trade-offs made (for example accepting it is slower to render x in exchange for ease of development of y)

Also, re Google itself using Angular for anything much: it’s 3 years old, I wouldn’t expect it to be used for anything public facing except possibly some new marketing sites and maybe tiny greenfield web apps built for much less important parts of the business. Even AngularJS, there are very few public-facing Google apps, and that’s not surprising at all (+ where would the financial incentive be to upgrade the AngularJS apps to Angular?).

https://developers.google.com/speed/pagespeed/insights/

On the front end, there really is such a thing as “fast enough”. You’re not processing more requests or taking less memory or whatever by using 5% of the client’s CPU instead of 2%, so after you’re finished with optimizing on the backend with things like splitting, compression, lazy loading and so forth, you make the user eat the rest of the cost. And unless they’re in Africa with 90’s hardware and an oversubscribed 3G tower, they won’t notice. Benchmarks at that point are dick-measuring contests.

1 Like

Again, you still need to define speed. I’m not trying to have a go, it’s just that saying “it’s slow” in conversations like this is normally a non sequitur. The point of Angular, or any FE framework, is that it gives you a toolkit to abstract away the complexities of building a SPA. Applying pagespeed to a toy hello world app will give you some useful hints as to what may make it perceptually faster, but completely misses context, such as slow compared to what? Or cost of training developers vs other (unnamed) framework option, or commercial support, or whether speed is at all relevant (Angular is pretty useful for throwing up dashboards and other internal tools, in those cases, raw speed isn’t hugely important)

I’d compare it to algorithm complexity.
Insertion sort can be considered “fast” for sorting smaller arrays.

Where as something like heap sort is vastly slower and complex for sorting smaller arrays, but handles larger arrays extremely well.

Both will get the job done, but the better tool depends upon the use-case. You probably wouldn’t use heap sort to sort the cars you own by age. (unless your a car collector) On the flip side you definitely wouldn’t use insertion sort to sort an array of 200+ records, let alone sorting thousands or millions records. (Unless you like the idea of waiting thousands of years for the algorithm to finish)

In the same vein, Angular’s heavy handed approach to building web applications has a lot of upfront costs, but once the code base reaches a certain size, and or complexity, the bootstrapping costs of an Angular app are made up with more efficient code later after before and after compile. I pointed out a good amount of reasons above :slight_smile:

I was about to select Angular for my projects, so I build a small test site in order to evaluate. I found it hard to grasp and control. Layer upon layer. The relative “simplicity” became a limitation. So I started to evaluate Golang (also from Google) and get about the double speed and way easier to control.

http://94.237.25.207 (Angular 7 + nginx) PageSpeed 52
https://gowebstatic.tk (Golang + built in server) PageSpeed 99

But this is as always about preferences. Google Speed is one of the ways to evaluate speed.

I haven’t done much with it but the first time I saw pipe functions, I was like “that’s cool”

You can compare Go to Angular, but you either have to:

  • write a browser in Go and write an implementation of JS for it in Go (rather than C/C++). And then use [a ported version of] Angular there to compare speed.
  • build a version of Angular in Go and compile the code to WASM and load that. That’s significantly easier but probably not technically possible at this point in time.

You aren’t comparing them at the minute, you’re comparing two completely different things – simple server rendered HTML with a single HTML page running a complex JavaScript application. Obviously the former is quicker to load individual pages. But that information is of no help if I want to build a single page app, or as the OP is doing, assessing which SPA framework would be easiest for him to learn.

This is a kernel of good point though, you don’t need a JS single page app much of the time.

I have use both react and angular, originally i picked up react as my first front framework but switched to angular recently because of my job requirements.

I will say the learn cuve is really steep and can be overwhelming especially for a beginner not only you have to learn typescript but new concepts like dependency injection , mvc and rxjs.

I switched over 2 weeks ago from react and i still struggling with alot of things that i could have done in react easily.

Despite the learn curve my opinion is that angular is easier to work with teams since the framework dictates how you write the code, compared to react being a library requires you to have a style guide to work in a team.

Angular is also all in one , providing all the tools you need wheras react you have to install different dependecies like styled components, axios etc yourself.

My advice if you are new go with react , since its the easiest and most supported framework , so its easier to seek help and guidance then move on to others if you need to.

1 Like

The OP question was “thoughts on Angular”. And my thoughts was (as a newbie) that I found Angular slow (measured by PageSpeed) and a bit overwhelming to grasp. YMMV.

You’re not at all wrong Sibert. And speed depends on context. Hand coded straight html and js (no jquery) with css from someone who has years of experience, may mean that angular is actually slower in development AND loading speed.
React and Vue also has been proven on several counts, to be faster and easier to pick up. But because angular is designed for teams and enterprises, you will see a level of coding consistency that simply won’t be replicated in other languages. Not to mention job openings reflecting the desire of larger companies to hire angular over even react js developers because a bonafide angular dev can pick up another angular dev’s work relatively easily.
In short, it’s really difficult if impossible to write unintelligible custom spaghetti code with zero standards in angular and get something to work reasonably well.
But that’s not without issues for the angular developer him/herself…
https://hackernoon.com/why-angular-made-me-quit-web-dev-f63b83a157af

Well, I have months of experience and despite my limited knowledge, I get about the double speed. :slight_smile: And using Golang templates reminds me about Angular. But way faster and simpler to adopt.

I say do what you’re comfortable with and then if you’re seeing somewhat of a roadblock in what kind of front end positions you can apply for, then learn by demand.

From my searching 3 times a week there’s a lot of interest in angular, then c# and at times java. None are sexy nor my strengths, I’m a native js, html5, mysql type but after years working as a freelancer and small company dev, I’m shamelessly interested in job stability and great (government) hours.

If you’re a soul who prefers absolute flexibility, small company startups and easy coding/debugging, I would not recommend angular. Vue is very popular as well, and regarded as “better” than reactjs by its fans.

1 Like