I disagree - most of this post I wrote has very little to do with JavaScript itself and everything to do with Angular. Likewise, I don't want to come across as rude, but I also don't want words put in my mouth. The performance issues with Angular are not fiction, they are very real concerns. Hence the sheer number of tutorials popping up lately showing you how to use React in your Angular apps to improved the rendering performance plus a number of other hacks I'd prefer my juniors steer clear of.
It's also got nothing to do with the juniors coming from Python or Ruby, in fact most of mine started on Java and Erlang or are self taught, but I've had very little trouble with bad habits creeping in to projects with those same juniors when using frameworks like backbone, ember and react (so far) - so once again, it has very little to do with pitfalls in JavaScript and more to do with pitfalls in Angular itself - at least, that has been the case IME.
Wow, didn't expect the varied responses to my article, but glad to see it's opened up some good criticism of Angular itself, and of course my own reasoning in the post. Always good to get balanced opinion, and the only reason I put something like this out in the public domain is to get that feedback - maybe there's something huge I'm missing and others with experience can help. I've been in this web programming game for 20 years now and if there's one thing I've learned, is you're never too old (or experienced) to learn something new.
For those bemoaning the fact that I was hating on junior devs - I wasn't - and I explain that in a separate article linked to from the post, so it may help clarify those points. I also give more concrete examples in that follow-up post because a lot of comments said I was being too vague in this post - which to a certain extent I agree with, but it was never my intention to write a book or a manual. If someone is genuinely interested in more depth to some of my reasoning, I'm happy to be contacted about it with specific questions and we can go more in depth. Doing that in the post would have lost more readers than it gained so for me it was a balance for an already long article.
The bottom line for me, is that it's been far easier to get junior devs going in frameworks like backbone, ampersand, durandal (aurelia now) and react than it has been with angular and I've seen less bad habits forming. For me those are facts in my day job - but your mileage may vary.
While this SPA is specific to Durandal, the concept should work equally well with Angular or Ember etc as there are gulp tasks already out there for those frameworks and the rest of the post should be applicable then in that case.
yes I'm working on that this weekend - also in an effort to fix the mobile issues. Full posts will display on the page on their own instead of the side bar like link stories appear
You've hit the nail on the head, but I honestly don't know why more senior developers can't see it - unless they don't actually work with juniors on a regular basis? Anyway, due to all the cries about FUD on the topic of juniors specifically, I decided it needs its own writeup - you can find it here if you want more clarification: https://news.ycombinator.com/item?id=8965935
There was a lot of commentary on my first post https://javascriptkicks.com/stories/2657 about not detailing enough why I think Angular isn't good for junior programmers asking for more detail. Here it is.
One of the big motivators for this follow-up post is due the the cries of FUD. Of course it's just my opinion, but I like to back my opinion up with facts if possible and it seems there were some questions cropping up around how much of a problem it geniunly is versus me just having a whine about it.
In all fairness I'm excited about Angular 2.0, but it's just too far off to quantify its use just yet. So it's not that I'm anti-Angular, I'm just anti-Crap, and there is a lot of that in the first incarnation I'm afraid, and it's biting too hard to ignore.
I hope my next post will be a lot more cheerful :)
It's also got nothing to do with the juniors coming from Python or Ruby, in fact most of mine started on Java and Erlang or are self taught, but I've had very little trouble with bad habits creeping in to projects with those same juniors when using frameworks like backbone, ember and react (so far) - so once again, it has very little to do with pitfalls in JavaScript and more to do with pitfalls in Angular itself - at least, that has been the case IME.