Meteor

A Meatier System

Land Of JS Libraries

https://docs.google.com/spreadsheets/d/1B55Pt0dnENOtA0crNFxM0HkrdV_1KGaOTyu_CqQhJUE/edit?usp=sharing

Meteor Project

  • Began in 2011 (Angular 2009) as Skybreak, renamed Meteor in 2012
  • received $11.2 million in funding in 2012 from Andreessen Horowitz (VC Firm)
  • 1.0 release in March 2015 (Angular June 2012)
  • 210 contributors (1267 angular)
  • Stats from Homepage:
    • 6117 PACKAGES

    • 320K UNIQUE INSTALLS

    • 53 UPCOMING EVENTS

My Meteor Usage

  • Built simple card game 
  • Built half or so of a much more complex board game (gave up due to failing motherboard)
  • Haven't really touched it in months (but I REALLY want to).

Meteor is:

  • A Full Stack
    • Mongo (must install separately, emulates otherwise)
    • NodeJS
    • Internals:
      • Blaze (UI Library)
      • DDP (Distributed Data Protocol)
      • Livequery
      • Full Stack DB Drivers
      • ISOBuild
  • A Command Line Tool
    • Package Manager (Atmosphere)

Meteor Principles 

  • Data on the Wire. Meteor doesn't send HTML over the network. The server sends data and lets the client render it.

  • One Language. Meteor lets you write both the client and the server parts of your application in JavaScript.

  • Database Everywhere. You can use the same methods to access your database from the client or the server.

  • Latency Compensation. On the client, Meteor prefetches data and simulates models to make it look like server method calls return instantly.

  • Full Stack Reactivity. In Meteor, realtime is the default. All layers, from database to template, update themselves automatically when necessary.

  • Embrace the Ecosystem. Meteor is open source and integrates with existing open source tools and frameworks.

  • Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Meteor's main functionality has clean, classically beautiful APIs.

Meteor Usage

  • Filesystem: /client, /server, /public, /private
  • Built in PubSub Pattern
  • Data stored as "Collections" (Mongo Queries)
  • Blaze Templates
    • Handlebars Pattern
    • Helpers
    • Events
    • OnRender Call

Comparison to Angular

  • Shallow Learning Curve
  • Very Fast to get up and running
  • Perhaps a lot messier -- doesn't lend itself to structure, a little harder to assess best practices
  • isomorphic
  • Tailored to users interacting with each other
  • GREAT for Prototyping; simple demo deployment
  • Whole platform as opposed to framework
  • Meteor Performance?
  • Inconsistent Documentation

LET'S BUILD AN APP

Meteor

By qwertyisms

Meteor

  • 865