5 ms·
Why not haml? Was there a discussion about this?
by akkartik 16y ago
Why not haml? Was there a discussion about this?
- petercooper 16y agoDHH finds it to be a "splinter in [his] brain": https://twitter.com/#!/dhh/status/58289541068492800 https://twitter.com/#!/dhh/status/58289541068492800 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!)
- SpiralLab 16y agoAgreed about SASS (prefer LESS, but still applies), and somewhat with CoffeeScript (I'm in the "make-it-optional-not-default-but-i-heart-CS" camp)...but 100% about HAML. It just always strikes me as backlash against HTML rather than an actual improvement. 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.
- petercooper 16y ago"Backlash" is a good word. I agree (and without saying no-one else should use Haml.. people totally should if it "clicks" more with them). 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.
- SpiralLab 16y agoAgreed! (IMO the ML backlash is more of a XML backlash that carried over to other MLs). 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.
- carbon8 16y ago"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." 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.
- epochwolf 16y agoHaml user here. I use haml because it allows me to see an entire page's code in a much cleaner format than erb with HTML. I can hammer out or rearrange chunks of HTML much faster in haml. To draw a comparison: haml is to HTML as yaml is to XML. Haml is denser and cleaner but it won't do everything. I still use erb and HTML for some templates because the haml just gets ugly. Edit: a note, I am plenty comfortable writing vanilla HTML, I just prefer the speed and clarity of haml.
- jarin 16y agoJust a tip: most of the time, when your haml gets messy, you can clean it up dramatically by using the :textile, :markdown, or :javascript formatters (or just put regular HTML in the :erb or :plain formatters).
- _pius 16y agoCoffeeScript allows complicated things to be expressed easily. But Haml is essentially an aesthetic thing for coders who merely don't like HTML, IMHO. 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. :)
- prpatel 16y agoHAML is a DSL for doing HTML markup & templating, Coffeescript is a "language extension" to JavaScript. How are they playing the same role???
- bradleyland 16y ago"Is a rose by any other name still not a rose?" 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.
- petercooper 16y agoExcept that a proficient Haml developer will still need to "think in HTML" and Haml is just another way to express it. 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.
- _pius 16y agoCoffeescript isn't a "language extension" to JavaScript. Coffeescript is a language that compiles down to Javascript. Haml is a language that is interpreted into HTML.
- swilliams 16y agoI tried to like Haml, but every time I've tried it on a semi-complex page it get's way too annoying. I don't think it solves the kind of problems that Sass does.
- carbon8 16y agoIn the years I've been using haml my experience has been exactly the opposite. Haml discourages excessive code in the template, reduces noise, makes the document structure immediately obvious and places emphasis on classes, ids, element names and attributes, making it easier to work with CSS and Javascript. As a result, its benefits become even more obvious as templates become larger and more complex.
- SupremumLimit 16y agoOne useful piece of advice I read about HAML on HN was that it's for structure rather than for content. It gets annoying when you're trying to style words within a paragraph with italic or bold, or when you try to insert a link followed by a period. In those cases, I just use HTML, and the annoyance is gone. Otherwise, I find HAML very useful for reducing visual clutter.