Meteor wants to be the warp drive for building real-time apps

4 Comments

For most organizations, building a modern-day cloud application that rivals something as clean and fast as Uber or Facebook is, obviously, not an easy-to-do task. The art of crafting a responsive app that’s able to load up and transmit data in real time demands a developer team that’s skilled in multiple web frameworks and languages like Angular.js, Node.js and PHP.

Meteor Development Group wants to simplify this process, and it thinks the best way to do so is to build everything in JavaScript, the ubiquitous programming language that’s the backbone of web browsers. Meteor Development Group’s open-source project, dubbed Meteor, is essentially a souped-up JavaScript application framework that’s designed to make it easier for coders to create real-time apps like those found at big tech companies while appeasing enterprises who are more familiar with JavaScript than other languages.

“It’s a fresh design to how to build modern architecture out of JavaScript,” said Meteor Development Group founder Matt DeBergalis. “With the right design, you can build experiences like Uber with ten lines of code.”

Enterprises stuck in the past

The way DeBergalis explains it, twenty years ago, the best applications were found in the enterprise. With the advent of mobile computing and real-time applications like Uber and Facebook that are constantly sucking up and distributing data, however, consumers are now used to a type of real-time functionality that’s hard to find among enterprise apps.

“The enterprise is still stuck on Internet Explorer 8,” said DeBergalis. “Why can’t I see the financial reports on my phone? The answer is we [enterprises] can’t afford to write the thing you want.”

And that’s the crux enterprises face: It’s difficult to hire developers who have the skills to craft these type of complex applications, as it requires finding coders who are well-versed in multiple languages like Node.js, Ruby on Rails and the like. And once you find these talented developers, you have to cough up the cash that their skill set requires—hiring in the tech industry is competitive, as you probably already know.

Meteor Development Group founder Matt DeBergalis

Meteor Development Group founder Matt DeBergalis

But if coders are able to build real-time apps using their knowledge of JavaScript, enterprises may find it easier to acquire talent and it could boost the speed of building apps.

“We’ve completed a two-plus year development project that got us to a stable production-ready JavaScript platform that makes it dramatically faster to write apps,” said DeBergalis.

The promise of a real-time web framework

The Meteor framework is an example of what’s known as isomorphic JavaScript, a term popularized by Airbnb engineer Spike Brehm. When a programming language is labeled isomorphic, that basically means that the code can execute on both the server side (where storage systems and databases exists) as well as the client side (what the user sees when accessing an application).

With real-time applications like Uber’s, there can often be several different places where code is now running, instead of the past in which a simple desktop application would only have to interact with a web server to access data, explained DeBergalis.

A modern, real-time application can potentially be comprised of multiple codebases (an Android application, an IOS application and a desktop application, for example), multiple APIs to ensure that all of those different codebases can speak to each other, and multiple databases. A web framework like Meteor essentially covers all of these areas and negates the need to have teams of specialists whose jobs are to maintain several different code bases, he said.

“The idea of isomorphic JavaScript is you want to use the same language and same API in all of those places,” said DeBergalis.

Because the application is now built on one single framework, it’s simpler to keep track of live updates. The JavaScript can watch for changes in a MongoDB database and “alert the programmer when information in that database changes,” DeBergalis said.

Keeping track of database changes is imperative for Meteor as it allows real-time syncing of data on different devices. The Meteor framework works by including “little cache servers next to each user” that are stored in-memory on the user’s device, DeBergalis explained.

Getting started with Meteor

Getting started with Meteor

These in-memory database cache servers are essentially connected to the main database servers stored at the home base, and every time a change in the database occurs due to a user request or transmission, the framework updates those small cache servers so that users get their data fed to them as quickly as possible.

What’s next for Meteor?

Since Meteor was founded in the summer of 2011, it’s gained a lot of traction with developers who are looking for a quicker way to build real-time apps. The 19-person company counts hot startups like Slack, Stripe and Respondly as users.

The startup also has the support of Andreessen Horowitz, who along with Matrix Partners, drove Meteor’s 2012 Series A funding round worth $11.2 million, which Gigaom’s Barb Darrow reported on back in 2012.

The next step for Meteor will be unveiling its long-awaited commercial product called Galaxy, although DeBergalis declined to state when it will be released. As the open-source Meteor framework targets developers, DeBergalis said Galaxy will be more operations-focussed and he described it as a “cloud service for running Meteor apps.”

Although DeBergalis wouldn’t spill the beans on what Meteor has in store for Galaxy, he indicated that the service will address the difficulties of running a real-time application across multiple data centers.

Meteor also only supports the MongoDB and Redis databases, and is working on including support for SQL, he said. Supporting multiple databases will be important for Meteor’s success, especially as many tech observers believe that no single database can satisfy all needs.

Meteor is also working on a port for Windows, which considering the recent open-sourcing of the .NET framework, DeBergalis feels will capture the attention of the [company]Microsoft[/company] developer community.

“What’s interesting is that developers on .NET today are looking for ways to get to the phone,” DeBergalis said. “If I’ve been a .NET developer for a couple of years, I would want to look for something new.”

Will big enterprises start to give Meteor a test drive, since as of now, it appears that it’s more of a startup commodity? While Meteor promises an easier way to build applications, it might be a chore for legacy companies to convert their old application infrastructure to the new framework, although DeBergalis said “there are ways that companies can retrofit their old applications to this new world.”

There’s no denying that the development world is changing and users are demanding fast-responding applications; with new frameworks like Meteor, catching up to this changing world could be less of a nightmare for enterprises.

4 Comments

j

So you are saying we should replace established frameworks with small pool of programmers with a smaller niche pool of early adopter programmers in order to save money.

dosh1965

The good thing (and perhaps a few bad things) about programming languages and application frameworks is that there are so many of them. This is a phenomena that is not likely to subside, as the diversity, scope and scale of connected apps are on an ever-expanding trajectory.

It is quite possible that Meteor has captured in its JS framework a useful and repeatable design patterns for a class of connected apps that entail realtime interactivity. However, the real challenge lies in the inevitable need to keep expanding the framework functionality indefinitely, as developers who commit to using the framework are essentially locked into both its productivity and its limitations (i.e. hitting the functionality wall). None of this is particularly a testament to Meteor’s shortcomings but rather an inconvenient truth of application frameworks in general.

Every developer who contemplates making a commitment to building their app on Meteor will have to weigh the time/value benefits versus the above-mentioned reality. The one fact that’s not disputed is that developing and deploying realtime apps is a complex and expensive undertaking, which warrants a build-vs-buy consideration by technical decision makers, early in the app development lifecycle.

Max Hodges

@dosh1965 Have you built any applications with Meteor? I’ve built and deployed several into production. Meteor is far from being a framework locked into a specific set of design patterns. And it’s already infinitely “expandable” via atmosphere/npm packages. My organization has written a several of our own packages too. The limitations you speak of exist only in your own mind. What you say hardly even makes sense.

>None of this is particularly a testament to Meteor’s shortcomings but rather an inconvenient truth of application frameworks in general.

First you extol your imagined limitations of Meteor. Then you concede that all frameworks suffer these same limitations.

>Every developer who contemplates making a commitment to building their app on Meteor will have to weigh the time/value benefits versus the above-mentioned reality.

As will everyone who builds an app with any framework via your own logic above!

I’ve been using Meteor for all development at my organization for over a year-and-a-half. We’ve had applications in production for 18 months (since Meteor version 0.6.4), and if our experience Meteor can be used for building nearly any application–people are even using it to build Chrome extensions.

Meteor isn’t as dogmatic about it’s approach as you appear to think. The core package are mix and match. You can use other templating systems, and can even remove the publication/subscription functionality if you want. It doesn’t even lock you into any MVC approach, although you can add such a methodology if you prefer. What Meteor does really solve the single biggest challenge to web app development–managing data between the client and server. try it!

Comments are closed.