Template is really cool in chef 11.
You can see diff etc.
Template also do a backup (but maybe file do the same).

Another thing that can be important: template only modify file if content is different, so why_run is only trigger in that case.
I don't know if file + content do the same or erase data + trigger even if content doesn't change.