TechWeb

Meteor Streaks Through Social Software Sky

Jul 25, 2012 (08:07 AM EDT)

Read the Original Article at http://www.informationweek.com/news/showArticle.jhtml?articleID=240004348


10 Social Acquisitions Signify Bigger Trends
10 Social Acquisitions Signify Bigger Trends
(click image for larger view and for slideshow)
If you want to make an impression with a social or mobile software app, it helps to make it blazing fast. Fast as a meteor, perhaps?

The Meteor Web development framework is gaining attention for the way it simplifies the creation of responsive applications, particularly social or collaborative applications where many users need to see the actions of the others update in their browsers or on their phones in near real time. On Wednesday, the Meteor Development Group that backs the open source project announced an $11.2 million Series A investment led by Andreessen Horowitz, with additional funding from Matrix Partners and others.

[ Do you really have to choose? Read Myth Of Systems Of Record Vs. Systems Of Engagement. ]

David Skok, a venture capitalist with Matrix Partners, sees Meteor as having the potential to become the next Ruby on Rails. "Every once in a while a new application development framework comes along that dramatically accelerates the way people create applications," Skok wrote in a blog post. " 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." Skok is known for leading the company behind the JBoss open source application server to its acquisition by Red Hat, so he knows something about finding the commercial potential of open source technologies.

The comparison with Ruby on Rails is that the Rails framework is built on the Ruby programming language. Rails can automatically generate skeleton code that simplifies basic tasks such as creating HTML templates and mapping database structures to programming objects. Meteor does something similar for distributed Web and mobile applications, written in JavaScript. JavaScript is the programming language used on both client and server, with Node.js as the server-side JavaScript engine. Node.js has become popular in its own right for use in software such as the LinkedIn mobile app. Meteor's role is to simplify the process of defining which code will run on the client, versus the server, and for sharing data between nodes, so each user can see the actions of the others. The client can be a browser or a mobile app with embedded browser capabilities such as the ability to execute JavaScript.

Meteor also includes a latency compensation mechanism, which allows each user to see the results of an action immediately, without waiting for the round-trip transmission of data between client and server. Given a well-behaved Internet connection, other users will see that update within seconds or milliseconds. When used in conjunction with the MongoDB NoSQL database on the server, Meteor further simplifies data handling by replicating MondoDB API on the client. This means developers can use the same commands to store data on either client or server, with replication between the two.

"Meteor lets typical developers build rich, responsive applications in days rather than the months it takes a team of experts to do it today," Matt DeBergalis, one of the three Meteor co-founders, said in an interview. "The biggest companies with the biggest budgets, like Google with Gmail or Facebook with its photo viewer have been able to invest massive resources in making this work. Now, users expect applications like mapping to feel fluid and interactive the way Google Maps does, but for most developers that is out of reach."

There are entire books written on AJAX, the asynchronous communication method for JavaScript that supports behind-the-scenes transmission of data without Web page refreshes, DeBergalis noted. Yet that's one of a dozen disciplines required to deliver a responsive Internet application that scales, he said. "The process is frankly absurd, to the point where it's getting harder and harder for developers to build great apps," he said. "By making it possible to create apps written entirely in one language, JavaScript, Meteor lets developers focus on the app itself."

To be clear, Meteor is not some kind of point-and-click development environment for amateurs. In its current form, it requires familiarity not only with coding but command-line operations (see the video below). The preview version of the tool is available for Linux and MacOS. There is a community-developed version for Windows, but it has not yet been made part of the official distribution. DeBergalis said the installation process and some other aspects need polishing.

Meteor is designed for deployment to a cloud-based server environment, and for convenience even provides a ready-made cloud service where you can deploy to an address like myapp.meteor.com. However, you can package up the same app and deploy it to the Amazon or Heroku clouds or anywhere else that Node.js is available.




The Meteor technology is at an early preview stage, where basic programming interfaces could still change dramatically. One tutorial by developer Gabriel Manricks concluded developers should consider it anyway. "Even though Meteor is still in its infancy (beta), there isn't anything you can't get around," he wrote. "The amount of time Meteor saves in your application justifies the rare occurrence where you might need to write a workaround."

DeBergalis likened the potential of Meteor to the advent of the relational database. Before the rise of DB2 and Oracle, application developers often created their own database management systems as part of the programming process. Standardization around the relational database made it easier to create business applications because a whole category of data storage and retrieval operations could be delegated to the DBMS. Meteor wants to do something similar by providing a standard mechanism for Internet application development, on top of which developers can focus on the specifics of their application rather than the details of data replication protocols.

There will still be plenty of room for optimization, however. After the advent of the relational database, there was still a big performance difference between the applications written by novices and those written by experts who knew how to optimize every table structure and query.

Similarly, Meteor will make it easier to create a prototype application, accepting all the defaults provided by the framework, but that will not necessarily be the end of the story, DeBergalis said. "Developers still need to be very thoughtful about how they build the apps and how data moves around," he said. By default, Meteor makes it easy to build an app where "every client has a copy of the same information … and that lets you immediately get a feel for what the collaborative fluid experience feels like, which is great for a weekend project or a small internal app."

"Over time, as the application gets bigger, you'll want to think more about efficiency and scalability, in terms of how do I limit the data I send down to each client," DeBergalis added. "So maybe I write a rule that says only send to the client data that matches this filter."

The core Meteor technology is available under an MIT Open Source license. DeBergalis said the long-range revenue plan for Meteor Development Group is to deliver supporting technologies and services for the needs of enterprises, which are different than those of open-source Web developers.

Follow David F. Carr on Twitter @davidfcarr. The BrainYard is @thebyard and facebook.com/thebyard

Every company needs a social networking policy, but don't stifle creativity and productivity with too much formality. Also in the debut, all-digital Social Media For Grownups issue of The BrainYard: The proper tools help in setting social networking policy for your company and ensure that you'll be able to follow through. (Free with registration.)