I just did some further review of angular, collecting some github statistics. I think Angular is safe at this point from a project point of view with the understanding that google can vanish at any moment and has done this before on other projects.
Linkedin is using Angular in their stack (MongoDB,ExpressJS,AngularJS,NodeJS) http://www.linkedin.com/today/post/article/20140603115714-58192521-mean-vs-lamp-web-development and this MEAN stack seems to be getting a lot of attention lately http://meanjs.org/ So consider this a +1 in principle to Angular but I'd like to see more thoughts about how it will be used. Do we want to use Angular dependency injection? Do we want to move away from AMD? Do we want to limit it's use to views and write models and business logic manually? Thanks, Caleb On 07/28/2014 04:32 PM, [email protected] wrote: > Hi caleb, > > Interesting. I’ve added this thread to > http://design.xwiki.org/xwiki/bin/view/Proposal/JavaScriptFrameworkEvaluation > > Thanks > -Vincent > > On 28 Jul 2014 at 16:56:21, Caleb James DeLisle ([email protected]) wrote: > > Since Marius wrote the FileManager application using AngularJS > and there has been some discussion about making increasing use > of it in XWiki, I wanted to share a review by someone who uses > it in his job as their entire platform. > > These are advantages and disadvantages which I determined from the chat: > > + Easy and efficient workflow (when you know it) > + Testing is easy and well understood > + Debugging is not difficult, thanks to Angular's popularity and integrated > software > + Separates model and view well (makes angular apps skinable). > - Owns your system, if angular dies you die with it > - Learning curve > - Though it separates your model and view well, you can't test your model and > controller without a DOM present (he's not sure of this). > > Although I think we need to keep investigating, I feel that > Angular warrants more investigation. > > Thanks, > Caleb > > > PS: And the actual conversation, including some useful links: > > 16:31 < cjd> gimme teh infoz > 16:32 < SomeoneWeird> well, there's a lot of (maybe too much) magic going on > behind the scenes > 16:32 < SomeoneWeird> all the DI stuff, scope tracking > 16:32 < SomeoneWeird> sticking one broken thing in the digest loop will kill > the entire app > 16:32 < cjd> /nod > 16:32 < SomeoneWeird> but.. once you know how it works, it's great > 16:33 < SomeoneWeird> it's entire stdlib is all promises (which I don't care > for, but because it's ALL promises, it makes it a breeze to work with) > 16:33 < SomeoneWeird> plus, the DI system is awsm > 16:33 < cjd> ok > 16:34 < SomeoneWeird> scoping it out because you wanna use it? > 16:34 < cjd> xwiki is interested in it > 16:34 < cjd> do you use it as a system to control your entire app or as a > library? > 16:34 < SomeoneWeird> it's our entire thing > 16:34 < cjd> ok > 16:34 < SomeoneWeird> our CMS is built up of multiple angular apps > 16:34 < SomeoneWeird> which are nested > 16:35 < cjd> how is it for debugging? > 16:36 < SomeoneWeird> not terrible, the errors it gives up are sometimes > broken (but we're using a slightly outdated version), but there's also > batarang, which is a cool ext. so you can view scope contents in your browser > > 16:36 < SomeoneWeird> > https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk?hl=en > > 16:36 < cjd> ok > 16:37 < SomeoneWeird> oh, testing > 16:37 < SomeoneWeird> is awesome > 16:37 < cjd> you can unit test in node ? > 16:37 < SomeoneWeird> built in mocking support for everything in build in > libraries > 16:37 < SomeoneWeird> cjd: probably, using phantom or something > 16:38 < cjd> ok, so you need a DOM to test > 16:38 < SomeoneWeird> hm > 16:38 < SomeoneWeird> i think > 16:38 < cjd> ok > 16:38 < SomeoneWeird> we're using karma at work > 16:39 < cjd> explain? > 16:39 < SomeoneWeird> http://karma-runner.github.io/0.12/index.html > 16:39 < SomeoneWeird> check the vid > 16:39 < cjd> ok > 16:39 < SomeoneWeird> it's a test runner for browser tests > 16:39 < SomeoneWeird> i think you can do headless stuff with it too > 16:39 < cjd> how is the seperation between your models and the views? > 16:40 < cjd> (is it skinnable?) > 16:40 < SomeoneWeird> skinnable? > 16:40 < cjd> could you write a new <fakehtml> view for a widget > 16:41 < SomeoneWeird> yes > 16:41 < cjd> so put a new skin on that widget > 16:41 < SomeoneWeird> directives > 16:41 < cjd> ok and you don't need to tinker with your model or controller > code to do that? > 16:41 < SomeoneWeird> models & views are pretty seperated, html can be > completely declarative if you want > 16:41 < cjd> ok > 16:42 < SomeoneWeird> > http://www.sitepoint.com/practical-guide-angularjs-directives/ > 16:42 < cjd> so summary: > 16:42 < SomeoneWeird> so you can define <hello>, and then bind that to a > model etc > 16:42 < cjd> + easy and efficient workflow (when you know it) > 16:42 < SomeoneWeird> but they're seperate until you do > 16:42 < cjd> + testing is easy and well understood > 16:43 < cjd> + debugging is not difficult, thanks to angular's popularity and > integrated software > 16:43 < SomeoneWeird> there is a definite learning curve though > 16:44 < cjd> - Owns your system, if angular dies you die with it > 16:44 < SomeoneWeird> especially if people are used to using jquery etc > 16:44 < cjd> - Learning curve > 16:44 < cjd> - Though it seperates your model and view well, you can't test > your model and controller without a DOM present. > 16:45 < cjd> anything to add? > 16:45 < SomeoneWeird> i'm not 100% sure on the last point > 16:45 < cjd> ok > 16:45 < cjd> can I publish this conversation? > 16:46 < SomeoneWeird> i guess, hopefully I'm not wrong about anything >.> > 16:46 < cjd> ok :) > 16:48 < SomeoneWeird> > http://www.reddit.com/r/webdev/comments/1rbz0h/is_angularjs_worth_developing_in/ > > 16:48 < SomeoneWeird> good points in here > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs > _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

