SlideShare a Scribd company logo
JavaScript MV* Framework -
Making the Right Choice
by @sheiko
Who’s the dude?
I’m Dmitry Sheiko, a web-developer, blogger,
open source contributor.
http://dsheiko.com
@sheiko
https://github.com/dsheiko
What do I need a framework for?
• Abstractions (separation of concerns)
• Implicit conventions
• Code reusability
• Data Binding
• Widgets Library
What framework do I need?
MVC
Backbone
MVP
MVVM
AngularJS
Ember.js
Dojo
YUI
Agility.js
KnockoutJS
CanJS
Maria
Polymer
React
cujoJS Montage
Sammy.js
Stapes
Epitome
DUEL
Kendo UIPureMVC
Olives
PlastronJS
Dijon
rAppid.js
DeftJS + ExtJS
SAPUI5
Exoskeleton
Atma.js
Ractive.js
ComponentJS
Vue.js
Big Three
AngularJS
Backbone
Ember.js
How they implement MV*
bit.ly/1p24xgq
Collection
Model
Template
Router
Controller
Scope View
AngularJS
Backbone
Ember.js
How active developers community
Backbone
Stars: 18 264
Forks: 4 066
Open issues: 26
Closed issues: 3 151
Ember.js
Stars: 10 442
Forks: 2 249
Open issues: 220
Closed issues: 4 788
AngularJS
Stars: 24 958
Forks: 8 635
Open issues: 1 117
Closed issues: 6 704
via Github
13.06.2014
How good FAQ support
Backbone
Questions: 15 191
Answered: 9 193
60%
Avg answers per question: 2.24
Ember.js
Questions: 18 243
Answered: 11 120
61%
Avg answers per question: 2.40
AngularJS
Questions: 40 312
Answered: 22 382
55%
Avg answers per question: 2.30
via StackExchange
13.06.2014
The hidden part of the iceberg
AngularJS
Logical LOC: 6 748
Mean parameter count: 1.5
Cyclomatic complexity: 1 548
Cyclomatic complexity
density: 23%
Maintainability index: 113
Production build: 108K
Ember.js*
Logical LOC: 43 390
Mean parameter count: 1.2
Cyclomatic complexity: 2 543
Cyclomatic complexity
density: 17%
Maintainability index: 113
Production build: 276K
Backbone*
Logical LOC: 965
Mean parameter count: 1.3
Cyclomatic complexity: 275
Cyclomatic complexity
density: 28%
Maintainability index: 108
Production build: 20K
* without dependencies
Wonna really be in control of
your own code?
You have to know then exactly
what the framework does
Ember.js? AngularJS?
Unlikely…
Backbone is our hero!
http://backbonejs.org/docs/backbone.html
What about dependencies?
Do we need them?
Backbone
jQuery Underscore
Not really!
jQuery Underscore
Backbone4
Exoskeleton
Exoskeleton is an optimized Backbone
Faster
Lightweight
Dependencies
optional
http://exosjs.com
Custom builds
Backbone
drop-in
replacement
What about legacy browsers?
https://github.com/es-shims/es5-shim
An example?
TODO MVC
http://bit.ly/T0oREh
Exoskeleton + CommonJS Compiler
http://bit.ly/1lr1R7Z
Thank you!
My credits to www.flaticon.com for
these amazing free vector icons and
surely to Paul Miller and Adam Krebs
for Exoskeleton

More Related Content

What's hot (20)

Going Node.js at Netflix
Going Node.js at Netflix
micahr
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin
 
jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010
jeresig
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
Vlad Filippov
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.js
Mike McNeil
 
Automated perf optimization - jQuery Conference
Automated perf optimization - jQuery Conference
Matthew Lancaster
 
Testing Angular 2 Applications - Rich Web 2016
Testing Angular 2 Applications - Rich Web 2016
Matt Raible
 
Testing Mobile JavaScript
Testing Mobile JavaScript
jeresig
 
Atomic Design with Next.js
Atomic Design with Next.js
Patrick Smith
 
Angular2 + AWS Lambdaでサーバサイドレンダリングしてみた
Angular2 + AWS Lambdaでサーバサイドレンダリングしてみた
暁 三宅
 
Javascript Frameworks
Javascript Frameworks
Mitesh Gandhi
 
Lazy angular w/ webpack
Lazy angular w/ webpack
Rich Snapp
 
Javascript Frameworks Comparison
Javascript Frameworks Comparison
Deepu S Nath
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
reebalazs
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016
Matt Raible
 
Wulin kungfu final
Wulin kungfu final
Jimmy Huang
 
The Onion
The Onion
Jörn Zaefferer
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Matt Raible
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.js
Alex Speller
 
Frontend architecture design for large(r) team final
Frontend architecture design for large(r) team final
Chadchapol Vittavutkarnvej
 
Going Node.js at Netflix
Going Node.js at Netflix
micahr
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin
 
jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010
jeresig
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
Vlad Filippov
 
Node PDX: Intro to Sails.js
Node PDX: Intro to Sails.js
Mike McNeil
 
Automated perf optimization - jQuery Conference
Automated perf optimization - jQuery Conference
Matthew Lancaster
 
Testing Angular 2 Applications - Rich Web 2016
Testing Angular 2 Applications - Rich Web 2016
Matt Raible
 
Testing Mobile JavaScript
Testing Mobile JavaScript
jeresig
 
Atomic Design with Next.js
Atomic Design with Next.js
Patrick Smith
 
Angular2 + AWS Lambdaでサーバサイドレンダリングしてみた
Angular2 + AWS Lambdaでサーバサイドレンダリングしてみた
暁 三宅
 
Javascript Frameworks
Javascript Frameworks
Mitesh Gandhi
 
Lazy angular w/ webpack
Lazy angular w/ webpack
Rich Snapp
 
Javascript Frameworks Comparison
Javascript Frameworks Comparison
Deepu S Nath
 
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
SlickGrid Touch: Making complex JavaScript widgets work on mobile devices
reebalazs
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016
Matt Raible
 
Wulin kungfu final
Wulin kungfu final
Jimmy Huang
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Matt Raible
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.js
Alex Speller
 
Frontend architecture design for large(r) team final
Frontend architecture design for large(r) team final
Chadchapol Vittavutkarnvej
 

Viewers also liked (11)

Modern JavaScript Talk
Modern JavaScript Talk
Derek Binkley
 
Plack at OSCON 2010
Plack at OSCON 2010
Tatsuhiko Miyagawa
 
Why SOLID matters - even for JavaScript
Why SOLID matters - even for JavaScript
martinlippert
 
Introduction to Underscore.js
Introduction to Underscore.js
David Jacobs
 
MVC Revivial on the Web
MVC Revivial on the Web
ESUG
 
Latest Javascript MVC & Front End Frameworks 2017
Latest Javascript MVC & Front End Frameworks 2017
AmarInfotech
 
Marionette: the Backbone framework
Marionette: the Backbone framework
frontendne
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
José Barbosa
 
Comparing JVM Web Frameworks - February 2014
Comparing JVM Web Frameworks - February 2014
Matt Raible
 
Rethinking Best Practices
Rethinking Best Practices
floydophone
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Matt Raible
 
Modern JavaScript Talk
Modern JavaScript Talk
Derek Binkley
 
Why SOLID matters - even for JavaScript
Why SOLID matters - even for JavaScript
martinlippert
 
Introduction to Underscore.js
Introduction to Underscore.js
David Jacobs
 
MVC Revivial on the Web
MVC Revivial on the Web
ESUG
 
Latest Javascript MVC & Front End Frameworks 2017
Latest Javascript MVC & Front End Frameworks 2017
AmarInfotech
 
Marionette: the Backbone framework
Marionette: the Backbone framework
frontendne
 
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
Vuejs Angularjs e Reactjs. Veja as diferenças de cada framework!
José Barbosa
 
Comparing JVM Web Frameworks - February 2014
Comparing JVM Web Frameworks - February 2014
Matt Raible
 
Rethinking Best Practices
Rethinking Best Practices
floydophone
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Matt Raible
 
Ad

Similar to JavaScript MV* Framework - Making the Right Choice (8)

JavaScript frameworks overview + AngularJS
JavaScript frameworks overview + AngularJS
Aliaksandr Kazlou
 
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our project
Hristo Chakarov
 
Javascript mvc
Javascript mvc
felix_bruno
 
MVC & backbone.js
MVC & backbone.js
Mohammed Arif
 
Get Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
Christian Gaetano
 
JavaScript MVC Frameworks: Backbone, Ember and Angular JS
JavaScript MVC Frameworks: Backbone, Ember and Angular JS
Harbinger Systems - HRTech Builder of Choice
 
Choosing a JavaScript Framework
Choosing a JavaScript Framework
Tim Rayburn
 
AngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web Applications
Idexcel Technologies
 
JavaScript frameworks overview + AngularJS
JavaScript frameworks overview + AngularJS
Aliaksandr Kazlou
 
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our project
Hristo Chakarov
 
Get Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
Christian Gaetano
 
Choosing a JavaScript Framework
Choosing a JavaScript Framework
Tim Rayburn
 
AngularJS - A Powerful Framework For Web Applications
AngularJS - A Powerful Framework For Web Applications
Idexcel Technologies
 
Ad

More from Dmitry Sheiko (7)

The Flavor of TypeScript
The Flavor of TypeScript
Dmitry Sheiko
 
Writing Scalable and Maintainable CSS
Writing Scalable and Maintainable CSS
Dmitry Sheiko
 
Tooling JavaScript to ensure consistency in coding style
Tooling JavaScript to ensure consistency in coding style
Dmitry Sheiko
 
Modular JavaScript with CommonJS Compiler
Modular JavaScript with CommonJS Compiler
Dmitry Sheiko
 
TypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
 
A Quick Start - Version Control with Git
A Quick Start - Version Control with Git
Dmitry Sheiko
 
Bringing classical OOP into JavaScript
Bringing classical OOP into JavaScript
Dmitry Sheiko
 
The Flavor of TypeScript
The Flavor of TypeScript
Dmitry Sheiko
 
Writing Scalable and Maintainable CSS
Writing Scalable and Maintainable CSS
Dmitry Sheiko
 
Tooling JavaScript to ensure consistency in coding style
Tooling JavaScript to ensure consistency in coding style
Dmitry Sheiko
 
Modular JavaScript with CommonJS Compiler
Modular JavaScript with CommonJS Compiler
Dmitry Sheiko
 
TypeScript Introduction
TypeScript Introduction
Dmitry Sheiko
 
A Quick Start - Version Control with Git
A Quick Start - Version Control with Git
Dmitry Sheiko
 
Bringing classical OOP into JavaScript
Bringing classical OOP into JavaScript
Dmitry Sheiko
 

Recently uploaded (20)

Internet & Protocols : A Blueprint of the Internet System
Internet & Protocols : A Blueprint of the Internet System
cpnabil59
 
Quantiuwewe e3er14e we3223 32222 m2.pptx
Quantiuwewe e3er14e we3223 32222 m2.pptx
cyberesearchprof
 
COMPUTER ETHICS AND CRIME.......................................................
COMPUTER ETHICS AND CRIME.......................................................
FOOLKUMARI
 
The it.com Domains Brand Book for registrars, domain resellers and hosting co...
The it.com Domains Brand Book for registrars, domain resellers and hosting co...
it.com Domains
 
05-introduction-to-operating-systems.pptx
05-introduction-to-operating-systems.pptx
pepecompany1
 
UV_Unwrapping_Lecture_with_Figures.pptx presentation for lecture of animation
UV_Unwrapping_Lecture_with_Figures.pptx presentation for lecture of animation
17218
 
Dark Web Presentation - 1.pdf about internet which will help you to get to kn...
Dark Web Presentation - 1.pdf about internet which will help you to get to kn...
ragnaralpha7199
 
Timeline Infographics Para utilização diária
Timeline Infographics Para utilização diária
meslellis
 
Internet Download Manager (IDM) 6.42.40 Crack Download
Internet Download Manager (IDM) 6.42.40 Crack Download
Puppy jhon
 
3 years of Quarkus in production, what have we learned - Devoxx Polen
3 years of Quarkus in production, what have we learned - Devoxx Polen
Jago de Vreede
 
Unlocking Business Growth Through Targeted Social Engagement
Unlocking Business Growth Through Targeted Social Engagement
Digital Guider
 
Predicting Site Quality Google Patent US9767157B2 - Behzad Hussain.pdf
Predicting Site Quality Google Patent US9767157B2 - Behzad Hussain.pdf
Behzad Hussain
 
CBUSDAW - Ash Lewis - Reducing LLM Hallucinations
CBUSDAW - Ash Lewis - Reducing LLM Hallucinations
Jason Packer
 
最新版美国威斯康星大学绿湾分校毕业证(UWGB毕业证书)原版定制
最新版美国威斯康星大学绿湾分校毕业证(UWGB毕业证书)原版定制
Taqyea
 
SAP_S4HANA_ChatGPT_Integration_Presentation.pptx
SAP_S4HANA_ChatGPT_Integration_Presentation.pptx
vemulavenu484
 
rosoft PowcgnggerPoint Presentation.pptx
rosoft PowcgnggerPoint Presentation.pptx
sirbabu778
 
Vigilanti-Cura-Protecting-the-Faith.pptx
Vigilanti-Cura-Protecting-the-Faith.pptx
secretarysocom
 
In order to install and use the device software, your computer must meet the ...
In order to install and use the device software, your computer must meet the ...
raguclc
 
PPT 18.03.2023.pptx for i smart programme
PPT 18.03.2023.pptx for i smart programme
AbhimanShastry
 
Inter-Mirifica-Navigating-Media-in-the-Modern-World.pptx
Inter-Mirifica-Navigating-Media-in-the-Modern-World.pptx
secretarysocom
 
Internet & Protocols : A Blueprint of the Internet System
Internet & Protocols : A Blueprint of the Internet System
cpnabil59
 
Quantiuwewe e3er14e we3223 32222 m2.pptx
Quantiuwewe e3er14e we3223 32222 m2.pptx
cyberesearchprof
 
COMPUTER ETHICS AND CRIME.......................................................
COMPUTER ETHICS AND CRIME.......................................................
FOOLKUMARI
 
The it.com Domains Brand Book for registrars, domain resellers and hosting co...
The it.com Domains Brand Book for registrars, domain resellers and hosting co...
it.com Domains
 
05-introduction-to-operating-systems.pptx
05-introduction-to-operating-systems.pptx
pepecompany1
 
UV_Unwrapping_Lecture_with_Figures.pptx presentation for lecture of animation
UV_Unwrapping_Lecture_with_Figures.pptx presentation for lecture of animation
17218
 
Dark Web Presentation - 1.pdf about internet which will help you to get to kn...
Dark Web Presentation - 1.pdf about internet which will help you to get to kn...
ragnaralpha7199
 
Timeline Infographics Para utilização diária
Timeline Infographics Para utilização diária
meslellis
 
Internet Download Manager (IDM) 6.42.40 Crack Download
Internet Download Manager (IDM) 6.42.40 Crack Download
Puppy jhon
 
3 years of Quarkus in production, what have we learned - Devoxx Polen
3 years of Quarkus in production, what have we learned - Devoxx Polen
Jago de Vreede
 
Unlocking Business Growth Through Targeted Social Engagement
Unlocking Business Growth Through Targeted Social Engagement
Digital Guider
 
Predicting Site Quality Google Patent US9767157B2 - Behzad Hussain.pdf
Predicting Site Quality Google Patent US9767157B2 - Behzad Hussain.pdf
Behzad Hussain
 
CBUSDAW - Ash Lewis - Reducing LLM Hallucinations
CBUSDAW - Ash Lewis - Reducing LLM Hallucinations
Jason Packer
 
最新版美国威斯康星大学绿湾分校毕业证(UWGB毕业证书)原版定制
最新版美国威斯康星大学绿湾分校毕业证(UWGB毕业证书)原版定制
Taqyea
 
SAP_S4HANA_ChatGPT_Integration_Presentation.pptx
SAP_S4HANA_ChatGPT_Integration_Presentation.pptx
vemulavenu484
 
rosoft PowcgnggerPoint Presentation.pptx
rosoft PowcgnggerPoint Presentation.pptx
sirbabu778
 
Vigilanti-Cura-Protecting-the-Faith.pptx
Vigilanti-Cura-Protecting-the-Faith.pptx
secretarysocom
 
In order to install and use the device software, your computer must meet the ...
In order to install and use the device software, your computer must meet the ...
raguclc
 
PPT 18.03.2023.pptx for i smart programme
PPT 18.03.2023.pptx for i smart programme
AbhimanShastry
 
Inter-Mirifica-Navigating-Media-in-the-Modern-World.pptx
Inter-Mirifica-Navigating-Media-in-the-Modern-World.pptx
secretarysocom
 

JavaScript MV* Framework - Making the Right Choice

  • 1. JavaScript MV* Framework - Making the Right Choice by @sheiko
  • 2. Who’s the dude? I’m Dmitry Sheiko, a web-developer, blogger, open source contributor. http://dsheiko.com @sheiko https://github.com/dsheiko
  • 3. What do I need a framework for? • Abstractions (separation of concerns) • Implicit conventions • Code reusability • Data Binding • Widgets Library
  • 4. What framework do I need? MVC Backbone MVP MVVM AngularJS Ember.js Dojo YUI Agility.js KnockoutJS CanJS Maria Polymer React cujoJS Montage Sammy.js Stapes Epitome DUEL Kendo UIPureMVC Olives PlastronJS Dijon rAppid.js DeftJS + ExtJS SAPUI5 Exoskeleton Atma.js Ractive.js ComponentJS Vue.js
  • 6. How they implement MV* bit.ly/1p24xgq Collection Model Template Router Controller Scope View AngularJS Backbone Ember.js
  • 7. How active developers community Backbone Stars: 18 264 Forks: 4 066 Open issues: 26 Closed issues: 3 151 Ember.js Stars: 10 442 Forks: 2 249 Open issues: 220 Closed issues: 4 788 AngularJS Stars: 24 958 Forks: 8 635 Open issues: 1 117 Closed issues: 6 704 via Github 13.06.2014
  • 8. How good FAQ support Backbone Questions: 15 191 Answered: 9 193 60% Avg answers per question: 2.24 Ember.js Questions: 18 243 Answered: 11 120 61% Avg answers per question: 2.40 AngularJS Questions: 40 312 Answered: 22 382 55% Avg answers per question: 2.30 via StackExchange 13.06.2014
  • 9. The hidden part of the iceberg AngularJS Logical LOC: 6 748 Mean parameter count: 1.5 Cyclomatic complexity: 1 548 Cyclomatic complexity density: 23% Maintainability index: 113 Production build: 108K Ember.js* Logical LOC: 43 390 Mean parameter count: 1.2 Cyclomatic complexity: 2 543 Cyclomatic complexity density: 17% Maintainability index: 113 Production build: 276K Backbone* Logical LOC: 965 Mean parameter count: 1.3 Cyclomatic complexity: 275 Cyclomatic complexity density: 28% Maintainability index: 108 Production build: 20K * without dependencies
  • 10. Wonna really be in control of your own code?
  • 11. You have to know then exactly what the framework does
  • 13. Backbone is our hero! http://backbonejs.org/docs/backbone.html
  • 14. What about dependencies? Do we need them? Backbone jQuery Underscore
  • 16. Exoskeleton is an optimized Backbone Faster Lightweight Dependencies optional http://exosjs.com Custom builds Backbone drop-in replacement
  • 17. What about legacy browsers? https://github.com/es-shims/es5-shim
  • 18. An example? TODO MVC http://bit.ly/T0oREh Exoskeleton + CommonJS Compiler http://bit.ly/1lr1R7Z
  • 19. Thank you! My credits to www.flaticon.com for these amazing free vector icons and surely to Paul Miller and Adam Krebs for Exoskeleton