How to write an emacs mode for a new language?

If you're lazy, one easy way is to extend generic-mode to know about your new language:

http://emacswiki.org/emacs/GenericMode

I do this a lot for config files for applications that I work with a lot to get decent syntax highlighting. Here's one I did for the asterisk PBX a long time ago as an example.