When you use an unblessed language derivative like Coffeescript for your examples, please give alternate examples (even if they are simply generated by your coffeescript translator). Especially in this case, since Angular isn't targeted specifically at Coffeescript developers.
I think it's a legitimate concern about the ability to read examples. Using nonstandard tools to showcase a concept limits the people who are able to follow along. Not everyone has invested the time to learn the ins and outs of CoffeeScript, why hinder understanding with it when "talking about CoffeeScript" isn't the point of the article?
It's really not a big deal in this case. Code is not doing anything tricky. Just add some ugly curly braces and parenthesis and it's es6 JS with the arrow.
No, it's a tired complaint from a group of people who don't like the idea that people are building for the web in something other than their favourite language.
No one is forcing you to like coffeescript, but it's completely unnecessary to complain about every single example or blog post that uses it.
> When starting out, forgo writing directives. You need a deep knowledge of AngularJS' internals to debug directives when they misbehave. Instead, start by writing a small controller and view. You can refactor these into a directive later when it feels right.
No. Controllers should not be used for DOM manipulation. Angular directives take some learning, but they're great. It basically turns DOM node selection into a matter of Dependency Injection. I think it's an exaggeration to say that directives require "deep knowledge of AngularJS' (sic) internals".
One of the few places where Angular falls down is its use of a single ng-view. This makes doing something as simple as a two column layout frustratingly more complicated than it should be.
Use ui-router. It allows multiple views and uses states for URL routing. It's a little tricky to understand at first, but once you internalize how states work it makes structuring your app very easy. Be prepared to rewrite parts of your projects multiple times until you actually get it.
I think it's miss-using the service in this example.
The example should be using factory:
.factory('RemoteResource', function($http){
return {retrieve: function(){ $http.get("url"); }}
})
Service should be like this:
.service('RemoteResource', function($http){
this.retrieve = function(){ $http.get("url"); }
})