Scaling to 1 Billion Hits A

Scaling to 1 Billion Hits A

Comparing Javascript Frameworks Chander Dhall Twitter @csdhall [email protected] MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? About Me • Microsoft MVP • Tech Ed Speaker • Asp.NET Insider • Web API Advisor • Pluralsight Author • Dev Chair - Dev Connections MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? About Me • Conference Organizer – MVPMIX.com • Leader – Angularjs Meetup Austin • Leader – Rockstar Developers Meetup • Leader – iPhone Developers Meetup Dallas • President – Chander Dhall, Inc. • Chander Tech Podcast MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Questions • Do you really need a Single Page App? • Which is the best framework for your company? • What’s a futuristic strategy for Javascript? • How does my company qualify for FREE one- hour consulting? MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? What JS frameworks do you use? MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Demo Javascript Fun MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Demo How NOT to write Javascript code MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Demo Code for Angularjs Angular React Aurelia MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Size Matters Library/Framework Size React/Redux 147kb/*** Angular 1 159k/235k Polymer 222k/302k Aurelia 287k/352k Ember 433k Angular 2 636k/1023k MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? React • View Library • React Core Doesn’t have – Dependency Injection – Router – Http – Animation System – Flux/Redux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Why Flux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Flux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Flux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Flux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Flux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Flux MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Redux • Redux is a predictable state container for JavaScript apps. • It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. • Great developer experience: Hot Reloading. Live code editing combined with a time traveling debugger. • Redux works with React, or with any other view library. • It is tiny (2-3kB, including dependencies). MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Size Matters Library/Framework Size React/Redux 147kb/*** Angular 1 159k/235k Polymer 222k/302k Aurelia 287k/352k Ember 433k Angular 2 636k/1023k MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular 2 • 638kb – Reactive Extensions • 1023k – Router, Http etc MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Others • Dynamic UI composition: Ability to render based on a Plain Old Object into dynamically composed component at run time • CSS based Animation System (Aurelia, Angular) MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Size Matters Library/Framework Size React/Redux 147kb/*** Angular 1 159k/235k Polymer 222k/302k Aurelia 287k/352k Ember 433k Angular 2 636k/1023k MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? DEMO: REPAINT PERFORMANCE #devconnections MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Repaint Performance • http://martingust.github.io/aurelia- dbmonster/ • http://jdanyow.github.io/aurelia-dbmonster/ • http://mathieuancelin.github.io/js-repaint- perfs/ MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Repaint Performance Library/Framework Paints/Second Aurelia 90-107/172-186 Angular 2 90-100 Polymer 50-60 Angular 1 50-57 React 48-50 Ember * MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? DEMO: ANGULARJS (BAD CODE SAMPLES) #ChanderDhall.com devconnections MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular vs Angular 2 • Component Based • Controllers Not used • $scope Not used MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular1 angular.module(‘example’) .controller(‘ExampleCtrl’, function() { }); MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular2 import {Component, View} from 'angular2/angular2'; @Component({ selector: 'example' }) @View({ templateUrl: './components/example/example.html' }) export class Example {} MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular 1 <input ng-model=”thing.item” type=”text”> <button ng-click=”thing.submit(item)” type=”submit”> MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular 2 Uses Input with Event Syntax <input #item type=”text”> <button (click)=”submit(item)” type=”submit”> MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Angular 1 angular.module(‘example’) .controller(‘ExampleCtrl’, function($scope) { $scope.name = “John Smith”; }); MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? @Component({ Angular 2 selector: 'example' }) @View({ templateUrl: './components/example/example.html' }) export class Example { constructor() { this.name = “John Smith”; } } MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? ANGULAR VS ANGULARJS DEMO #ChanderDhall.com devconnections MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Standards Compliance Library/Framework Compliance Non-Compliance Aurelia HTML, ES 2016, Web Components Polymer HTML, ES 2015, Web Components Ember HTML, ES 2015 Angular 2 ES 2016 (TS) NG2 Markup, Dart Angular 1 HTML, ES5 Modules, DI React ES 2015 JSX Library/Framework Compliance Non-Compliance MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Separation of Concerns Rating Frameworks/Libraries Excellent Aurelia, Ember Moderate Angular 1 Poor Angular 2, Polymer N/A React MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Ember: Separation of Concerns • The router manages application state • Models encapsulate the application’s data • Controllers communicate between a model and a template • Templates define the html to render • Views handle DOM interaction MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Obtrusiveness Rating Frameworks/Libraries Obtrusive React, Angular 1, Angular 2 Average Polymer, Ember Unobtrusive Aurelia MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Interoperability Rating Frameworks/Libraries Very Interoperable Aurelia, Ember Average Angular 1, Polymer High Friction Angular 2 MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Community GitHub Stars Contributors Angular 50,577 Angular 2 13771 302 React 45,163 741 Ember 16,475 599 Aurelia 6,669 37 Polymer 15,426 84 Dated July 11, 2016 MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Corporate Support Rating Frameworks/Libraries Committed Aurelia, Ember, Angular Not Committed Angular 1, Polymer, React MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Licensing MIT BSD Angular 1, Angular 2, Polymer, React * Aurelia, Ember Both have patent clause MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Real Advice (Not in the slide deck – Come see me ☺) MV* FRAMEWORKS – WHAT’S THE FUTURE AND WHAT’S THE BEST FOR YOU? Recap • Do you really need a Single Page App? • Which is the best framework for your company? • What’s a futuristic strategy for Javascript? • How does my company qualify for FREE consulting? .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    44 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us