Categories: Javascript

Why AngularJS is Known to Have Steep Learning Curve?

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“.
Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. For latest updates and blogs, follow us on Twitter. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking. Check out my other blog, Revive-n-Thrive.com

View Comments

  • 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.

  • 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.

Share
Published by
Ajitesh Kumar
Tags: angularjs

Recent Posts

Bias-Variance Trade-off in Machine Learning: Examples

Last updated: 1st May, 2024 The bias-variance trade-off is a fundamental concept in machine learning…

2 hours ago

Mean Squared Error vs Cross Entropy Loss Function

Last updated: 1st May, 2024 As a data scientist, understanding the nuances of various cost…

2 hours ago

Cross Entropy Loss Explained with Python Examples

Last updated: 1st May, 2024 In this post, you will learn the concepts related to…

2 hours ago

Logistic Regression in Machine Learning: Python Example

Last updated: 26th April, 2024 In this blog post, we will discuss the logistic regression…

5 days ago

MSE vs RMSE vs MAE vs MAPE vs R-Squared: When to Use?

Last updated: 22nd April, 2024 As data scientists, we navigate a sea of metrics to…

6 days ago

Gradient Descent in Machine Learning: Python Examples

Last updated: 22nd April, 2024 This post will teach you about the gradient descent algorithm…

1 week ago