IdeaCoding Lab
Published in

IdeaCoding Lab

Does Angular really suck: why I have to disagree!

“Give me six hours to chop down a tree and I will spend the first four sharpening the ax.” Abraham Lincoln

“Every web developer relies heavily on one web framework or another
(sometimes more if their services have different requirements) and
companies will rely on many frameworks, but each has its own pros and
cons.” Jay Bell, Greg Magolan, David Guijarro, Adrien de Peretti, Patrick Housley

A student of mine, from #superprof, where I teach online private lessons, sent me this article. Should you need any help with Angular, please, just let me know!! 🚀🚀🚀

I found the article interesting, and my post on Linkedin gain certain interaction. Thus, I found it worth to write about it. Feel free to let your thoughts on the comments section, just make sure to be polite 💪🥰❤; let´s not give them reasons to call us barbarians.🤣🤣🤣🤣

I have to say that my experience with #angular was love at first sight. Of course, it seems he has a point. I agree that if you HAVE to use something, it can be painful, especially Angular that is slow to learn; anything in life can be painful if you have to do/learn. The first time I had to read “Dom Casmuro” (Brazilian literature), I hated it. The second time, I wanted to read, now it is one of my favorite books.

When I started teaching, physics and math, I remember that soon I understood that most students that came to me were traumatized by their professors: the first thing I would do was treating this trauma, showing them that they could learn.

I remember a girl that came to me for learning math, she was afraid of doing things in front of me; soon she was doing math on her own; and was so happy that wanted to pay me; at the time, I used to teach for free. I am not a psychologist, in fact, a friend suggested me to do physiology when I was young, but if you want someone to learn, make sure they enjoy it! And of course, make sure to treat their difficulties with respect, we all have difficulties, even if you cannot see it now.

Angular can take longer to learn, but from my experience, it is worth it, at least, I found it. Once you get things working, it is amazing. I have already heard that it is slow to run. Indeed, for programming, it is slow since it runs on live memory, and if your computer happens to be slow, it can be painful. Nonetheless, once you do the “ng build”, things become fast. Remember that Angular is a Single Page Application, and it has options to optimize their performance, e.g., lazy load.

Regarding the community being toxic, I did not notice that. Computer programming in general can be toxic, I believe; see Stack Overflow, the kind of answers you may get, and downvotes for no reason whatsoever. See this video “Stack Overflow is full of idiots.”[2] I do not agree 100%, but the guy has a point. See also this essay I have written to Geek Culture: “Computer programmers behave like drug addicted”.

What about #nestjs??? it supposes to be an “Angular version of #expressjs “. Hopefully, if it is the case, I hope that this new community would grow better.

Can you tell how happy I am here as I teach Angular ? ❤🤣🤣🤣🤣💪🥰

My history with Angular

I started using Angular on my second postdoc, see here the scientific paper[3] we published. In my case, I was given freedom to choose. They did not have a framework, it was zero. Initially, I thought I would work with biomathematics, my main expertise at the moment. Things got complicated, and also interesting. Since I am a learner, I love learning new things, I started to really learning. Angular appeared to me first as a suggestion from one of the authors of the paper, Fabrício, and then I found the MEAN stack. At the time, I considered React, but not Vue, which came to me latter.

A good experience

I love how Angular is structured: components, and the components work as black boxes. I have no idea about React, but Angular makes unit testing easier; and for me as an applied mathematician, easier to understand. Components makes it somehow straightforward to build the app. Regarding tests, as a result of private lessons, I have learnt that they created Angular to be tested, it is quite easy to test with Karma/Jasmine.

A bad experience

Of course, I had bad experiences as well. Once I lost two weeks of work because my app stopped working, for no clear reason. I had to rebuild the app from scratch; I realized after 2 weeks of work that Font Awesome was creating a conflict with Angular; but the entire system went down. Thus, here is goes the biggest setback from Angular: a single problem makes the entire app goes down, and it is hard to find the mistake, pretty hard. A student of mine said that it is hard to spot mistakes, for me, maybe due to practice, I find it easier now. In the beginning, it was hard: Stack Overflow helped me a lot, just place the mistake at Google and most of the time somebody else already faced the same problem, and solved!

However, to be fair, the same happened to me with Matlab. I lost two weeks of numerical calculations once because I misplaced a common, and ignored a strange behavior. Thus, as you can see, it is more programming, speficity from each language/framework, than the framework itself.

The hardest part to learn

The hardest part to learn, for me, was “subscribe”, but I asked another student of mine, and she said “pipes”; indeed, it is also hard to learn. However, see that I believe her difficulty and mine, tells more about ourself than about Angular. Once I gave a lecture to several medical doctors, about Matlab, anomalously, one asked, “what is a matrix?”. I was surprised, but now I see, why a medical doctors should know about matrix??? Matlab stands for Matrix Lab.

The most appealing feature to me

The most appealing feature to me is components. I can see in my head the boxes. Another feature is how it is programmed, internally. I found it elegant, how much you can do with little lines of code.

Essentially….

Once I read “Give me six hours to chop down a tree and I will spend the first four sharpening the ax.” Abraham Lincoln; I love this sentence because I believe this is life.

For sure you cannot foresee all the setbacks in the future, but we can at least consider the evidences we have now. When you pick a framework/library, you are going to have advantages and disadvantages, in optimization we say: “no free lunch”; you must know your problem, you must know your tools.

Take the case of Airbnb, they started with React Native[4], now they are changing. Once I saw in a talk that when you design software, travel light if you cannot predict anything, most of the time we cannot, as said Zygmunt Bauman, we live in a “liquid world”. I would add, travel light, but consider potential growths.

In the case of a company, maybe they should select Angular developers if they need them, that would make the process quite easy; and make sure to consider the strengths and weakness of each framework/library. There are plenty of Angular developers, like myself, anxious to use their skills! If you pick someone from, say React, and I had students with this situation, either make sure to take that into account, or pick someone already familiar with Angular. You cannot know everything, I am myself always learning, I am learning unit test now, and meanwhile, learning new tricks in Angular; I learn a lot from my students.

To close: let’s try not to generalize individual experiences! We all have tendencies, backgrounds, and so forth, that makes our learning course slower or faster, pleasant or painful. And, should you need any help, no proud, I am here for you, as says Thich Nhat Hanh.

==

Jorge Guerra Pires, PhD

MEAN stack instructor at Superprof, profile here

==

Article mentioned here on Linkedin

[2] https://www.youtube.com/watch?v=I_ZK0t9-llo

[3] https://www.frontiersin.org/articles/10.3389/fgene.2021.624259/full

[4] https://softwareengineeringdaily.com/2018/09/24/show-summary-react-native-at-airbnb/

Buy me a coffee ☕☕☕☕☕ or a book!! 📚📚📚📚📚 If any of this content was useful to you! it is an one time donation, no need to donate again!

I have a course on the subject. More here

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store