5 ms·
I'm half programmer, half Web developer. I'm great at both (I don't mind saying). Being from both worlds, I don't get the need for HAML. HTML is so easy as it i
by coderdude 17y ago
I'm half programmer, half Web developer. I'm great at both (I don't mind saying). Being from both worlds, I don't get the need for HAML. HTML is so easy as it is. From my point of view, any programmer who can't write HTML with proficiency is deficient somehow.
- jrockway 17y ago<html><is><redundant></redundant></is></html> Whereas HAML is not
- tptacek 17y agoWow. You definitely are half a programmer! Burned! HTML is a huge pain in the ass to write: * It requires balancing tags * It's verbose * It is crudded up with syntax (</-="") and keywords * It consistently runs right off the 80 column right margin * It's an enormous pain to extend * It's slow to read; for instance, try picking the plural version of a constantly-used class name out of tag soup Haml isn't a shortcut to writing HTML. On the contrary, to use it well, you have to know HTML well. What Haml does is to solve the problems that make HTML a pain to use to express user interface in.
- coderdude 17y agoI guess I set myself up? You make some good points about why HTML is a pain in the ass. I'm just desensitized to it to the point that it doesn't bother me anymore. In fact, I didn't even think of the issues you brought up.
- tptacek 17y agoI was once like you. What it took for me was writing a UI in Haml with very minimal, semantic markup and all the controls keyed in jQ off classes and IDs. When you structure your HTML, CSS, and Javascript correctly, Haml is absolutely gorgeous. You're no longer writing in HTML: you're writing in a DSL designed to express user interface. For instance, a "save" button encoded in a DIV in Haml: .button#save That's it.
- coderdude 17y agoDoes Haml allow you to control how the actual markup is produced? Some browsers are dependent on a lack of whitespace between nodes in order to render properly without adding some extra padding (IE for instance). For me, the main issue is control over my markup. Exact and precise control, which is necessary.
- chriseppstein 17y agoYou can use the alligator operators to trim surrounding and internal whitespace. E.g. .foo> This has no whitespace outside the foo div. .foo< This has no whitespace just inside the foo div. .foo>< This has no whitespace outside or inside. http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#whitespace_removal__and_ http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#wh...
- coderdude 17y agoIncredible, they even thought of that. I guess Haml isn't so bad after all. Time to check it out.
- jerhinesmith 17y agoHaml does allow for finer-grained control over whitespace, but even if that's not enough, when needed you can still "embed" plain-old html directly inside of your Haml files. I guess I fail to see how html has any advantage over haml. The absolute worst case is that you're still writing html in 90+% of the cases (which you'd be doing anyway without haml), and in the best case, your markup becomes much more DRY and readable.
- jfarmer 17y agoHTML has an advantage because that's what people know, particularly designers. Some designers I've worked with are ok with haml, others steadfastly refuse because their workflow is so HTML-centric.
- nostrademons 17y ago"It requires balancing tags" Only for tags that need an ending delimiter, unless you use XHTML. Check out the Google markup sometime. All the <li>, <td>, <tr>, and <img> tags are intentionally unbalanced - because they don't have to be, and balancing them just makes your website take longer to download. http://dev.w3.org/html5/spec/Overview.html#syntax-tag-omission http://dev.w3.org/html5/spec/Overview.html#syntax-tag-omissi... "It consistently runs right off the 80 column right margin" I've never had that problem. I also have no qualms about breaking lines between tag attributes. "It's an enormous pain to extend" HTML5 "data-" attributes make this a bit easier. Still room for improvement here, though. A lot of the pain points in HTML are self-inflicted by developers who read some "best practices" on the web and then never question what they get out of those best practices.