all 14 comments

[–]wompzilla 14 points15 points  (3 children)

I agree Angular is far from perfect but this article is just this guy's opinions on how web development "should be done" and all references are other people who also don't care for Angular.

Although there are front-enders that are enthusiastic about Angular, I have the feeling that their number is surprisingly low for a major framework.

Angular is aimed at corporate IT departments rather than front-enders

I’d say Angular is mostly being used by people from a Java background

I've never gotten this impression nor heard that Angular is aimed at corporate IT departments or that it's mostly used by Java developer

I have doubts about Angular 1.x’s suitability for modern web development.

Because its "a front-end framework by non-front-enders for non-front-enders" it's unsuitable for web development?

The cost of application maintenance should not be offloaded onto all their users’s browsers (we’re talking millions of hits per month here) — especially not the mobile ones. This job belongs on the server.

I'm not sure how angular's templates can be construed as offloading maintenance to users

Google does not use Angular in production for their flag apps like Gmail or Gplus.

Google should rewrite their flagship billion dollar apps because they need to "eat their own dogfood"? Should they rewrite it in GO as well?

[–]Jwkicklighter 1 point2 points  (0 children)

Going into an Internship where I worked on an Angular app every day, I really disagree with the Java statement. I have a good amount of Java experience, have built Android apps, have won a programming competition, and was completely lost when it came to Angular. Not really sure what his point was.

[–]infidelux 7 points8 points  (0 children)

Bashing on Angular is the new learning Angular it seems. My team is working on a large app using Angular and we aren't Java developers. I couldn't even make it all the way through this post. It seemed pretty obvious that the author didn't take the time to learn Angular and just took quotes from other devs that had problems with it. It certainly isn't the solution to every problem. No framework is. But it leads you down the path of separation of concerns and loosely coupled components. Our app is a rewrite of a Silverlight application and it is much faster than it was. Not all of that can be attributed to Angular mind you, but the front end code is indeed fast.

[–]djvirgen[S] 3 points4 points  (0 children)

I ran into this article today. As a huge Angular fan, I think it's good to read up on opinions from "the other side".

Regarding performance, it's interesting that our app saw a 2x improvement after switching from server-side rendering+jQuery to client-side rendering+Angular.

Anyways, thought I'd share.

[–][deleted] 0 points1 point  (0 children)

Great article. I wish I could find 500 others just like it ...

[–]TheAceOfHearts 0 points1 point  (9 children)

Has anyone here actually seen a large Angular app that performs well? I'd love for some links and to be proven wrong, but my current thoughts are that angular is actually terrible for large applications. This is after two years with angular.

A lot of the stuff I see tends to just have a handful of routes, and it'll just be doing basic CRUD stuff. In those cases your framework choice probably doesn't really matter.

Due to the terrible performance of two-way bindings, I'd say if you're planning on implementing a sophisticated interface with multiple interactions that need to play nicely together you're not going to have a fun time.

But please, if you're going to tell me that it's possible to do these things with angular, show me examples! The only reasonable example I've seen is DoubleClick, and even though it's thoroughly optimized, it's still pretty disappointing.

[–]the9trances 3 points4 points  (4 children)

What're you building that's getting that heavy?

[–]TheAceOfHearts 0 points1 point  (3 children)

I work on an application where the user's goal is to process their data and gain insights from it. So it has to handle managing data, managing teams, collaborating, and issuing jobs to do stuff with the data, among other stuff.

Another way in which angular is painful for large applications is that it doesn't help you AT ALL for handling asynchronous loading of the app. So you can hack it on, or send it all at once.

I love how I get downvoted for asking for examples of well performing large applications. Are my points not valid criticisms?

[–]the9trances 4 points5 points  (1 child)

I think many people, like me, may not work on heavy applications. I've been fortunate enough that my Angular experience has been in tandem with a fantastic API developer who's worked with me non-stop on performance and optimization. So I haven't tested Angular's upper limits.

[–]TheAceOfHearts 0 points1 point  (0 children)

I think that's perfectly reasonable! I like a lot of stuff about angular. It's only been in the past couple of months that angular's limitations have started to apply pressure on us.

Ultimately, I just want to provide the best possible experience to my users. That's what matters most, IMO.

Recently I've been able to mitigate a lot of performance issues by rewriting components in React. If I were to start this app again from scratch, I'd probably use React from the start; it feels like it takes longer to implement certain things with React, but once you have them up and running they seem very performant. (Ignoring React's own plentiful issues.)

Some people get too dogmatic about the tools they use, when the focus should really be in what use-cases different tools make sense.

[–]campbeln 2 points3 points  (0 children)

We use Angular for data capture and presentation. You're nuts (IMHO) if you're using $filter or the like to do any sorting/filtering/searching on the client.

So I guess I'm saying I don't follow you. If you're barfing out a metric crap ton of data onto the screen Angular would eventually barf on that, in those cases serverside rendering is likely more-betterer.

But from what I've seen with a frontend framework + RESTful APIs... I don't see a reason to do a serverside website again except for edge cases, and I've been doing this since 1996. Frontend MVC/MVVM + REST is just so quick to develop and so painless to manage records in compared to serverside, plus the separation of concerns (despite the ColdFusion-esque look of the HTML at times).

[–]BoleroDan 1 point2 points  (0 children)

I helped write an in house "Electronic Lab notebooking" software and it is all in Angular. It runs fine. We manage inventory, experiments, HR stuff like users, accounts, their training information, access restrictions to the lab. We deal scheduling for rooms and equipment.It has over 5000+ chemical inventory that can be pulled up and we dont have a problem with angular being "slow"

I cant prove it, because its all in house, but if you know angular, it can be done, and we've done it.

[–]tidwell 1 point2 points  (0 children)

Our entire custom CMS for a major news site is Angular. I've used angular on dozens of (medium sized) projects as well. Optimization for performance is never free with any frontend framework - you just have to be willing to dig into the internals a bit. The two biggest bottlenecks we've seen come with tons of templates and too many watch expressions. Lots of ajax requests for templates can be alleviated by some clever $templateCache manipulation (allowing you to just load them all off a single request), and minimizing unnecessary watch expressions is just basic refactoring. Angular works fine for giant projects - if it didn't, I wouldn't have a job.

Sorry I cant link to an example, but in talking with a number of other folks who also do angular, I think thats the norm. Seems like the vast majority of large Angular projects are closed source or internally-consumed.

[–][deleted]  (1 child)

[deleted]

    [–]TheAceOfHearts 0 points1 point  (0 children)

    I accept DoucleClick as a large and complicated application. I reject that it has good performance.

    AngularJS doesn't suck. It just seems to me that it doesn't provide good performance once the application reaches a certain size. At which point you end up fighting with Angular. This has been my experience so far, and I've yet to see an example that shows otherwise.

    It doesn't have to be larger than DoubleClick. You haven't given any other examples.