I take it back.
I gave HAML a second shot, and I rather like it. The conversion was pretty easy, and having emac’s haml-mode saved a lot of indentation headaches–even moving blocks left and right in indentation.
How come I liked it better the second time around? The first time I saw it, it was written by someone that ignored convention and just powered through nesting HAML div elements 10 to 12 levels deep in one file. You know what? You’re doing it wrong.
Writing HAML from scratch this time, and reading Haml Sucks for Content, I’ve found that HAML is designed with intentional weaknesses to make you stay clean and clear. Indentation too far in an HTML document? Chances are, there are repeating elements. Refactor it out to a partial, and you get to start at column zero again. Have the urge to make multi-line ruby statements? Refactor it out to a helper. You’ll live longer that way.
By making some things intentionally hard to do–giving them some syntactic vinegar, you’d hope that your users end up Doing the Right Thing™. But then again, some people just are immune to having code indent 10 to 12 levels deep, or name their variables ‘ii’ and ‘jj’ when they’re not programming in Fortran.