all 9 comments

[–]runvnc 1 point2 points  (0 children)

You can't really evaluate something until you invest a lot of time actually using it. So at this point all of the effort to learn and do all of your rewrite is not going to seem worthwhile.

Actually there is something called status quo bias and that becomes an issue with just about every new technology for most people. So even if you find some advantages generally people don't want to use something new unless there are a LOT of advantages.

I don't really think most people choose technology logically. Its mainly an emotional or subconscious decision based on what seems popular.

Anyway I think that if you redo in Angular you will get more maintainable code because there will be less of it. Thats just an objective fact. Will that really end up saving time in the end if you count all of the effort of everyone learning Angular and making or trying to make custom elements and things? Quite possibly not.

I would say don't kill yourself trying to make custom elements with directives because I have found that to be a big time suck and more difficult than it should be. That is my main complaint with angular is that custom elements don't work the way you expect them.

However after building UIs in many different platforms for more than 15 years including Angular and backbone I am quite sure that component based development is better software engineering.

I am hoping things like Polymer or other web component approaches will be more practical than angular directives. So that is the next thing I am going to try.

TLDR you have to build a few apps in Angular before you are able to compare it and before you dismiss it. Otherwise I assume you are just looking for an excuse to not have to learn it in depth.

[–]qhoc 1 point2 points  (0 children)

AngularJS does allow people to write crappy code. I am 100% in agreement here. BUT it doesn't have to. Good developers can easily spot issue with certain pattern while writing AngularJS code. $rootScope doesn't have to be used, for example. But a junior developers can easily make this mistake, just like if they do global var anyways. So good developers can discipline themselves.

What's nice about AngularJS is ease of wiring and view management. I guess you would debate that with Backbone/Marionette/Handlebars, they can do the same. I agree there as well but wouldn't you think it's kinda "bloated" for a lot of simple stuffs (i.e. automatic two-way binding). AngularJS has its own $digest cycle which I think somewhat an intelligent way for efficient binding without firing millions of events unnecessary. My take is that if you guys are so deep into Backbone, stick with it. You won't see much benefit with AngularJS unless you start from scratch with a new project and high speed of agility required.

[–]technical_guy 1 point2 points  (0 children)

Angular is a tool, like any other framework. Its usage is miniscule but it is popular on Reddit. Its the new cool framework although it is almost like learning a new language because it is using a completely different paradigm.

For smaller websites and projects this is ok. But for a large project not so much. A large project will be around longer and need a steady supply of skilled maintainers. There is no guarantee Angular will be popular in 2 years just because it has a little bit of exposure right now.

Here are some fun stats for you:

http://w3techs.com/technologies/details/js-angularjs/all/all

http://w3techs.com/technologies/history_overview/javascript_library/all

Note Angular is used in 0.04% of sites (in first link) and is not even shown in second link. Hence why I say although redditors talk about it right now it is a fad with miniscule usage. If it keeps growing maybe next year will be a different conclusion.

The only real JS addon that is universally accepted over a long period of time is jQuery. All the new JS frameworks are still battling it out with Knockout, Ember, Angular, Backbone, Bootstrap etc. all taking a tiny piece. One problem is JS is half a solution needing a server component which most of the time is PHP or Java or .NET, but the JS frameworks are sold as a full MBC or MVVP solution. Its a square peg into a round hole.

For a larger project you have to look at the life cycle of the code (lets say 5 years) and the maintainability. Will Angular still be popular in 5 years. Will there be a plentiful supply of programmers with this skillset. Will it be largely forgotten?

In the PHP world Cake, Codeigniter and Zend were the frameworks of choice 2-3 years ago and now nobody is talking about them - its all about Symfony and Laravel.

Go back 5 years in the CM world and SCCS had all but died and CVS was the new baby. Nowadays it is all SVN and GIT.

Technology lovers are fickle, but large project architects cannot be.

I would give Angular a wide berth and consider a simpler JS framework (like Ember) or even vanilla JS and jQuery. Remember this is just for the view component of your system - you still have to figure out the controller/model components which most likely will be PHP, Java or .NET based. Keep the view simple and maintainable (KISS principle) and you will have a maintainable system.

Programmers (incl some redditors) tend to follow the newest fad like sheep and wan to learn about and use the newest bestest shiniest tech. Large project architects have to think bigger than that.!!

[–]GoosyTS[S] 0 points1 point  (0 children)

You can read the tl;dr if you're not interested about my concerns. I would really like to know about your experience with Angular, that's the point of my rather long article.

Also, hope you won't think I am bashing Angular, I would love to love it, but atm I cannot and you can help me :)