SlideShare a Scribd company logo
choosing the right

JavaScript
Library/Framework/Toolkit
for your project
Presentation goals
● Give directions
● Compare few major libraries, frameworks &
toolkits
● Statistics
Who am I?
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our project
Choosing the right JavaScript library/framework/toolkit for our project
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)

PDF
Moodle performance optimizations
Jan Meier
 
PPTX
Javascript as universal language
Ronald Harmsen
 
PDF
Export pdf with puppeteer
Knoldus Inc.
 
PDF
How to develop browser extension
Abu Saleh Muhammad Shaon
 
PPTX
Computing
dkovacsdavid
 
PPT
Google Web Toolkit (JUG Latvia)
Dmitry Buzdin
 
Moodle performance optimizations
Jan Meier
 
Javascript as universal language
Ronald Harmsen
 
Export pdf with puppeteer
Knoldus Inc.
 
How to develop browser extension
Abu Saleh Muhammad Shaon
 
Computing
dkovacsdavid
 
Google Web Toolkit (JUG Latvia)
Dmitry Buzdin
 

Viewers also liked (18)

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

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

PDF
RealDay: Angular.js
Miguel Schmitz Grazziotin
 
PPTX
Frontend War: Angular vs React vs Vue
Marudi Subakti
 
PPTX
Angular vs React vs Vue
Hosein Mansouri
 
PDF
Android Modularization
Young-Hyuk Yoo
 
PPTX
Django PPT.pptx
KhyatiBandi1
 
PDF
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Mutual Mobile
 
PDF
Angular vs react comparison in 2022 which is better and why
Noman Shaikh
 
PDF
Open Lesson How We Built Guide Me Right - Open Campus Tiscali
Riccardo Sirigu
 
PPTX
Javascript Frameworks (and How to Learn Them)
All Things Open
 
PPTX
Comparison of-angular-8 vs react-js
easyjobworld
 
PPTX
Eureko frameworks
Görkem Sazara
 
PDF
Prototyping Workshop - Wireframes, Mockups, Prototypes
Marta Soncodi
 
PDF
Selecting the Best Javascript Web Framework
Rajitha Pathiraja
 
ODP
Contributions: what they are and how to find them
Pedro Cambra
 
PDF
GWT - Building Rich Internet Applications Using OO Tools
barciszewski
 
PDF
Web Application Development – Top 8 Frameworks in 2025.pdf
Delimp Technology
 
PPTX
Advanced Web Technology using Django.pptx
smartguykrish11
 
PPTX
Full stack development using javascript what and why - ajay chandravadiya
ajayrcgmail
 
PDF
Benefits of OSGi in Practise
David Bosschaert
 
RealDay: Angular.js
Miguel Schmitz Grazziotin
 
Frontend War: Angular vs React vs Vue
Marudi Subakti
 
Angular vs React vs Vue
Hosein Mansouri
 
Android Modularization
Young-Hyuk Yoo
 
Django PPT.pptx
KhyatiBandi1
 
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Mutual Mobile
 
Angular vs react comparison in 2022 which is better and why
Noman Shaikh
 
Open Lesson How We Built Guide Me Right - Open Campus Tiscali
Riccardo Sirigu
 
Javascript Frameworks (and How to Learn Them)
All Things Open
 
Comparison of-angular-8 vs react-js
easyjobworld
 
Eureko frameworks
Görkem Sazara
 
Prototyping Workshop - Wireframes, Mockups, Prototypes
Marta Soncodi
 
Selecting the Best Javascript Web Framework
Rajitha Pathiraja
 
Contributions: what they are and how to find them
Pedro Cambra
 
GWT - Building Rich Internet Applications Using OO Tools
barciszewski
 
Web Application Development – Top 8 Frameworks in 2025.pdf
Delimp Technology
 
Advanced Web Technology using Django.pptx
smartguykrish11
 
Full stack development using javascript what and why - ajay chandravadiya
ajayrcgmail
 
Benefits of OSGi in Practise
David Bosschaert
 
Ad

Recently uploaded (20)

PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
July Patch Tuesday
Ivanti
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 

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