One of Obtiva’s long-running customs is a weekly, catered, lunch-and-learn we call Geekfest. Recently, Matt Polito presented his explorations into MongoDB for his side project Breadbox. I appreciated Matt’s demo because he showed us his struggles. Then, Ethan Gunderson, who has taught himself a ton about Mongo over the last 6 months could step in and speak up. As we as a developer community become more open-minded about storing our data in datastores like MongoDB, Neo4j, Riak, etc, we have a lot to learn. First, there’s the syntax and libraries that wrap these storage systems, and these can be picked up quickly. Ultimately, though, the toughest stuff to learn is what I saw Matt struggle with, and what I struggle with. It’s the data modeling, actually thinking about the entities, relationships, calculations, and queries in a different way.
JavaScript is the world’s most widely deployed (and most misunderstood [Crockford 2001]) programming language. With the dawn of HTTP client support in modern web browsers (“Ajax”) and more powerful, standard rendering engines, JavaScript — once considered a mere toy language for designers and hacks — has enjoyed quite a renaissance in the last five years. Indeed, server-side JavaScript is enjoying something of a renaissance itself at the moment, due in no small part to the meteoric rise of Node. What is not as well known is that there have been powerful JavaScript server options for quite a long time, thanks to Mozilla’s excellent Java-based JavaScript engine, Rhino. Rhino is the foundation of two very mature JavaScript platforms: Narwhal and RingoJS (formerly Helma), both of which are supported by the AppEngine JavaScript SDK. We’ll be using RingoJS for this demonstration.