Programming in RTML is development of Yahoo store platform.
Have you had a feeling that by doing some things to achieve your own goals you actually help other people without a purposeful intent to do so? For example did you know that by traveling to some nice city during your vacation last year you invested in the economy of the city just by staying at a hotel, buying some gifts and eating at local restaurants. And money you spent there were probably reinvested in improving those local businesses and made them a little bit better.
Knowing that you help and give back something out to the community is a good feeling. It makes your life more purposeful and meaningful. Especially it is nice when it is something that you do for a living.
Let’s take a look at RTML programming. As you may know RTML is a proprietary programming language used in Yahoo! Merchant Solutions platform to control the appearance and functionality of web pages in ecommerce web sites. To understand the role of the language we should dive a little bit into the history of yahoo merchant solutions platform, which is pretty interesting and exciting.
It all started as the first Web-based application according to its developer Paul Graham. He and his friend Robert Morris were founders of a start-up company Viaweb, which developed unique product allowing users to build ecommerce stores online without installing any software on users’ computers.
Initially software was made for web consultants who would work with its clients and build online stores for them. Web consultants would use programming language designed specifically for the purpose of controlling the way pages of online stores are displayed, and would built custom designed stores for own clients.
The programming language used for that was Lisp – same language the whole Viaweb store platform was written on. But it was added some levels of simplification and protection from errors by introducing the structure editor for manipulating the code. Small programs generated by that code were named templates to make it less frightening for users.
When programming RTML templates instead of typing code as you would usually do when programming, you cut and paste bits of program, which are essentially built-in Lisp operators and macroses.
The language got its name after Robert Tappan Morris
(But after yahoo bought Viaweb and named it yahoo store it also gave another explanation to the abbreviation of the language – Real Time Markup Language.)
RTML was introduced by its founders as an additional level of abstraction in development of Viaweb application. Being great programmers Paul graham and Robert Morris developed their software open for future changes and growth. The idea of creating simple application and then building on it can be seen through many publications of Paul. It’s pretty much the main principle those guys based their programming on. They built the core of the system that covers main functionality of building sites using Lisp as programming language and separated development of page layouts in subsystem with its own language and open to everybody editor for easy testing and implementation.

They thought that web consultants would use that layer a lot, but yahoo store being such an easy platform to use for end users made it unattractive for web consultants since they couldn’t expect constant revenue from clients for their services. Since language was a bit too hard for regular end-users it was almost forgotten and hardly used by storeowners.
But it was still heavily used by founders of the system. Seeing that people don’t use RTML but need to have flexibility in layouts and functionality, multiple templates were created so that they would cover the majority of all possible situations. To improve the system developers continued to build it in this abstract layer while having the core of the system unchanged. That was a pretty great strategy that worked for both – users and system founders.
After covering many different scenarios in RTML templates and selling the system to yahoo, RTML programming has been hardly used for a long time. But things are changing fast in online world. Merchants realized they needed new features, new marketing abilities and search optimization techniques as ecommerce industry developed and matured. Demand for continuing development of the platform was back again.
But this time supply was provided not by the system owners but by independent developers. Pretty much the way it was intended in the very beginning. It just took several years for the system to become outdated and new updates and improvements were required.
Multiple new features were developed to improve many aspects of yahoo merchant solutions platform. With the rise of demand for the features came the supply – people started to pay more attention to RTML. Finally some books appeared for purchase and community of developers saw a significant increase in its members.
I’d say there are two main directions in RTML development. First – is custom built templates that are used in one store and usually affect the appearance of the site. And the second direction is development of features. Features can be installed on multiple stores after they are developed without spending too many resources.
Merchants being very competitive due to the nature of the business pay a lot of attention to competitors and once new feature introduced everybody wants to have it.
The interesting aspect of RTML templates is that source is available for everybody who has access to the backend of the store once template is installed. So in case storeowner switches developer who works on the store, other developer can see all the code. It makes the system somewhat open and hard to keep things in secret for a long time.
Once feature is introduced it usually doesn’t take long to copy and pass it around.
Keeping in mind that RTML is pretty much Lisp and templates are just an additional level of abstraction in yahoo store platform, which is just one big web based application we can easily come to the following conclusion.
Being a yahoo store designer and by developing new RTML features you’re actually writing programs on Lisp and due to the openness of the system contribute to the whole yahoo store community by continuously developing software product that was designed more than 10 years ago.
Just by doing regular job every day on improving one of your customers’ site you benefit whole community. And that community is pretty big considering that yahoo handles $3 billion+ in e-commerce according to their internal reporting of 2004 e-commerce sales.
And once again kudos to Paul Graham and guys from Viaweb for developing not just first web-based application but also distributed development platform which probably could be also named the first non open source social web programming project.
Technorati tags: RTML / programming / Ecommerce
Apr 20, 12:19 AM |