The author hit the nail on the head for me: "The biggest problem for many front-enders seems to be that Angular forces you to work in one specific way."
I'm opposed to opinionated frameworks. which is why I don't use Rails. And why with Python I use pyramid/flask instead of django.
And with JS/node, I've found the commonJS+modules approach a far better means to structure my code than any monolithic framework.
Opinionated frameworks have their benefits. If you're working in their chosen domain, they're often pretty cheap to use. And for some teams, it's especially handy to have plenty of opinions baked in to minimize arguments over every goddamn thing.
When he wrote, "Many front-enders, on the other hand, who have worked with JavaScript and browsers for years and have developed their own coding style, tend to have their doubts about Angular," my thought was, "Oh god, imagine a team of 10 of those people."
I too have developed many style preferences over the years, but long ago I learned they don't matter nearly as much for project success as having a common style.
Exactly yhis is the point PPK is missing imo. A generic structure is offered by Angular, versus the mismatch of libraries, plugins, templating engines (all with their own bugs) that we had before.
I've built a lot of HTML5 over the years, and handing over projects that include your personal preferences and nifty things (even if it's 'Object Oriented' Mootools) can make another developer that has no prior knowledge of it decide to throw everything away and start from scratch.
At least angular provides a standardized and documented way of doing everything.
I think you meant Ember. I've seen the same thing done a bunch of different ways in Angular. They all work. That being said, my team has come up with a way to develop Angular apps. It looks little like the samples and people new to our world have to unlearn and relearn some things, but it gives us more agility and makes our code work better/simpler.
No I didn't mean Ember. Ember is even more opinionated than Angular.
You can strip it down to the metal and use pure CommonJS + npm modules for everything ng/ember/backbone would give you. Especially now with ES6 on the horizon.
I, too, avoid Rails and Django for that exact reason. The "opinions" of Angular, however, are very smart encouragements made by seasoned engineers: data binding models to UI elements, dependency injection for testability, and web components-like loose coupling of widgets. These are simply good practices.
I'm opposed to opinionated frameworks. which is why I don't use Rails. And why with Python I use pyramid/flask instead of django.
And with JS/node, I've found the commonJS+modules approach a far better means to structure my code than any monolithic framework.