Matt Makai - Python web dev & Twilio Developer Evangelist.

@mattmakai on Twitter & GitHub

MongoDB, node.js, and Backbone.js

The concept of an all-JavaScript stack on both the client and server is hardly new, but I'm finding the idea more appealing now that the projects have matured. I see notifications like this press release by 10gen that they are making a commitment to better integration with node.js. Granted it is a press release, but I do see the effort 10gen is putting in through the new tutorials and code releases for MongoDB.

Python and Django continue to be my day job technologies of choice. They are great for quickly building web applications. Python and Django are still fun and productive. But it feels like there's an industry shift going on that will continue to provide fuel to the all- or mostly-JavaScript stack.

So I am starting a new side project with MongoDB, node.js, and Backbone.js. I know what the project will be but I am not yet sure if I will just open source it or make it a pay-for access web application.

What do I currently find appealing about learning the MongoDB/node.js/Backbone.js stack (there must be a better name for this similar to the LAMP stack)?

1. Mastering JavaScript fundamentals

Although I've written plenty of JQuery and standard JavaScript code, I still don't feel like I "get it" when it comes to JavaScript fundamentals. Part of learning this stack is figuring out how to do JavaScript the right way.

2. Comparing a traditional LAMP stack with the node.js stack

Non-blocking I/O on node.js sounds like it makes sense. But what does it really mean when you get into the details? What are the real implications for coding fast web applications? I'm curious to learn more about how this works.

3. Is it fun?

As I wrote above, programming in Python/Django is fun. Way more fun than the Java code I used to write. I still cringe when thinking about how damn difficult it was to write a web application in Struts. So will writing a web application in node.js with a NoSQL MongoDB backend and a client-side MVC framework be fun? I just don't know until I write a project with these technologies.


« Back to blog