One fateful summer five years ago, I accidentally stumbled upon the world of Web APIs - starting with the Amazon E-Commerce API. I was supposed to be working on a research project, but I couldn't resist the potential of the API. Amazon's catalog & functionality at my fingertips? And I could do whatever I wanted with it? I just had to play with it.
So I made my very first mashup: the Similarity Web. It's an app that uses the Amazon ItemLookup & SimilarityLookup API calls to let you find a book & visualize the web of books similar to it. It was a fun little app, and it even made me some money in referrals - especially after marketing guru Seth Godin linked to the "Purple Cow" web in his blog. Unfortunately, as it happens, Amazon deprecated the version of the ECS API that I was using, and the app stopped working. It's been on my to-do list for the last few years to revive it.
Well, thanks to my former employer, I found an excuse to do just that. Google is holding a contest for free I/O tickets, and a few Fridays ago, they held the App Engine contest. After I made it through Round 1 (deploying a Fibonacci JSON-RPC service), I was presented with the Round II challenge: make an app that uses one of their more advanced APIs - blobstore, task queue, pipeline, mapper. I knew that I could use task queues in a couple different ways in Similarity Web, so at 5pm on that Friday, I started remaking it from scratch and at noon on Saturday, I submitted the fully functional remake.
Much has changed in web development in the last 5 years - both in what I personally use and what the world uses - so I thought it'd be interesting to compare the technology stack for each version of the Similarity Web.
|Hosting||LiquidWeb (shared hosting)||App Engine|
|Amazon API||Raw HTTP calls||Bottlenose wrapper library|
|Data Storage||Filesystem||Non-relational Datastore|
|Frontend Language||Pure JS||JS + jQuery|
The general trend? The app is built on more scalable infrastructure, more web-friendly formats and standards, and more pre-existing libraries; it was faster to develop and works in more environments than before. Web development is getting better and better. Oh, and yes, I did get a Google I/O ticket! :)