Live data from Hacker News

Why junior developers are learning bad habits from Angular

javascriptkicks.com

91–100 of 138 posts

Re: Why junior developers are learning bad habits from Angular

#91

Earlier quoted context omitted.

This is a rather surprisingly and unnecessary harsh comment. Would you like to explain why do you think Angular is so flawed?

For one, it is incompatible with the whole open web stack. You cannot use Bootstrap with it. And if you decide to move off Angular, you are going to be in a world of pain. Second and worst of all - it is a monolithic framework. As long as you just do things the "Angular Way" - you are fine. If you want to change or override something, you are in a world of pain. If you are learning Angular - you are hardly learning J…

> For one, it is incompatible with the whole open web stack. You cannot use Bootstrap with it.

Bootstrap is not the "open web stack," whatever that is supposed to mean. And it's a little amusing to hear that the past six months I've spent using Bootstrap in Angular didn't actually happen.

> If you are learning Angular - you are hardly learning JavaScript.

Of course. But nobody says, "Hey, learn this Angular thing, and then you'll understand JavaScript." You must know JavaScript first, and learn Angular second.

Re: Why junior developers are learning bad habits from Angular

#92
post #79
post #52

>Many would not even see the problem here, and just as children don't know cars can hurt, juniors don't know just how destructive this anti-pattern can be to performance, separation of concerns and long term code base maintenance. Yup, I don't get it. I guess not only am I eternally doomed to be a junior dev but also am being compared to a child, a monkey typing at a typewriter, but also someone who doesn't know JS a…

Well, there's a good reason why $scope and controllers will disappear with Angular 2.0. $scope is convenient, but also a massive source of problems. There's workarounds for those problems, but those workarounds wouldn't even be necessary if this aspect of Angular had been designed better. Angular has some great stuff, and some really necessary ideas and principles that were sorely needed in Javascript. I love working…

I think anyone who knows Angular well would agree - it's a joy to work with, but it isn't perfect. Angular 2.0 is a step in the right direction in many ways.

This blog post is pretty horrid though.

I find myself moving more of my code into pure JS & borrowing concepts from languages like Java (interfaces, abstract classes, etc.) to increase agility in the event I want to move towards using a different library/framework. I gave a talk related to this idea of a frontend SOA about a week ago - here are the slides: http://slides.com/wesleycho/soa-angular

Re: Why junior developers are learning bad habits from Angular

#93
post #87

I am not a web developer but I have been trying to keep up with the technology. I tried learning Angular because people at work started using and hyping it beyond measure. So I thought 'ok' this got to be really good stuff. And it was good, _if_ experienced people held my hand. Otherwise I got lost in a soup of what seemed like unnecessary terminology -- $scopes, controllers, digest cycles, dependency injections, dir…

Unfortunately, that issue isn't limited to angular: it falls under the general category of "If you haven't gotten burned by the problems a pattern is trying to solve, a pattern looks like unnecessary complexity." I'm reminded of when I had to learn COM back in the day; as a developer who had cut their teeth on programming on Macintosh followed by Debian, it seemed like needless complexity until I grasped the zen of the problem it tried to solve: providing a common protocol for different binaries compiled by different C++ compilers to share data structures and do inter-process communication in an object-oriented fashion without sharing source code. COM seemed way too complex to me because (a) in the Mac world, there was only one compiler that mattered (at least by the time I got into it), so binary incompatibility was essentially a non-issue, and (b) in the Linux world, if you needed two modules to inter-operate, you could meld their source code together.

Similarly, if you haven't tried for 100% test coverage, dependency injection seems needlessly complicated, and if you haven't had to nest dozens of HTML templates written by different developers using different patterns, directives seem way over-engineered.

Re: Why junior developers are learning bad habits from Angular

#94

I wish I could go back in time and strongly oppose AngularJS at the last place I worked. Knowing what I know now, it was such a bad idea. I also made the mistake of adding it to a resume, too, so I have gotten too many recruiter emails about AngularJS jobs. AngularJS has an amazing success/failure story. The developers have managed to get their technology used by so many web development teams whilst being extremely o…

I don't think it does have a steep learning curve, really. I first tried it when I was a real greenhorn, having played around with backbone and ember and not really enjoyed the experience; with Angular you can be doing something cool in about 10 minutes.

The weird terminology almost helps, especially if you're coming from a server-framework background where your Ms, Vs and Cs are pretty different (due to the difference between request/response and UI design) from the same terms in a client-side framework. I am not going to confuse $scope with an ActiveRecord model. Most of it, in any case, works a bit like this (or did for me when I was very junior) - 'if it has a dollar in front of it, it does Magic Stuff with little or no human intervention.

No, the learning curve is very flat - until, as the OP says, you hit a brick wall.

All that said, IME it is possible to properly organise code in an Angular app, get logic out of views and so on. But it is dependent on you knowing a bit about application design. The easy option is to turn scope into a god object and have a 500 line spaghetti controller.

Re: Why junior developers are learning bad habits from Angular

#95

The central problem with Angular is what is says about the software industry in general - that a framework so fundamentally and ridiculously flawed could invite such wide appeal suggests that many people have absolutely no idea what they are doing. The thousand monkeys approach to engineering has wide implications for security and safety of systems that we rely on. There is simply no way that you can say that you kno…

"There is simply no way that you can say that you know Javascript and at the same time support Angular. None."

These kind of statements always make me think the author is trying to be dramatic because they don't know enough about the subject to try to get their strong feelings across in any other way.

Re: Why junior developers are learning bad habits from Angular

#96
post #87

I am not a web developer but I have been trying to keep up with the technology. I tried learning Angular because people at work started using and hyping it beyond measure. So I thought 'ok' this got to be really good stuff. And it was good, _if_ experienced people held my hand. Otherwise I got lost in a soup of what seemed like unnecessary terminology -- $scopes, controllers, digest cycles, dependency injections, dir…

which, I think, was the entire point of this article. But it speaks a lot to the angular community, and the heavy hand Google has used to build and maintain it, that the top half of the comments on this page center around people intentionally not seeing this

Re: Why junior developers are learning bad habits from Angular

#97
post #46

Earlier quoted context omitted.

Isn't this just criticism of frameworks? If I want to do something a framework doesn't support I'm going to be in "a world of pain" but that's the cost of using a framework.

It is a criticism of big monolyth frameworks. We have had shit like this circa 2005 - when jQuery started hitting the mainstream. And monolyths had to cede their ground to small specialized frameworks that would be built for fast deprecation and mixing with other stuff. Sort of the UNIX way. Angular is causing just as much damage as GWT, ASP and others did in their day. IMHO.

Are you seriously suggesting that diving fully into the deep end of the hype cycle is a viable, let alone preferable way to build anything but a throwaway MVP for your resume?

Re: Why junior developers are learning bad habits from Angular

#98

The central problem with Angular is what is says about the software industry in general - that a framework so fundamentally and ridiculously flawed could invite such wide appeal suggests that many people have absolutely no idea what they are doing. The thousand monkeys approach to engineering has wide implications for security and safety of systems that we rely on. There is simply no way that you can say that you kno…

This is a rather surprisingly and unnecessary harsh comment. Would you like to explain why do you think Angular is so flawed?

It is necessarily harsh. The industry goes in these cycles with monolithic frameworks. Each time they end up collapsing under their own weight and each time a new generation goes and builds another piece of bloatware that catches on and away we go again...

Re: Why junior developers are learning bad habits from Angular

#100
post #79
post #52

>Many would not even see the problem here, and just as children don't know cars can hurt, juniors don't know just how destructive this anti-pattern can be to performance, separation of concerns and long term code base maintenance. Yup, I don't get it. I guess not only am I eternally doomed to be a junior dev but also am being compared to a child, a monkey typing at a typewriter, but also someone who doesn't know JS a…

Well, there's a good reason why $scope and controllers will disappear with Angular 2.0. $scope is convenient, but also a massive source of problems. There's workarounds for those problems, but those workarounds wouldn't even be necessary if this aspect of Angular had been designed better. Angular has some great stuff, and some really necessary ideas and principles that were sorely needed in Javascript. I love working…

This is anecdotal, but I once found this incredible use of $scope while viewing the source for a sports page: https://gist.github.com/tcrosen/96279e39f9b0fb85c266
Post reply on HN