Meteor: A framework for web applications
Writing rich web applications can be demanding. Developers might be expected by their clients or employers to have a good grasp of HTML, JavaScript, and PHP, as well as other tools and languages. The desire to simplify and hasten web application development has led to the rise of open-source frameworks, such as Node.js and Angular.js, that provide most or all of what's needed to build and deploy a web application. Meteor, another open-source web-application framework, stands out with a number of notable features.
Thousands of developers, in dozens of cities around the world, celebrated Meteor's 1.0 release on November 6: Worldwide Meteor Day. The release announcement nicely sums up Meteor's features:
The real-time updating system, which instantly pulls in changes to the database and refreshes the client-side interface to reflect them, may be the greatest advantage that Meteor has to offer over competing, server-centric solutions like Ruby on Rails. Meteor provides a full-stack solution, while Ruby on Rails has to be configured and connected to a separately managed front-end framework for the client interface.
Live updating is provided by Meteor's various software components, particularly Blaze and the Distributed Data Protocol (DDP). With Blaze, developers write HTML templates, and the software transforms them into elements that live-update the document object model (DOM) of the page. This lets users see database changes in real-time. DDP assists the live-updating process by using JSON and WebSockets; it lets web applications retrieve server data and update on-the-fly based on that data.
There are multiple ways that live updates can be used by web applications. For example, the open source Telescope social news application, which is built in Meteor, adds new entries in real-time on users' browsers without needing to refresh the page.
Because of Blaze, DDP, and other Meteor subprojects, Meteor allows developers to write client-side and server-side code in the same file. Meteor thus removes some of the concerns that developers had with other frameworks, such as Angular.js, that require extra code be written to manage the interactions between the front-end and the back-end. This simplification can be a major advantage to small teams trying to make the most of limited time and resources; with Meteor, all a team needs is a single JavaScript developer who can write both front-end and server-side code.
Meteor's back-end is based on Node.js, but provides more features and ease-of-use for web developers. Meteor is easy to pick up: a basic understanding of JavaScript is all that's needed to get started. Those interested in playing around with it can sign up on www.meteor.com to make and deploy a test Meteor application for free. For inspiration, scroll down on that page to see videos about six different, financially successful projects relying mostly or entirely on Meteor. These include Workpop, which is an online job marketplace. Readers who are interested in the code of Meteor itself can visit the project's GitHub repository; Meteor is licensed under the permissive X11 license.
The Meteor project started in December 2011 under the name Daybreak; in April 2012, its name changed to Meteor and the startup company backing its development became the Meteor Development Group (MDG). There was considerable interest about the project, in part due to MDG's founding members who have worked on a variety of web-centric projects (e.g. Etherpad, Miro). That expertise in web development, along with Meteor's promised live-updating features and easy conversion to mobile apps, led to a lot of interest in a 2012 Hacker News discussion as well.
MDG eventually intends to develop a proprietary multi-tenant hosting environment for Meteor applications, named Galaxy, to make the endeavor profitable. That proprietary product is a long-term milestone for MDG, though; it would only be pursued once Meteor has matured and become popular.
Meteor has indeed started to become popular—something that was made apparent at a Worldwide Meteor Day celebration I attended. The event took place at Shopify's headquarters in Ottawa, Canada, where several enthusiasts praised Meteor and explained its technical features to the rest of the group. The group also interacted with other celebrations online via Google Hangouts.
Meteor has an active development community, which has generated a number of resources for programmers. These include educational ebooks like Discover Meteor, videos from Meteor training website EventedMind, and a discussion forum on Google Groups.
With a focus on simplifying workflows, a company backing its development, and a strong community, Meteor looks to have a substantial impact on web development in the years to come.
| Index entries for this article | |
|---|---|
| GuestArticles | Saunders, Adam |
