Archive - Originally posted on "The Horse's Mouth" - 2007-01-22 20:04:07 - Graham Ellis
What's the difference between a language and a metalanguage?
A language is a single specification - a way of describing a series of actions or how some particular data is handled. Whereas a metalanguage is a way of specifying a series of languages to a particular pattern.
An example? HTML is a language. There are different flavours (slightly) but basically it's a single language. What I descibe as HTML++ is a metalanguage - a way of adding to HTML to make it rather more that just HTML. Examples of HTML++ metalanguages include JSP, PHP, ASP, Rails, Eruby, EmbPerl, SSI; all differently languages as you need different compilers / interpretters to handle them, but all extending basic HTML in a similar way.
In the same way, XML is a metalanguage, and implementetations of it include XSLT, RSS, and many more from SOAP to Tomcat configuration files.
Update - January 2010 - we have added an optional Ruby on Rails day to our Ruby courses because it is becoming so popular - see [here]