If you’ve ever messed around setting up your database instead of concentrating on your application you will appreciate how meteor automatically hooks up and starts a mongo database for you. Just start coding against it, and you’re done. Meteor also comes with the clever little addition of mini mongo which means your client has local access to its data which is automatically sync’ed with the server.
Talking of data, when working with Meteor it almost comes alive. Changes on the client are not only sent up to the server but those changes are also propagated to all the connected clients. The spacebars templating system which looks very similar to handlbars (by design I think) makes it easy to bind that reactive data to the UI.
While this area hasn’t been fully bottomed out yet, it is essentially based on Nodejs which is successfully powering many high traffic sites today. However, Meteor brings with it some neat tricks including something called ‘Latency compensation’. Essentially this is a clever trick that makes good use of the local database (mini-mongo) to reflect an update to the client immediately, and in the background send off the update to the server. This makes for a great user experience.
It’s not uncommon to need to take a site down to do a deployment, however, Meteor has focussed very heavily on enabling hot code pushes. It works by injecting new code into the client, rather like the data reactivity, but with the UI. With smart use of the Session object the user can just carry on using the system without necessarily being aware of the update. This also makes for a great developer experience. You can see your code changes take place before your eyes as you make them.
Hang on, isn’t this 6 good things? Well, yes, once I got writing I could stop without at least mentioning how thoughtfully the environment is setup up. When you begin building something in Meteor, it starts in an ‘insecure’ mode. This is makes it much easier to build out your first version. Once you have a good starting point you just remove the ‘insecure’ packages and you have a secure system to work with. Did I mention deployment? Just a command line away and your live to the word! It’s almost too simple
Meteor is currently at version 0.8 and as far as I am aware is hurtling towards it’s 1.0 release later this year. If you are about to start a new project or are looking for a powerful way to build out a SPA application then I would recommend taking a close look at Meteor. It also has a very active community who are building out many useful packages and you can just plug into your app.
I'm a professional software engineer of near on 15 years. Lucky enough to work for a small but rapidly growing company in London called Redington. They have given me the technical freedom to learn some cutting edge technologies like CQRS and Event Sourcing. Now I'm sharing what I learn here.