4 ms·
this was back when the whole website was written in perl
by VWWHFSfQ 5y ago
this was back when the whole website was written in perl
- PherricOxide 5y ago20 years later, only 60% of the website is written in Perl!
- PaulDavisThe1st 5y agoThe website was NEVER written in Perl. Source: guy that wrote the code.
- VWWHFSfQ 5y agoI heard it was written in perl
- donflamenco 5y agoThe guy you are replying to was employee 2 or 3 depending on how you count at Amazon. There was a ton of various scripts written in perl that kept everything running for sure. The website code was C/C++ as mentioned elsewhere.
- jrauser 5y agoIn 1999, front end templates were written in an internally developed macro language named catsubst and served by a C (maybe C++?) application named Obidos. Later (starting in 2003-ish), front end code was written in Perl (Mason) and served by another application named Gurupa. The transition to Gurupa was very long and arduous. I've no idea how the site works now.
- joeframbach 5y agoThe transition from Gurupa to Java (Spring, Horizonte) was long and arduous. If you see a page with /b/ in the url, that's Gurupa.
- PaulDavisThe1st 5y agoCalling it an "internally developed macro language" is stretching it a little bit. It was an extremely simple blob of C++ code that scanned text looking for one of a very small number of known placeholders, and filled them in with the relevant value (session ID, user name, user email etc.) I suppose that over the years between 1996, the capabilities of catsubst may have been expanded somewhat, but certainly when it started there was no formal concept of it being a macro language. In fact, at the very beginning, we experimented with just using m4 (which is a formal macro language) but it wasn't quite right for the job.
- jrauser 5y agoFair enough. I maybe should have put language in scare quotes. :)
- didip 5y agoI would love to read stories about the old tech stack of Amazon. It would be very fascinating to read. I only read little bits about them, e.g. Obidos and Gurupa. I also heard that content authoring used Emacs back in the day, was that true? Link: https://www.quora.com/How-did-Google-Amazon-and-the-like-initially-develop-and-code-their-websites-databases-etc https://www.quora.com/How-did-Google-Amazon-and-the-like-ini...
- PaulDavisThe1st 5y agoThe original (1996 era) tech stack at Amazon wasn't related to anything anyone would use today. When we built the site, there was no such thing as a webstack. PHP did exist, but neither Shel nor myself were familiar enough with it to even consider it as a candidate. We were building an entire system from scratch, with zero off-the-shelf components other than: * Berkeley DB (the original bibliographic database) * Oracle (the original customer database) * Netscape (the original web server) Even the first two were not really used as-is; Shel convinced Margo to add some mmap-related extensions to bdb to suit what we were doing, and rather than using any Oracle technology in a visible way, I wrote an entire wrapper for their APIs that looked like sscanf(). We were not just writing a website, but the entire ordering system, from the web front end all the way to the back-office/warehouse stuff, as well as financial management, customer support and content management. There were no tools for any of this stuff; when we looked at existing online sales software, it always assumed that the company would have things on the shelves, which was more or less the opposite of Amazon's early corporate strategy, and was such a deep assumption (e.g. if it is not in stock and we don't know when it is arriving, the user is actively dissuaded from buying it) that we could not just buy this sort of thing. Because Shel and I were both Unix heads (neither of us had ever used Windows), and also both Emacs users, we encouraged the use of a Unix-y ecosystem in the early days. We had no interest in providing support in-house to Windows users, so a lot of the very early back-office infrastructure included various Unix-centric tools, including Emacs. Similarly, the very early versions of invoice/shipping label printing used LaTeX, but I moved away from that even before I left in Feb 1996. I find that most (notably) younger web developers have a very difficult time understanding why we would have done things the way we did back then, because they essentially cannot conceive of a world more or less completely without any of the tools they are used to thinking of. For most of the initial development, for example, we were not even willing to use cookies (or at least rely on them). The stuff we created was fast (extremely fast) but not scalable (because none of us anticipated the scalability requirements that would be faced within such a short time). Almost certainly faster on a per-request level than anything on the site today, but also massively simpler and completely unable to be distributed.
- donflamenco 5y agoWebsite was written in C for NSAPI. obidos was the name. If you see current URLs that contain /gp/, that is when they transitioned to java backend. GP stands for Garupa.
- PaulDavisThe1st 5y agoTechnically, it was C++ limited to a tiny subset of C++ features. Shel wasn't so keen on all that fancy C++ stuff but thought there was a role for "objects".
- kikoreis 5y agoI believe it's actually called Gurupa, and named after the island on the Amazon just downriver of the delta. The only place I know that refers to the area as Garupa is Selfridge's survey at https://www.history.navy.mil/research/library/online-reading-room/title-list-alphabetically/s/survey-amazon-selfrigde.html https://www.history.navy.mil/research/library/online-reading... — and even so inconsistently.