Meteor
Real-time web development
at lighting speed
Germán Toro del Valle
What is Meteor?
Meteor is an open-source platform for building top-quality web apps in a fraction of the time, whether you're an expert developer or just getting started
#loveit-1: Integrated framework
Everything in Meteor is carefully designed to provide the developer with a new web application development paradigm
All the pieces and parts work seamlessly together. It just feels right
A development platform built by developers for developers
A whole new experience
#loveit-2: up and running
Installation:
$ curl https://install.meteor.com | /bin/sh
Creating apps:
$ meteor create myapp
Running apps locally:
$ cd myapp
$ meteor
=> Meteor server running on: http://localhost:3000/
Deploying apps:
$ meteor deploy myapp.meteor.com
$ meteor bundle
#loveit-3: Data on the wire
Don't send HTML over the network. Send data and let the client render it
The platform is responsible of the data communication, which has collateral benefits such as security and efficiency
The data is just there for the clients to use. And 'there' means locally stored
Open approach in the shape of the Distributed Data Protocol (DDP)
#loveit-4: One language
Write both the client and the server parts of your interface in JavaScript
The boundaries between servers and clients blurs. It feels like a set of components working together
JavaScript as a declarative language fits in a natural way with the traditional imperative or programmatic approach
#loveit-5: Database everywhere
Same document-oriented database API in the server and the clients
Central instance of the database on the server. Distinct views of the database on the clients
Total control by the developer (data transfer, data storage, security, etc.)
Meteor takes cares of keeping everything updated and consistent
#loveit-6: Latency compensation
On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database
- Client update local database view
- Client request update to the server
- Server checks if the update is allowed
- If it is allowed, the server updates the central database and notifies all subscribed clients
- If it is not allowed, the server notifies the original client
#loveit-7: Full stack reactivity
Make realtime the default. All layers, from database to template, should make an event-driven interface available
Reactive programming = Reactive computations + Reactive data sources
Functions which are intelligently executed if some data they depend on changes
Hot code push updates: reactive apps
#loveit-8: Embrace the ecosystem
Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks
Compatible with already existent frameworks: jQuery, Bootstrap, Lungo, Firefox OS Building Blocks, etc.
Leans on trusted technologies (MongoDB, Handlebars) but from an open and plug-able perspective
#loveit-9: Simplicity equals ProductiviTy
"Things should be as simple as possible, but not simpler" (Albert Einstein)
Accomplish simplicity through clean, classically beautiful APIs
A clear repetitive workflow as the neatest sign of simplicity (the 'churrera' principle)
#loveit-10: Extensibility
Meteor is a library of packages: pre-written, self-contained modules that you might need in your app
About a dozen core packages (HTTP connections, dependency tracking, reactivity, etc.)
Hundreds of optional packages via Atmosphere and Meteorite
Hands-on time
Meteor
By Germán Toro del Valle
Meteor
- 3,101