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 (usually small businesses) 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 (part of Yahoo! Small Business), 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. As of 2006[update], many new Yahoo! Merchant Solutions sites and legacy Yahoo! Stores continue to be built using the Store Editor and RTML.
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.
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.".
- Yahoo!'s own RTML Reference
- Yahoo! Merchant Solutions Developer Network - Yahoo's Directory of Merchant Solutions Developers
- Yahoo! Merchant Solutions Developer site
- Lisp in Web-Based Applications - transcript of a talk by Paul Graham that mentions RTML
- RTML section of YourStoreForums.com - a forum for Yahoo store owners with a dedicated RTML section