blog

Meteor – The next Ruby-on-Rails?

Pretty much every aspect of our lives is being changed by software. Software has the power to delight, entertain, help us communicate, simplify our work, enhance our creativity, connect us to old friends, and so much more. However writing good software is still a complex process that takes too long, and requires too much expertise. Addressing that pain is what makes Matrix’s latest investment, Meteor, so interesting.

Every once in a while a new application development framework comes along that dramatically accelerates the way people create applications. Those rare platforms that excite developers ultimately revitalize software development and spur new creativity. Though it’s still early, Meteor appears to be the next big thing in Web application development as it is clearly delighting both expert and novice developers.

Right now application developers are all faced with the need to write applications that deal with the mobile web, and step up to users demands for a new level of interactivity. Desktop applications are being replaced by new SaaS/cloud applications, and there is a huge need to create applications for smartphones and tablets.

If you’ve ever looked at Google’s spreadsheet and wondered how they got such great interactivity in a browser, and been impressed by the fact that it would automatically update any other user’s view of the spreadsheet in realtime, then Meteor is for you. Meteor takes the complexity out of writing this kind of realtime, highly interactive web/mobile application.

Over the last few years there has been a huge investment made in updating and improving the performance of Javascript in browsers. That has led to the creation of a powerful new client-side platform that allows a huge amount of application processing to move to the edge of the network away from the server. Now that this is possible, app authors are naturally gravitating in that direction, in the same way that they did when PCs emerged in the 80s and when native mobile clients emerged a few years ago.

To quote Matt DeBergalis of Meteor “We have been building these interactive data-centric apps using web-based technology. It’s a basic impedance mismatch — we’re using stateless web protocols to manage stateful clients that need to constantly get new data from the server. Meteor is basically a reset of the table that plugs the good technologies like JavaScript, MongoDB, Node.js, and Websockets together in a more appropriate way, with new protocols and new system abstractions.”

Take a look at this sampling of comments from the web:

“My first impression of this: wow. If Meteor is all it appears to be, this is nothing short of revolutionary.” – Michael Jansen

““… I hit something that just pretty much blew my mind. Meteorjs(or just Meteor, if you want to get semantic) is a framework being built by a gifted, prolific group of scientists, which uses the binding and instant update techniques found in Handlebars, Nodejs, etc, but does it in a way that at first glance may actually qualify as magic. No, seriously.

“…for the love of all that is holy, go check out Meteor. It’s got some serious, serious potential.” – strack@adobe

What’s the big deal?

Here’s a sampling of a few of Meteor’s exciting capabilities:

Pure JavaScript.
Meteor lets you write your entire app in pure JavaScript. All the same APIs are available on the client and the server — including database APIs! — so the same code can easily run in either environment.

Live page updates.
Just write your templates. They automatically update when data in the database changes. No more boilerplate redraw code to write. Supports any templating language.

Clean, powerful data synchronization.
Write your client code as if it were running on the server and had direct access to the database. No more loading your data from REST endpoints.

Latency compensation.
When a user makes a change, their screen updates immediately — no waiting for the server. If the server rejects their request or executes it differently, the client is patched up with what actually happened.

Hot Code Pushes.
Update your app while users are connected without disturbing them. When you push a new version, the new code is seamlessly injected into each browser frame in which the app is open.

The Team behind Meteor
Not only is the Meteor framework impressive, but the team behind Meteor blew us away when we first met them. Geoff Schmidt, Matt DeBergalis, and Nick Martin are the three founders. They are off-the-charts smart, both technically and about the business. It is going to be a pleasure watching them execute on this big vision.

Watch the Screencast
One of the quickest ways to find out why Meteor is so exciting, is to watch the screencast: