I'm making some custom templates (among other things) for my favorite languages, and I need some advice/best practices about them.

1. I heard that people are moving away from normal Templates and towards Snippets for this purpose; is this correct?

2. One advantage I see with Snippets is that it lets me set the filename (which I can then use) before calling the Snippet, which is not possible with a Template unless I'm in a project. Is there some way around that with Templates?

3. As I make these Templates, I'm finding a lot of common text between them, and when I want to tweak it across the board...well, it's like programming without functions. What, if anything, can I do to reduce redundancy in my templates?

Thanks,
Neil.