Rubble is a tool that takes "almost raws" and generates true DF raws. On top of this tool (the Rubble engine) there are several parts:
* A web UI for displaying documentation, selecting the mods you want to install, and changing settings for mods, amongst other things.
* A powerful standard library designed to make it easier to write mods and make mods work together.
The Rubble engine itself has powerful scripting abilities (using Lua), as well as a custom template language used inside your raw files. Additionally the engine has several other "side features" such as automatic update for addons (via DFFD or a custom update server), file banks (a system for copying arbitrary files such as stonesense graphics), a tileset patcher (based on BAMM, but slightly more flexible), and many more features.
Basically you are right, Rubble is a programing language, but it is also a mod manager, mod updater, mod documentation reader, and many other things.
EDIT: Accidentally hit the post button.
It some how addresses the problem of a user trying to open a world with the wrong set of mods installed.
Rubble goes out of it's way not to make changes outside of the raw directory, so most times you can have several Rubble generated world on a single install. A special DFHack script loader is used to keep all DFHack content local to a single world, this greatly enhances the ability to move saves from one install to another. Generally if a mod needs non-raw changes made they are supposed to be bundled into a small addon that can be applied separately as needed, but this is a rare problem.
and the templates probably won't have to be updated very often?
Exactly. And the best part? If you use stuff from the standard library then updating it is my problem, you don't need to worry about it
Speaking of the standard library: It contains some awesome DFHack scripts and modules that can do some amazing things. Automated or mechanically powered workshops with as little as one line of DFHack Lua code? Check. Disabling hardcoded buildings? Check. Customisable replacement for vanilla item melting? That too, and many more. The best part? All are packed up in small self-contained packages that you can use with minimal fuss and bother.
I have a standing policy that I will port any mod to Rubble. provided that the person requesting the port will maintain the result when I am done. If you just want to see what Rubble can do in the hands of an expert, take a look at my Underhive Settlement reboot, it does some amazing things and still doesn't use all the Rubble features.