RTML


RTML is a proprietary programming language used exclusively by Yahoo!'s Yahoo! Store and Yahoo! Site web hosting services.

History

The language originated at Viaweb, a company founded in 1995 by Paul Graham and Robert T. Morris, as the template language for their e-commerce platform. RTML stands for "Robert T. Morris Language". The RTML editor was offered as an option for customers who wanted to customize their online stores more than the built-in templates allowed. The built-in templates were also written in RTML, and provided the starting point for most people who used the language.
In 1998, Yahoo! bought Viaweb for $49.6 million and renamed the service Yahoo! Store. Yahoo! later offered the RTML-based content management system in a hosting platform without a shopping cart, under the name Yahoo! Site.
In 2003, Yahoo! renamed the Yahoo! Store service Yahoo! Merchant Solutions, and at the same time began offering new customers the choice of a more standard PHP/MySQL web hosting environment instead of the RTML-based Store Editor., many new Yahoo! Merchant Solutions sites and legacy Yahoo! Stores continue to be built using the Store Editor and RTML.

Language

Although Yahoo!'s documentation does not mention it, RTML is actually implemented on top of a Lisp-based system. The language is somewhat unusual in that the programmer cannot edit the source code directly as text. Instead, keywords are presented as hyperlinks in a browser-based HTML interface. Clicking on a keyword selects it, and its attributes can be edited. Blocks of code can be pushed and popped from a clipboard, using the stack metaphor. The editor maintains the code's s-expression structure automatically, and visually represents it in the web interface using indentation instead of Lisp's parentheses.
Most of the keywords correspond to HTML elements, but there are also conditionals, recursion, and other control flow features that make it a "real" programming language.
RTML templates are evaluated dynamically for each pageview during editing, but for the live site a "publish" process generates static HTML files from them.

Abbreviation

Yahoo!'s documentation used to say that RTML was an acronym for "Real Time Markup Language", but Graham admitted that "we made up various explanations for what RTML was supposed to stand for, but actually I named it after Robert Morris, the other founder of Viaweb, whose username is rtm."