SlideShare a Scribd company logo
1 of 43
Download to read offline
choosing the right

JavaScript
Library/Framework/Toolkit
for your project
Presentation goals
● Give directions
● Compare few major libraries, frameworks &
toolkits
● Statistics
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**
Performance, Size,
Modularity
Selector Engine performance
Size
● Size does not
matter if the
resources are
distributed over
CDN
● cdnjs.com
Modularity
● MooTools provide configurable download

● Async Module Definition - YUI, Dojo
OOP, inheritance,
code reuse
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
Utilities
Utilities
● A utility should first try to delegate to native
and if 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() filter() contains()
map() empty() append()
Commonly needed utilities
● Object
values() keys() clone() merge()
toQueryString()

● Array
associate() clean() unique() flatten()
User Interface
User Interface
● Should be easy to style
(jQueryUI provides a great theme development tool)
User Interface
● API should provide full control
○

destroy()

○ DatePicker should be able to have its value set from
outside
○ 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
○ 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

Ем виси, ем не виси :)
Usage, Support,
Community
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
Statistics from
goo.gl/lJrPpl
Tips
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 todomvc.com
Are there any Questions?
****

, ask me :)
Thanks for listening!
github.com/ickata
wpbgug.org
blog.ickata.net
sitekreator.com

More Related Content

What's hot (6)

Moodle performance optimizations
Moodle performance optimizationsMoodle performance optimizations
Moodle performance optimizations
 
Javascript as universal language
Javascript as universal languageJavascript as universal language
Javascript as universal language
 
Export pdf with puppeteer
Export pdf with puppeteerExport pdf with puppeteer
Export pdf with puppeteer
 
How to develop browser extension
How to develop browser extensionHow to develop browser extension
How to develop browser extension
 
Computing
ComputingComputing
Computing
 
Google Web Toolkit (JUG Latvia)
Google Web Toolkit (JUG Latvia)Google Web Toolkit (JUG Latvia)
Google Web Toolkit (JUG Latvia)
 

Viewers also liked

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
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
Hristo Chakarov
 

Viewers also liked (18)

Dispositivos electronicos michael perez (2)
Dispositivos electronicos michael perez (2)Dispositivos electronicos michael perez (2)
Dispositivos electronicos michael perez (2)
 
Caleb bucket list
Caleb bucket listCaleb bucket list
Caleb bucket list
 
Cross-platform JavaScript
Cross-platform JavaScriptCross-platform JavaScript
Cross-platform JavaScript
 
DOM Performance (JSNext Bulgaria)
DOM Performance (JSNext Bulgaria)DOM Performance (JSNext Bulgaria)
DOM Performance (JSNext Bulgaria)
 
Megan's Bucket List
Megan's Bucket ListMegan's Bucket List
Megan's Bucket List
 
Armadura oxidada robert fish
Armadura oxidada  robert fishArmadura oxidada  robert fish
Armadura oxidada robert fish
 
Caleb bucket list
Caleb bucket listCaleb bucket list
Caleb bucket list
 
Choosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
 
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 to Choosing the right JavaScript library/framework/toolkit for our project

Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Mutual Mobile
 
Contributions: what they are and how to find them
Contributions: what they are and how to find themContributions: what they are and how to find them
Contributions: what they are and how to find them
Pedro Cambra
 

Similar to Choosing the right JavaScript library/framework/toolkit for our project (20)

RealDay: Angular.js
RealDay: Angular.jsRealDay: Angular.js
RealDay: Angular.js
 
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
 
Android Modularization
Android ModularizationAndroid Modularization
Android Modularization
 
Django PPT.pptx
Django PPT.pptxDjango PPT.pptx
Django PPT.pptx
 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework Android Frameworks: Highlighting the Need for a Solid Development Framework 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
 
Angular vs react comparison in 2022 which is better and why
Angular vs react comparison in 2022 which is better and whyAngular vs react comparison in 2022 which is better and why
Angular vs react comparison in 2022 which is better and why
 
Open Lesson How We Built Guide Me Right - Open Campus Tiscali
Open Lesson How We Built Guide Me Right - Open Campus TiscaliOpen Lesson How We Built Guide Me Right - Open Campus Tiscali
Open Lesson How We Built Guide Me Right - Open Campus Tiscali
 
Javascript Frameworks (and How to Learn Them)
Javascript Frameworks (and How to Learn Them)Javascript Frameworks (and How to Learn Them)
Javascript Frameworks (and How to Learn Them)
 
Comparison of-angular-8 vs react-js
Comparison of-angular-8 vs react-jsComparison of-angular-8 vs react-js
Comparison of-angular-8 vs react-js
 
Eureko frameworks
Eureko frameworksEureko frameworks
Eureko frameworks
 
Prototyping Workshop - Wireframes, Mockups, Prototypes
Prototyping Workshop - Wireframes, Mockups, PrototypesPrototyping Workshop - Wireframes, Mockups, Prototypes
Prototyping Workshop - Wireframes, Mockups, Prototypes
 
Selecting the Best Javascript Web Framework
Selecting the Best Javascript Web FrameworkSelecting the Best Javascript Web Framework
Selecting the Best Javascript Web Framework
 
Contributions: what they are and how to find them
Contributions: what they are and how to find themContributions: what they are and how to find them
Contributions: what they are and how to find them
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Tools
 
Ionic
IonicIonic
Ionic
 
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
 
Benefits of OSGi in Practise
Benefits of OSGi in PractiseBenefits of OSGi in Practise
Benefits of OSGi in Practise
 
11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks11 Live Node.js CMS Frameworks
11 Live Node.js CMS Frameworks
 
Reusability is the goal
Reusability is the goalReusability is the goal
Reusability is the goal
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Choosing the right JavaScript library/framework/toolkit for our project