Half Assed Meta Language

Nothing on this page seems to discuss a "HalfAssedMetaLanguage" (see discussion below), so either the page title is a poor one, or else mention of an example of the title is still waiting to be added.


HAML? Maybe Half Titted Meta Language. Fits acronym better.

See HTML and its parents, siblings, and descendants. Or; anything that is not Turing-complete.

HTML is not a meta-language (which would be a language for describing/implementing other languages). And while it may have issues, it serves its purpose adequately. Just because something isn't TuringComplete doesn't make it half-assed; there are many problem domains for which a TuringComplete language would be a complication, not a benefit. See PrincipleOfLeastPower.

For descriptions of static Web pages, HTML is fine. Of course, it has been obsoleted by XHTML and various other standards; and some XML applications (such as XSLT) are TuringComplete.


If it were Turing-Complete, it would open the door to security problems. Most web-sent attacks/viruses use Turing Complete holes. Besides, if you want Turing Complete HTML, try AllaireColdFusion.


For a counter-point, see ProductivityRant.


I'm sorry, but aren't we confusing data description languages with computation languages? HTML and XML's true nature is to describe a data. Complaining that HTML or XML are not TuringComplete is like complaining that apples aren't very good oranges. Any data can be interpreted as a program within the right context and the reverse is true. However, the purpose of HTML and XML is not to compute. --JosephCoffland


I'm not altogether sure that HTML actually earns the "language" moniker.

We've had markup systems for a long time, and converting the markup tokens to "words" with "parameters" doesn't really change what's being done: basically StateOn?, StateOff? switching related to formatting and navigation.

Tokens like <head>, <font>, <table> and so on don't make it a "language" because they look like English.

I've used markup systems that allowed font specification, color, pitch, spacing, bold, underlining, italics, centering, widow/orphan control, external document inclusion, conditional inclusion, limited arithmetic, and specific blend of coffee without ever using anything that resembled a word -- and I would never have called them languages.

Or it may just be that I've not been willing to allow a broad enough meaning for "language" -- after all, nobody else seems to have a problem using that term to refer to things that (for me) fail that test.

-- GarryHamilton

We don't have to invoke LaynesLaw to see that more thought and care with definitions is called for here. You already know the difference between a "programming language" and a "human language", so you already know that the unqualified word "language" is ambiguous.

There are lots of other kinds of languages. HTML is not a programming language, no question about it, however formally any language is a set of symbols plus rules specifying how they can be sequenced, so in that formal sense, indeed all of those text-based markup systems you used are "languages".

There's of course a question of what can and cannot be done in a language. HTML is not TuringEquivalent. Neither is a regular expression (although regular expressions do in fact specify a "regular language"). LaTex is not TuringEquivalent (although TeX turns out to be). Yet LaTex and regular expressions are very useful indeed.

As Joseph points out above, it also tends to matter what the intended use of a language is. TeX is TuringEquivalent, but it's not intended to be used for general computation, it's intended to create documents.

-- DougMerritt


EditText of this page (last edited April 22, 2005) or FindPage with title or text search