|
|
Subscribe / Log in / New account

Development

Meteor: A framework for web applications

November 12, 2014

This article was contributed by Adam Saunders

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:

Meteor is an open source platform for building modern web and mobile apps in pure JavaScript. These apps have live-updating interfaces that let people see information and collaborate with each other in real time, have subtle but essential touches like dialog boxes and popups that feel more like desktop apps than websites, and most importantly, can be run in a browser or installed on any mobile device from the app store.

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.

Comments (none posted)

Brief items

Quotes of the week

The last pieces are finally falling into place. After years of design and implementation, 2015 will be the year that Perl 6 officially launches for production use.
Larry Wall

The Sixth Wall will be built from the things you wear on your body and arrange on the shelves in your bedroom. Nest, QOL, Hue. Automatic. Smart TVs. HAPIfork. Vessyl. Autographer. Memeto. Glass. Dropcam. Jawbone. Fuel. Withings. Fitbit. Healthkit. Little policemen in your pocket, little policemen on your skin.

The Sixth Wall will be made of intelligent dust which settles in the folds of your clothes and communicates your position and heart rate to orbiting satellites. London’s citizens will dream, and the images of their dreams will dance on the telescreens of Piccadilly Circus, and be found wanting.

James Bridle (Thanks to Paul Wise)

It is rare to hear somebody talks about Git without having "sucks" in the same sentence ;-)
Junio C Hamano

Comments (13 posted)

Firefox developer edition released

Mozilla has announced the first release of a version of the Firefox browser aimed at web developers. "Ten years ago, we built Firefox for early adopters and developers to give them more choice and control. Firefox integrated WebAPIs and Add-ons to enable people to get the most out of the Web. Now we’re giving developers the whole browser as a hard-hat area, allowing us to bring front and center the features most relevant to them. Having a dedicated developer browser means we can tailor the browsing experience to what developers do every day."

Comments (3 posted)

GnuPG 2.1.0 "modern" released

Version 2.1.0 of the GNU Privacy Guard has been released; this is the first release in the new "modern" branch. Changes include elliptic curve cryptography support, better keyserver pool handling, the creation of revocation certificates by default, the removal of support for PGP2 keys, and more.

Full Story (comments: 41)

New releases from KDE

KDE has announced the release of KDE Frameworks 5.4.0. KDE Frameworks are 60 addon libraries to Qt which provide a wide variety of commonly needed functionality. This release fixes many issues.

KDE Applications and Platform 4.14.3 has been released. This release also includes Plasma Workspaces 4.11.14. This a primarily a bug-fix release.

KDE Applications 14.12 beta is available for testing. "With the various applications being based on KDE Frameworks 5, the KDE Applications 14.12 releases need a thorough testing in order to maintain and improve the quality and user experience. Actual users are critical to maintaining high KDE quality, because developers simply cannot test every possible configuration. We're counting on you to help find bugs early so they can be squashed before the final release."

Comments (5 posted)

Microsoft open-sources the .NET core

Microsoft has announced that the .NET core code is now available under an open-source (MIT) license. "As a .NET developer you were able to build & run code on more than just Windows for a while now, including Linux, MacOS, iOs and Android. The challenge is that the Windows implementation has one code base while Mono has a complete separate code base. The Mono community was essentially forced to re-implement .NET because no open source implementation was available." Amusingly, the code has been placed on GitHub; the announcement notes that code located there gets far more contributions than code on Microsoft's own "CodePlex" site.

Comments (76 posted)

Newsletters and articles

Development newsletters from the past week

Comments (none posted)

Kügler: Diving into Plasma’s 2015

On his blog, Sebastian Kügler looks at what next year holds for KDE Plasma 5. He looks at high-DPI and Wayland support as well as the plans by distributions (Kubuntu 15.04 for example) to start shipping Plasma 5 as the default desktop environment. "In terms of user demographic, we’re almost certain to see one thing happening with the new Plasma 5 UI, as distros start to ship it by default, this is what these new users are going to see. Not everybody in this group of users is interested in how cool the technology stack lines up, they just want to get their work done and certainly not feel impeded in their daily workflows. This is the target group which we’ve been focusing our work on in months since summer, since the release of Plasma 5.0. Wider group of users sounds pretty abstract, so let’s take some numbers: While Plasma 5 is run by a group of people already, the number of users who get it via Linux distributions is much larger than the group of early adopters. This means by the end of next year, Plasma 5 will be in the hands of millions of users, probably around 10 million, and increasing."

Comments (none posted)

Peck: New GIMP Save/Export plug-in: Saver

At her blog, Akkana Peck has announced a new GIMP plugin called "Saver" that is intended to replace the default Save/Export functionality introduced with the GIMP 2.8 release. GIMP 2.8 famously separated "Save"and "Export" into two separate functions, with "Save" only able to write out images to GIMP's native, multi-layer XCF format. As Peck notes, that change "has been a matter of much controversy. It's been over two years now, and people are still complaining on the gimp-users list." The new plugin is an attempt to perform the "expected" action in each circumstance. "I've been using Saver for nearly all my saving for the past year. If I'm just making a quick edit of a JPEG camera image, Ctrl-S overwrites it without questioning me. If I'm editing an elaborate multi-layer GIMP project, Ctrl-S overwrites the .xcf.gz. If I'm planning to export that image for the web, I Ctrl-Shift-S to bring up the Saver As... dialog, make sure the main filename is .xcf.gz, set a name (ending in .jpg) for the exported copy; and from then on, Ctrl-S will save both the XCF and the JPG copy.

Comments (38 posted)

Meeks: OpenGL rendering for LibreOffice 4.4

Michael Meeks looks at OpenGL rendering in LibreOffice. "Image scaling is another area where we currently suffer; with several open bugs - first one complains about performance, and then when you lower rendering quality to get performance, another bug complains about rendering quality. Doing high quality image interpolation of large images takes time, even when threaded. People love to whack large, high-DPI images into their documents and presentations. By moving all of the image interpolation work to the GPU we should be able to have our cake: pretty scaled images, and also eat it quickly: with fast rendering."

Comments (19 posted)

Baker: Mozilla and the Future of the Open Internet

Mitchell Baker celebrates Firefox's 10th anniversary. "The answer is: yes, Firefox did win in the desktop era. We changed the fundamental landscape by bringing a new experience and a new view of the world to hundreds of millions of people. However, there is still essential work to do as the Web still faces real threats today — and likely will again in the future. Here are details on what’s happening as part of the 10th anniversary of Firefox."

Comments (2 posted)

Page editor: Rebecca Sobol
Next page: Announcements>>


Copyright © 2014, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds