Can't say I disagree with him. Sass extends CSS with extra functionality. CoffeeScript allows complicated things to be expressed easily. But Haml is essentially an aesthetic thing for coders who merely don't like HTML, IMHO. (But luckily it's so easy to add in and if you use the "haml" extension on your views, it should mostly Just Work™ so it's all cool!)
What happens when you give HAML to a non-Rails designer? Maybe it's just taste, but I feel that true markup with template tags for data (erb) is much better than a whole new markup language for designers to learn. YMMV.
I think "designers" or non-Rails people are only the tip of the iceberg though. I've been doing Ruby and Rails since 2004 and while I've tried Haml a couple of times, it never clicked with me because I already both knew and liked HTML. It felt like learning Japanese for the fun of it, yet I can already say everything I want to in English.
Regardless - A designer that can design for any* framework with standard CSS/HTML is more flexible than a designer that knows HAML, but could't write vanilla markup.
That why I was surprised about the Coffeescript (preferring HAML is a popular opinion, as-is Rspec: yet Erb and Test::Unit are still the defaults).
Edit: I agree that alt. languages/syntaxes in frameworks are nice. Forcing them on people is not nice.
This is a very bizarre statment. How can someone write haml without understanding HTML and CSS? How could that even be possible? Haml is little more than classes, ids and element names.
In my experience as a Ruby contractor I've seem many, many more WTFs in erb than haml, to the point where when I join a project using erb I now brace myself.
Edit: a note, I am plenty comfortable writing vanilla HTML, I just prefer the speed and clarity of haml.
i.e.:
:textile
Hi, my name is *#{@user.name}*!Haml and CoffeeScript serve practically the same type of role (the greater complexity of JS notwithstanding).
"It's just an aesthetic thing" can be used to dismiss practically anything, even the differences between, say, Ruby and Java.
If you're writing a lot of HTML, turning
<div class="foo">
<div id="bar">
<span class="baz">
qux
</span>
</div>
</div>
into .foo
#bar
%span.baz qux
is a big win. It reduces the noise in a template substantially and is a perfect impedance match with the CSS3/JQuery selector syntax.For what it's worth, I hated Haml until my third time playing with it. :)
I write HAML, the plugin generates HTML.
I write Coffeescript, the plugin generates Javascript.
Surely you can see how these two are similar. Yes, there are more precise definitions for each, but pragmatically, they play a similar role.
CoffeeScript goes so far and introduces enough new concepts that you can "think in CoffeeScript" and not worry about JavaScript too much.
You're right that the translation idea is similar but I can't agree that the mental model for using both is similar.
Coffeescript is a language that compiles down to Javascript. Haml is a language that is interpreted into HTML.