Profile photo for Charlie Cheever

Originally, Amazon.com was a C++ binary called Obidos. In the early days of the Internet, writing everything in C++ made sense since servers were expensive and not nearly as fast as they are today, and things like Python, Ruby, etc. weren't nearly as mature.

To make it easier to make webpages without writing tons of string manipulation code in C++, the company developed a simple in-house templating system called catsubst (cat like the Unix program, subst like substitution).

Over time, the set of features on the Amazon website grew and the Obidos codebase began to sprawl. The binary was multiple gigabytes and took a very long time to compile. So, in the early-mid 2000s, the company began to switch over to Gurupa.

Gurupa was a webserver that could only talk to databases and filesystems through BSF (Amazon in-house equivalent of Thrift), and then when these services gave the data to the server, it would assemble them into a webpage using Mason templates, which is basically Perl interspersed with HTML (feels similar to PHP).

Over the period of about 2 1/2 years (I think) around 2004-2005, the company migrated from Obidos to Gurupa completely.

View 5 other answers to this question
About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025