Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not at all! Honestly there are some WONDERFUL things about angular. There are some bad ones too.

- Polling for changes vs. event driven - two way data bindings causing infinite redraw loops. - "feels like O(n^2)" performance on ng-repeats / large pages

but things like the templating, directives, data-binding... they are all really good things.

And dependency injection! They have really moved the needle forward on client side testing.

No angular in itself is not a mistake at all. There are mistakes without question. I suspect the angular 2.0 release will address many of the major criticisms. Though, I haven't read much about it yet.



ng-if, ng-switch, ng-repeat? There's already a language in the browser that does these things, it's called JavaScript.

Why do you even need dependency injection and singleton services and factories in a dynamic language with closures and first-class functions? You don't. Client-side testing works fine without DI. Angular is just a way to do Java in JavaScript. It's a pile of unnecessary complexity designed to sell to enterprises that love over-designed Java projects and want to make client-side development feel more similar to what they know. In that regard I suppose Angular is a little better than Google Web Toolkit, but that isn't saying much.


> ng-if, ng-switch, ng-repeat? There's already a language in the browser that does these things, it's called JavaScript.

It's nice to have a largely declarative way to specify markup but still allow simple loops and conditionals.

Hasn't every template language in the world has come to a similar conclusion?


> Hasn't every template language in the world has come to a similar conclusion?

No, not even every mainstream template language. For example, I still use ERB and EJS extensively, and so do many other engineers. ERB and EJS use the control flow constructs of the underlying languages (Ruby and JS, respectively).

There is of course debate about whether templates should expose the full power of a programming language. I have tried templating languages that do and ones that don't. For now, I'm sticking with templates that let me mix in arbitrary code as I see fit. Could I abuse that power and make a mess? Absolutely. But I try not to, and my code stays pretty maintainable.


The overarching problem here is herd mentality. Using Angular is a bad idea, but lots of companies are using it anyway because The Herd stampeded towards the new shiny thing, mostly because of how cool two-way binding looked in Angular's demo toy app.

Now all those companies are bogged down by Angular, but feel like ejecting it would be too costly. Elsewhere, lots of new developers are introduced to Angular and invest time and effort into learning it because they don't know any better.

Herd mentality is a big problem. It's basically the polar opposite of thinking for yourself, and as such, extremely detrimental in other aspects too.


> Using Angular is a bad idea, but lots of companies are using it anyway because The Herd stampeded towards the new shiny thing

The most ironic thing in all this is that your comment is still full of Herd mentality, except that it goes the other way.

Angular is a framework, period. Using it is neither a good or a bad idea, it all depends on the people who actually use it.


The couple of times I've worked with angular, some things went incredibly smoothly, and when you hit those edges, it really reminded me of ASP.Net 1.0, it was nice for about 80% of your workload, but the other 20% took 10x the effort, and was a much bigger headache to work around.

Honestly, if/when browsers have better support, I think something closer to Polymer may be the best of all worlds with web development... for now, I find that React code tends to be the most sensible (with a decent framework around it)... not to mention shared client-server code with node/io.js




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: