SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
choosing the right
JavaScript Library/Framework/Toolkit
for your project
Presentation goals
• Give directions
• Compare few major libraries, frameworks &
toolkits
• Statistics
Who am I?
Who am I?
Your project?
•
•
•
•

Type
How big is it
Features
Future expectations
Definitions
• What is library?
• What is framework?
• What is toolkit?
Library
Bits of functionality that you can call.
• jQuery
Framework
Universal, reusable software platform, foundation
of applications, products and solutions.
• MooTools
• AngularJS
• BackboneJS
Toolkit
A set of independent libraries, designed to work
well together, that you can pick and choose from.
• Dojo
• YUI
Features Comparison Table

• all available over CDN*
• all cross-browser**
Selector Engine performance

• all available over CDN*
• all cross-browser**
Size
• Content

• Size does not matter much
if the resources are
distributed over CDN
• cdnjs.com
Modularity
• MooTools provide configurable download

• Async Module Definition - YUI, Dojo
Code structure - jQuery's bad practices
The never-ending callback nesting
Code structure
• Classes for reusable components
• Constructor options
• Use synchronization API instead of nested
callbacks
Code structure
The MooTools way
Code structure
The MooTools way
Utilities
• A utility should first try to delegate to native
and in case it fails - use it’s own implementation
• The more utilities, the better
Commonly needed utilities
• String
trim() hyphenate() camelCase()
escapeRegExp() toInt() toFloat()
substitute()

• Object & Array
each() some() every()
map() empty() append()

filter()

contains()
Commonly needed utilities
• Object
values() keys()
toQueryString()

clone()

merge()

• Array
associate()

clean()

unique()

flatten()
User Interface
• Should be easy to style
(jQueryUI provides a great theme development tool)
User Interface
• API should provide full control
o destroy()
o DatePicker should be able to have its value set from
outside
o Tabs should provide API for selecting tab dynamically
MV*, or not MV*?
that is the question
When to use MV*
• AJAX-heavy web apps
• JSON data structure
• Need to render data in different ways on the same
page
• A lot of user interaction that triggers updates
When NOT to use MV*
•
•
•
•

Your server cannot handle all the requests
Your app has little interactions on the page
Data changes rarely
MV* may be overkill for small projects
o Heavy to implement - if you could have gotten away
with 1 class, you now have 3
You can always combine MV*
with some other framework

Ем виси, ем не виси :)
Releases
•
•
•
•

When was the latest version released?
How often do they release new version?
Are there currently any betas?
Is there huge incompatibility between versions?
Support
• How many opened issues are there?
• Is the documentation rich & easy to use?
• How steeper is the learning curve?
Community
• Which big projects use the framework?
• How big & active the community is?
Usage Statistics
• Content

• Statistics from
goo.gl/lJrPpl
Tips
• Spend some time browsing the source code
• Read other people’s opinion, but don’t count on
them!
Tips
• Write a module/component for your App in plain
JavaScript or pseudo code; then migrate to the
selected library/framework and see how it feels
• TodoMVC has implementations in several MV*
frameworks - check it out at todomvc.com
Are there any Questions?
****

, ask me :)
Thanks for listening!

github.com/ickata
wpbgug.org
blog.ickata.net
sitekreator.com
And thanks to our Sponsors:
Diamond Sponsor:

Gold Sponsors:

Silver Sponsors:
Technological Partners:
Bronze Partners:
Swag Sponsors:

Media Partners:

Más contenido relacionado

La actualidad más candente

jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
dmethvin
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and BeyondBuilding a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and Beyond
Spike Brehm
 

La actualidad más candente (20)

Testing Mobile JavaScript
Testing Mobile JavaScriptTesting Mobile JavaScript
Testing Mobile JavaScript
 
Avoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.jsAvoiding Common Pitfalls in Ember.js
Avoiding Common Pitfalls in Ember.js
 
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
AngularJS vs React JS vs Node JS: Which is Best For Web Development ?
 
jQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web PerformancejQuery Conference San Diego 2014 - Web Performance
jQuery Conference San Diego 2014 - Web Performance
 
jQuery Conference 2012 keynote
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
 
jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010jQuery Keynote - Fall 2010
jQuery Keynote - Fall 2010
 
Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016Testing Angular 2 Applications - HTML5 Denver 2016
Testing Angular 2 Applications - HTML5 Denver 2016
 
Transforming Front-End Disaster Code™ Into A Maintainable Masterpiece
Transforming Front-End Disaster Code™ Into A Maintainable MasterpieceTransforming Front-End Disaster Code™ Into A Maintainable Masterpiece
Transforming Front-End Disaster Code™ Into A Maintainable Masterpiece
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
 
Testing Angular 2 Applications - Rich Web 2016
Testing Angular 2 Applications - Rich Web 2016Testing Angular 2 Applications - Rich Web 2016
Testing Angular 2 Applications - Rich Web 2016
 
Going Node.js at Netflix
Going Node.js at NetflixGoing Node.js at Netflix
Going Node.js at Netflix
 
ITT Flisol 2013
ITT Flisol 2013ITT Flisol 2013
ITT Flisol 2013
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - GeekOut 2016
 
Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017Testing Angular Applications - Jfokus 2017
Testing Angular Applications - Jfokus 2017
 
The Onion
The OnionThe Onion
The Onion
 
Building a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and BeyondBuilding a Single-Page App: Backbone, Node.js, and Beyond
Building a Single-Page App: Backbone, Node.js, and Beyond
 
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
Get Hip with JHipster - Colorado Springs OSS Meetup April 2016
 

Destacado

Dispositivos electronicos michael perez (2)
Dispositivos electronicos michael perez (2)Dispositivos electronicos michael perez (2)
Dispositivos electronicos michael perez (2)
michael_10
 
Armadura oxidada robert fish
Armadura oxidada  robert fishArmadura oxidada  robert fish
Armadura oxidada robert fish
Vero Ponce
 

Destacado (18)

Cross-platform JavaScript
Cross-platform JavaScriptCross-platform JavaScript
Cross-platform JavaScript
 
Megan's Bucket List
Megan's Bucket ListMegan's Bucket List
Megan's Bucket List
 
Caleb bucket list
Caleb bucket listCaleb bucket list
Caleb bucket list
 
Caleb bucket list
Caleb bucket listCaleb bucket list
Caleb bucket list
 
Dispositivos electronicos michael perez (2)
Dispositivos electronicos michael perez (2)Dispositivos electronicos michael perez (2)
Dispositivos electronicos michael perez (2)
 
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our projectChoosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our project
 
Armadura oxidada robert fish
Armadura oxidada  robert fishArmadura oxidada  robert fish
Armadura oxidada robert fish
 
DOM Performance (JSNext Bulgaria)
DOM Performance (JSNext Bulgaria)DOM Performance (JSNext Bulgaria)
DOM Performance (JSNext Bulgaria)
 
Tổng quan về số tự nhiên
Tổng quan về số tự nhiênTổng quan về số tự nhiên
Tổng quan về số tự nhiên
 
WP-Boot
WP-BootWP-Boot
WP-Boot
 
Tính Tổng Với Các Số Hạng Là Phân Số
Tính Tổng Với Các Số Hạng Là Phân SốTính Tổng Với Các Số Hạng Là Phân Số
Tính Tổng Với Các Số Hạng Là Phân Số
 
Hướng dẫn phụ huynh chương trình giảng dạy lớp 5
Hướng dẫn phụ huynh chương trình giảng dạy lớp 5Hướng dẫn phụ huynh chương trình giảng dạy lớp 5
Hướng dẫn phụ huynh chương trình giảng dạy lớp 5
 
Chứng minh hai đoạn thẳng bằng nhau
Chứng minh hai đoạn thẳng bằng nhauChứng minh hai đoạn thẳng bằng nhau
Chứng minh hai đoạn thẳng bằng nhau
 
Một Số Kỹ Năng Giải Hệ Luyện Thi Đại Học
Một Số Kỹ Năng Giải Hệ Luyện Thi Đại HọcMột Số Kỹ Năng Giải Hệ Luyện Thi Đại Học
Một Số Kỹ Năng Giải Hệ Luyện Thi Đại Học
 
1440cauhoiluyenthiquocgiatbkhap1daodongco
1440cauhoiluyenthiquocgiatbkhap1daodongco1440cauhoiluyenthiquocgiatbkhap1daodongco
1440cauhoiluyenthiquocgiatbkhap1daodongco
 
Sử dụng quan hệ giữa đường vuông góc , đường xiên , hình chiếu. Để giải các b...
Sử dụng quan hệ giữa đường vuông góc , đường xiên , hình chiếu. Để giải các b...Sử dụng quan hệ giữa đường vuông góc , đường xiên , hình chiếu. Để giải các b...
Sử dụng quan hệ giữa đường vuông góc , đường xiên , hình chiếu. Để giải các b...
 
Bài Luyện Tập Về Phân Số Lớp 5
Bài Luyện Tập Về Phân Số Lớp 5Bài Luyện Tập Về Phân Số Lớp 5
Bài Luyện Tập Về Phân Số Lớp 5
 
Dang 3: Chứng minh ba điểm thẳng hàng
Dang 3: Chứng minh ba điểm thẳng hàngDang 3: Chứng minh ba điểm thẳng hàng
Dang 3: Chứng minh ba điểm thẳng hàng
 

Similar a Choosing the best JavaScript framework/library/toolkit

Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
Wen-Tien Chang
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
Acquia
 

Similar a Choosing the best JavaScript framework/library/toolkit (20)

Drupal at the EBI
Drupal at the EBIDrupal at the EBI
Drupal at the EBI
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Edy Dawson Notes on SF HTML5 Dev Conf
Edy Dawson Notes on SF HTML5 Dev ConfEdy Dawson Notes on SF HTML5 Dev Conf
Edy Dawson Notes on SF HTML5 Dev Conf
 
UI Dev in Big data world using open source
UI Dev in Big data world using open sourceUI Dev in Big data world using open source
UI Dev in Big data world using open source
 
Full stack development using javascript what and why - ajay chandravadiya
Full stack development using javascript   what and why - ajay chandravadiyaFull stack development using javascript   what and why - ajay chandravadiya
Full stack development using javascript what and why - ajay chandravadiya
 
2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs Vue
 
Angular vs React vs Vue
Angular vs React vs VueAngular vs React vs Vue
Angular vs React vs Vue
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
Presentation 1 Web--dev
Presentation 1 Web--devPresentation 1 Web--dev
Presentation 1 Web--dev
 
Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3Service-Oriented Design and Implement with Rails3
Service-Oriented Design and Implement with Rails3
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
 
DIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development todayDIGIT Noe 2016 - Overview of front end development today
DIGIT Noe 2016 - Overview of front end development today
 
Jumpstart Your Web App
Jumpstart Your Web AppJumpstart Your Web App
Jumpstart Your Web App
 
Dmdh workshop #6
Dmdh workshop #6Dmdh workshop #6
Dmdh workshop #6
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 

Choosing the best JavaScript framework/library/toolkit