During the last year or so I've written some program transformations in the Rascal programming language. I find it beneficial to have an Emacs mode for any language I make significant use of. Not finding an existing one for Rascal, I proceeded to put one together myself. See Emacs Mode for Rascal (on GitHub) for the code.
The mode has its imperfections. Rascal is not exactly a small language, and while it has a C-like surface syntax, there is some unusual syntax that seems tricky to get right. The Rascal mode is based on CC Mode, and one quickly runs into challenges when a language has syntax the likes of which isn't already in one of the languages supported by CC Mode. Here it's good to keep in mind that the language analysis capabilities of CC Mode in any case are somewhat heuristic in nature, and the same tends to be the case with almost all programming-language-aware Emacs modes.
The true value of Emacs is that you can get something going for a language quite quickly, to enable you to apply your favorite Emacs machinery on said language also. Emacs-based tools such as Auto Complete Mode and YASnippet, for instance, are very general in their usefulness, and can be applied to writing prose, even. They have certainly written quite a few words of Rascal code on my behalf already.