It can't be one language, and that's the big problem. It's inescapably a bunch of tiny DSLs. Once you see both the inconsistency and the necessity for inconsistency, it becomes much easier to just roll with it.