6 ms·
For those folks who have used Angular in major projects, but also have experience with other frameworks, what do you think? I ask because this post is a bit li
by cl42 12y ago
For those folks who have used Angular in major projects, but also have experience with other frameworks, what do you think?
I ask because this post is a bit light on details and feels a bit angry to me. I'm not a front-end developer, but our dev team has not complained about Angular and I'm wondering if I'm missing something.
- sassyalex 12y agoI used Angular to build keymetrics.io and it works like a charm. I really love the structure Angular brought to our front-end softwares. At some point, we may include React to optimize the rendering of our realtime dashboard.
- lmaran 12y agoI use keymetrics.io (to monitor my Node/PM2 app) and it works like a charm, too (:
- cheriot 12y agoI built reasonably thick client projects with jQuery and a home grown system before moving to Angular and it's been a godsend. I've not done anything significant in the other major frameworks and it looks like there's some genuine innovation in React for people that don't mind the IP issue. But... I just don't know where guys like the author are coming from. Angular ain't perfect, but it's still pretty damn good. "The very fact that an article exists which prescribes that you should be mindful of the order in which you write your HTML attributes in Angular to optimize performance and other quirks is staggering." No, the article linked to in support of this statement is talking about readability. Angular directives have a priority attribute that determines the order they're evaluated in. Hating on Angular is just a trendy thing right now.
- anthonyp 12y agoWe use Angular over at zenginehq.com. Not only did we build an entire business process management platform on top of it; we even exposed a JS plugin architecture that allows developers to create Angular plugins on top of the platform. Really cool stuff. Sure, Angular has its flaws & quirks, just like any framework. But it gets so many things right that it's worth sticking with it, IMHO.
- lukasm 12y agoI've been using Angular 1.x for a year in various projects. After that I came to conclusion that for my side project I will use React. Main reason is React is better than Angular 1.x and Angular 2.0 is not ready. Cons: - I can chuck away my angular 1.x knowledge, since Angular 2.0 is going to be completely different than 1.x (like Django and Node) - Directives are such a pain to write, test, maintain, compose and reuse - Doesn't scale (writing and debugging very complex app) and also - I had to dig deep down into internals to get how something works - Angular has very step learning curve - Harder to write isomorphic app Having said that, Angular is an enormous improvement comparing to jQuery. If you start a new project, evaluate all options and pick what works best for you.
- zeendo 12y agoWhat do you mean by 'isomorphic app' ?
- lukasm 12y agohttp://nerds.airbnb.com/isomorphic-javascript-future-web-apps/ http://nerds.airbnb.com/isomorphic-javascript-future-web-app...
- touristtam 12y agoThanks for the link, I have never seen this article before and it is resonating with me quite strongly. Although I like the NodeJS library for what they have achieved there. I really don't like having to use javascript on the server side. I guess it is down to personal preferences as far as I am concerned.
- stupidcar 12y agoI have been using Angular for the past two years as the primary front-end dev in a start-up. Prior to that I spent ten years doing web development, both back-end and front-end, with a wide variety of libraries and frameworks. Angular is still, by far, the best framework I have ever used. I have zero regrets about choosing it. This post reflects the pathological nonsense that pervades certain quarters of front-end development. It demonstrates the following fallacies: 1. If a technology has any flaws, they render the whole thing worthless. 2. New technologies that I haven't tried are probably perfect and won't require any hacks. 3. Kids these days aren't doing any real programming like we did back when we coded in Backbone / jQuery / Raw JS / VBScript / Java / C++ / COBOL / Assembly / Punch-cards. 4. Syntactic sugar and abstractions are inherently bad, whereas writing a lot of boilerplate code is good for the soul. 5. Someone I respect doesn't like something, so I shouldn't like it either. 6. Old, widely deployed technologies are over-complicated, because people have built more complex systems with them than with new technologies, and thus have been forced to tackle more complex requirements. 7. I have worked with this technology for a while, and built up a corpus of specialist knowledge and hacks, therefore it is more flawed and than these newer technologies, which I haven't worked with and therefore only understand in a shallow way, and therefore seem simpler. 8. Acquiring specialist knowledge is bad, and not the reason I am paid to do what I do.
- wjagodfrey 12y ago9 years checking in. Front and back end. Previously spent 1.3 years working on a behemoth of an Angular app for a corporate client. No complaints. Agree with your analysis of the article.
- pjzedalis 12y agoI laughed and cried.
- woah 12y agoGood points, but angular has the very real drawback of useless terminology (transclude?) and a lot of wheel-reinvention (the several strange types of components). It's a pretty standard observable framework dressed up with a bunch of unnecessary hocus pocus (and pretty bad performance). I've strongly disliked angular as long as I've been able to code. On the other hand, I like react a lot even though it has a similar learning curve. React may have strange and unfamiliar concepts, but they are actually new concepts in ui development that make things less error prone, very performant, and cross platform. If the angular team was not funded by Google, I doubt any of them would be working on it any more. Actually, with angular 2, that's the case anyway. If you don't like dom-diffing frameworks, maybe check out vuejs. This is an observable framework like angular, but it's performance is acceptable and its api is very clean and makes sense.
- Bahamut 12y agoOverall, I like what Angular v1 does and how easy it is to be productive in it - I have helped save multiple companies' products (medium-sized codebases) because Angular can be extremely quick to iterate on top of and gives you so many tools for that productivity, while unit testing much of it (although the unit testing situation is not quite perfect). I like using Angular relative to Backbone and Ember, although my experience with Ember was last a year ago, and the framework has progressed a lot since then. I like React over Angular 1 currently, especially since it supports robust server-side rendering solutions. React takes some ideas from Angular such as not being opinionated with the models, but makes writing the core of its components much nicer than Angular 1's directives. It also does not take much opinions over the service architecture, which also makes me happy, but the tradeoff is that it leaves a lot of developers in the dark as far as how to organize code with it - that is why Facebook pushed the Flux pattern very strongly. Angular 2 definitely took a lot of React's good points and integrated them in better ways into Angular 2, or have plans to integrate them. Ideas such as supporting immutable data, virtual DOM (well, at least something similar to virtual DOM anyhow), and unidirectional data flow make their way into Angular 2. Robust dependency injection (no more using $inject or the hacky array syntax for DI) and better API for creating components come as more evolutionary changes from Angular 1. The declarative templates are also a lot simpler, as expression support is more limited than the broad JavaScript-like syntax supported in Angular 1. Shadow DOM being a first class citizen of the framework makes having to worry about component CSS being clobbered a problem of yesterday. Overall, I am excited as a frontend developer - there are a lot of exciting things happening in the frontend world, and the ecosystem is maturing by leaps and bounds.
- digitalzombie 12y ago2.0 is very valid. They let it loose and a few devs, including myself have put off fully investing in Angular 1.0. I was investing in Angular 1.0 until this happen. While working professionally, my team lead chosen Ember.JS. Anyway, in general Angular have a very different way to do thing and you basically create html element and the js will defined the html behavior. In general, I think the announcement of Angular 2 have slowed down the momentum of 1.0 very much. Angular 2 from what people have been saying is totally completely different from 1 and it could be name something else and noone could tell it's an angular framework from 1. With all the js front end framework out there, I think it's too wild west and I rather let this area mature much more before choosing one. Unless you can afford to rewrite frontend code every few years... I'd stick with backend rendering web pages, plus it's SEO friendly.
- lobo_tuerto 12y agoAngular can be SEO friendly too: http://www.ng-newsletter.com/posts/serious-angular-seo.html http://www.ng-newsletter.com/posts/serious-angular-seo.html
- lobo_tuerto 12y agoI have used Angular in a major project and can say most problems go away if you AND your team follow something like the AngularJS Style Guide early on: https://github.com/johnpapa/angular-styleguide https://github.com/johnpapa/angular-styleguide I haven't had any beef with Angular so far, and really enjoy working with it. But I understand that one size doesn't fit all.
- aikah 12y agoI love angular 1.x but can't recommend it given how its team is ready to break everything to follow the latest fads of javascript development. I want something stable,not something that will drastically change with each version. I certainly don't want something "for the future" that requires an asset pipeline because ES6 is "cooler". Truth is, I love angular first and foremost for its dependency injection, but since I wrote my own container, I will probably ditch it,sooner or later.
- woah 12y agoWhat advantage does DI have over modules?
- notduncansmith 12y agoInjected dependencies are more easily stubbed/mocked for testing purposes.
- dragonwriter 12y agoThat is not actually all that true in JS, or generally any languages where without static types or classes that aren't duck-typed objects themselves. Its true in C++/Java/C#, but less so in JS, Ruby, etc. If you can change what a dependency refers to without using injection, as you generally can in the fact namuc languages, injection is less useful.
- notduncansmith 12y agoIt's not so much about duck typing, as it is about private/public variables and how they relate to a module's interface. `require`d modules are essentially private in Javascript. Consider the following: // foo.js var request = require('request'); module.exports = function (url) { request.get(url, function (err, body) { // ... business logic here. }); } Here, if one wanted to test the actual business logic (without implicitly testing the request module as well), one would have to refactor the code such that the callback is somehow exposed to the test suite. Additionally, one would not be able to run such tests in isolation (i.e. without an internet connection), and the test speed would depend on network latency. Now consider another example: // injected.js module.exports = function (request) { return function (url) { request.get(url, callback); } } In this version, the request library is taken as an argument to the module and thus can have a mocked version injected for testing purposes.
- serve_yay 12y agoA little over a year ago I got roped into using Angular, I was put on a team that had built an Angular app and needed a bunch of features added before it shipped. I learned a lot about it in a short time and came to really dislike the way apps get built with it. It makes it hard to program things "outside" Angular so it ends up consuming everything. Views and scope are a disaster. Dirty-checking was a bad idea that killed the performance of our app. There are just so many damn concepts everywhere! It's overcomplicated and slow. I'm kinda pissed with Angular too, to be honest. I agree with the author that there were some pretty bad ideas in there, and it grew in popularity so quickly that a lot of people are going to be dealing with those problems for a while. Personally, I left the job I was speaking of earlier in this post, and I don't use all-consuming frameworks like that anymore. Whatever work they save you in the beginning becomes a prison sentence later on when you're forced to do things their way.