Don’t Make Me Write HTML
linux-mag.com
linux-mag.com
I can see these tools being useful in certain circumstances, such as a way to provide HTML-esque markup somewhere where you don't want to bother cleaning up someone else's potentially malicious HTML (a wiki, a comment form, etc.). However, for building actual websites, just do it the right way.
Sure, these alternatives are nice in that you can avoid the scary HTML, but in the end it is all HTML anyway -- so why not learn it from the start and produce better code than what a parser will spit out based on your abstraction?
HAML is HTML—it's a one-to-one conversion—but it's simpler and more concise to write. It's what HTML should be: no closing brackets, no line noise, and simple syntax to access DOM-relevant attributes (class and id). If I had the option of immediately converting all HTML worldwide into HAML, and all HTML parsers into HAML parsers, I'd sign up in a second.
Also, I don't need to see the raw HTML any more, because that's not the point: it's like looking at machine language instead of assembler. They're equivalent, so why read it the painful way? When debugging a page layout in HTML, I actually find it more useful to convert it into HAML first.
This is especially true if you use a CSS framework where you have lots of nested elements with several classes each.
It does make HTML look significantly cleaner since it seems to run along the same general concept as Python (indents are blocks), and that is something I can support.
I'll be looking into giving it a try next time I have a good chance to...I appreciate the explanation.
are you absolutely sure about that? No edge cases around the whitespace?
"it's like looking at machine language instead of assembler."
That would only be true if HTML tags were specified by number.
"They're equivalent, so why read it the painful way?"
HAML is more readable only in the sense that it forces a certain indentation structure on you. If you are working with well-formatted HTML than there is not much benefit there. Overall, when HTML gets deeply nested, I'd rather see the ending tag.
As far as writing is concerned, yeah, HAML is a big win if you don't know how to use your editor. I solved that problem 10 years ago and I didn't have to switch to an format no one understands to do it. Let me put it this way:
If HAML had the same tooling support as HTML, and if other people were as likely to understand it, and if it didn't require a compilation step, then the benefits of HAML would be clearcut. As it stands, HAML just doesn't offer anything compelling to me (SASS comes closer).
Everybody who knows HTML knows HAML. Actually learning HAML would have still given you time to write a paragraph complaining about it.
HAML is for people who know and use raw HTML, but who would rather not spend time on typing closing tags and all other syntatic sugar and line noise. HAML allows writing pages using leaner and more concise markup, all the while improving its readability.
Isn't that what Emacs is for?
Although I must admit you've got a point there, it's a bit like Atwood's indentation piece yesterday, why bother fussing over that when your editor can sort it for you?
(It doesn't show up all the time, so you may not have seen it.)
One thing about dumb, regular, symmetrical formats is that their redundancy makes them less scary and easier to understand. Perhaps, this is accessibility is crucial for adoption.
EDIT I guess indentation enables you to match up start/end tags even better than named close tags... and it's certainly become more familiar to developers since Python's success. But maybe not so good when you have many levels of indentation, and terrible if you want to insert/delete a nested element, because the indentation of the elements within it must also be changed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title></title>
<p>
The 'html', 'head' and 'body' elements -- opening and closing -- are inferred at the correct points by a compliant parser, as is the closing of the lone 'p' element.Once upon a time on my personal blog, I used minimal HTML 4.01 Strict (omitting tags and other bits of syntax whenever and wherever possible -- I had a Markdown fork that knew how to do this within the constraints of the spec); my one concession was a longer DOCTYPE declaration to deal with anything that didn't know how to resolve the public identifier. Browsers actually handled it just fine, but some other systems (in particular, OpenID autodiscovery) failed, because they weren't actually doing HTML parsing.
Of course, in practice, most HTML parsers will do a wonderful job of interpreting malformed HTML.
To omit tags you needed a DTD that allowed the parser to infer where the close tags should go.
Enforcing the use of close tags in XML meant that building a parser was much simpler and that you no longer had to supply a DTD which I think were probably very instrumental in XML's success.
An HTML form is the simplest representation of a form's presentation you're going to get. Suck it up, use HTML templates.
Please don’t make me write in any of these simplified markup languages, either. And, really please, don’t ask me to embed code in the language, or one of these languages in code.
CleverCSS is a CSS compiler pretty similar to Sass, which I tend to prefer for the simple reason that Sass requires my indents to be two spaces, and it doesn't matter in CleverCSS. The only problem is that it doesn't seem to be maintained anymore, and there are a couple of annoying bugs in the official release. I submitted patches but to no avail, so I'm hosting the patched code here: http://django-css.googlecode.com/files/CleverCSS-0.1.2.zip
I was so pumped on CSS compilers that I wrote this so you can use them in your Django projects: http://django-css.googlecode.com
Sadly, creating things totaly disregarding the environment seems to have so much more sexapeal than just using what's at hand.
And at that point, I guess I might as well write good ole html... Unless browsers _universally_ supported a new better language, I'd hate to have to think of browser nuance in two different markups...
In the case of Markdown prose, I don't /care/ what kind of HTML it writes. Headers, paragraphs, links, all taken care of. I write text, it gets run automatically through a parser/html generator (I use maruku), and I don't think about it. HAML is great for templates & layouts, when I care about DIVs and ids and classes, without being the wordy, ugly HTML itself.
All I got is a grey page with "Click here to skip this or wait 15 seconds.". The link does not work.
I have JavaScript disabled with NoScript FireFox extension.
Judging from the HTML code of the page it seems that the authors of linux-mag.com don't know how to use noscript or meta redirect tags.