The article presents my opinion on why AngularJS is popularly known as framework with a steep learning curve. After having spent so much time with AngularJS, where I wrote few Angular applications (one of them is http://function-point-analysis.appspot.com), and also deep dived into the AngularJS code, I ended up building a set of opinion on why at all is Angular said to have deep learning curve.
Before going into the details, I must say that off-late both, server-side and UI programmers are found to be digging into the AngularJS land and both of them have consistently echoed about the toughness of land 🙂 at the surface level. Thinking about it, one could come up with different reasons on why AngularJS is hard to dig in for both the classes of developers. Following are some of them:
Why AngularJS seems to have Deep Learning Curve for Server-Side Developers?
- Err…AngularJS is a Dependency Injection based framework?: This presents problem right in the start when the server-side developers start with AngularJS. Some of the questions they struggle to find answer in their mind and elsewhere on webpages are following:
- Why is there a need of dependency injection with UI programming when Javascript is mostly about writing functions and getting things done? Moreover, my UI developer friends say that they have jQuery as their favorite JS library which serves all that they need whenever they are needed to do Javascript programming and manipulate DOM. Then, why do we need something like dependency injection? In addition, the server-side developers are used to working with one or more dependency injection framework (such as Spring for Java) where they have learnt to inject dependency for different reasons sighted by the framework. All of sudden, trying to learn AngularJS in light of dependency injection present them with one or more challenges primarily because they try to apply their existing understanding of DI with Angular and soon start getting frustated.
- What is required to be injected? Actually speaking, many server-side developers are not very familiar with the fact that Javascript can also be written using object-oriented programming & related concepts.
- Okay, how does DI happen? Is it using some configuration file that developers has to write separately or is it done using some sort of annotations?
- And, what the heck has MVC got to do with Javascript? Well, this presents one of the biggest challenge in server-side developers’ mind. They try to equate or apply their understanding of MVC on server-side programming while learning AngularJS. And, this is where some of them, if not most, get defeated.
- Huh…what is this whole fuss about testability with Javascript? Why one needs to write testable Javascript code?
Why AngularJS seems to have Steep Learning Curve for UI Developers?
- What is this “Object” we are talking about? Many rookies to average UI developers that I have met, they have been still writing Javascript using functions and jQuery, a very popular Javascript library that helps to manipulate with DOM and in turn, manipulate related HTML pages. Then, why do I need to care about writing Javascript code in object-oriented manner.
- What the hell is this dependency injection? Why do I need it? Again, I am getting my work done with jQuery and some functional programming. Why do I need to care about DI which I have known as a object lifecycle management related framework for my server-side developer friends.
- My goodness, now you are pushing MVC in its totality on me when I am comfortable taking care of “View” part in my existing world and server-side developers worry about Controller (C) and Model (M).
- Testability & Javascript…why? 🙂 Well, there are test engineers to test the UI that I develop. Why should I care about testability of my Javascript code. And, even I need to care, I am not writing a rocket launcher, that I would be mandated to write unit tests for my Javascript code. Additionally, where is the time to write these unit tests when there are a bunch of legacy JS code which I have to maintain. Give me a break.
- And, why new directives when I am OK with existing HTML directives & jQuery (thankfully). Why do I need to worry about custom directives provided by Angular and the ones that I could as well write. huh!
- Is jQuery not enough for all that I need? Then, Why learn AngularJS?
Please note that above are some of the comments I came across while talking with server-side and UI developers in addition to my own thoughts.:-) Please feel free to comment/suggest.
Given that above are some of the reasons why developers, in general, find it difficult to get started with AngularJS, following are some pages which represents reasons on “why learn angularjs“.
- 10 reasons why developers should learn AngularJS
- 10 reasons why one should consider adopting AngularJS
- Given you are very familiar with jQuery, why Angular?
- What is AngularJS?
[adsenseyu1]
Latest posts by Ajitesh Kumar (see all)
- Confounder Features & Machine Learning Models: Examples - October 2, 2024
- Credit Card Fraud Detection & Machine Learning - September 26, 2024
- Neural Network Types & Real-life Examples - September 24, 2024
This is a very good article. Thanks for the post.
Maybe not an issue for UI developers since they are probably know JavaScript, but may individuals who come from a traditional programming language seem to have a difficult time picking up on prototypical inheritance. Knowing Prototypical inheritance is a must when discussing scope in AngularJS. And then it is also needed when discussing directives and how scopes work directives.
Excellent analysis…let me think about it…:-)
I haven’t used Angular but I am aware of its basics. Are DI, MVC and testability concepts really what it makes it hard to learn?! Maybe I should give it a try.