SlideShare a Scribd company logo
About JavaScript Libraries
About javascript libraries
Too many choices
eventually leads to

ambiguity and blurring
use case boundaries.
Often one library is
compared with other.

Comparing a jQuery library
with Backbone or Angular is
JavaScript libraries
work at different level
of abstraction.

meaningless. It is like

comparing a processor with
motherboard. You can
compare two processors or
two motherboards but not
both…
So exactly, how does

different libraries and
tools fit into front-end
stack?
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Module
loaders

Base / DOM libraries

Core JavaScript

Web browser

JavaScript

engine provided
by the browser
Core JavaScript engine
• Every browser vendor provides

JavaScript engine
• Varying degree of JavaScript support
by engines
• Sometimes some APIs are buggy or
incomplete

• Major engines are Chakra, V8,
SpiderMonkey, Nitro, Carakan, etc.
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Module
loaders

Hide browser
differences &
provide
consistent cross

Core JavaScript

Web browser

browser API.
Base/DOM manipulation libraries
• Provide abstraction over Core JavaScript
APIs and functions
• Mask browser differences to a larger
extent
• Ideal for basic operations like DOM, CSS,
events, animations & Ajax manipulation
• Provide little help for code organization

Few popular libraries are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
UI/Widget libraries(toolkits)
• Provide out of box reusable UI
widgets/components for rapidly building

web applications
• Some libraries provide features for
building desktop user experience
• Often called toolkits rather than libraries
as utility part is often miniature as
compared to component part

Few popular libraries are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
Web application libraries (MV*)
• Provide features for writing maintainable
& organized JavaScript code
• Client heavy applications usually suffer
from code maintenance as JavaScript
leaves modularization to programmers
• Few libraries heavily influence the design
of application while other libraries leave
design decisions to developers.

Few popular libraries are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
Graphics libraries
• Provide abstraction over raw Canvas, SVG
and WebGL APIs
• Used for online games, image editors and
data visualization
• Object oriented libraries but by no means
substitute for building web applications.
Do not even compare with web application
libraries

Few popular libraries are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
JavaScript module loaders
• Library dependencies and JavaScript code
gets very nasty as code base increases
• Module loaders provide solution to
address code dependency issues
• Loaders works seamlessly with modern
MV* libraries where everything is
organized as modules or components

Few popular libraries are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
JavaScript package managers
• Not really part of web application but part
of project development ecosystem
• Provide tools to install, upgrade, configure
& remove resources used by the project
• It also supports dependency management
and versioning

Few popular managers are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
JavaScript build tools
• What Ant and Maven to Java is what build
tools to JavaScript
• Build tools automates various JavaScript
tasks like concatenating, minifying, JSHint
files and other resources. Also automates
Unit testing of code.
• They are not directly used by web
application but external to application just
like package managers.

Few popular tools are:
Web Application
Widget (UI)
toolkits

Build tools
Full stack
frameworks
Package
managers

Web app
libraries
(MV*)

Graphics
libraries

Base / DOM libraries

Core JavaScript

Web browser

Module
loaders
Full stack frameworks
• There are some that are more than simple
libraries or toolkits. Thus they are

frameworks
• They provide support for many front-end
tasks
• There is no such thing as perfect
framework that can cater to every type of
need

Few popular frameworks are:
Closer look at
other JavaScript

libraries
JavaScript polyfills
• Polyfills is basically a JavaScript code that
emulates standard API that is lacking in

some older browsers
• Some polyfills also try to fix broken API in
the web browsers
• There are polyfills for almost every
HTML5 feature and number is quite large

Modernizr is not a JavaScript polyfill. It is
very small library that detect native
implementation of new features. In
Progressive Enhancement technique,
developer tests for certain feature using
Modernizr and if absent loads the required
polyfill conditionally.
Functional programming
• Along with object oriented nature,
JavaScript also has rich heritage of

functional programming
• In certain cases, functional programming is
much more natural than OOP
• Functional reactive programming uses
functional programming as its basic
building block

Few popular reactive & functional
libraries are:
Unit testing libraries
• Almost half of the JavaScript code is never
unit tested by developers as JavaScript is

still considered as scripting only language
• In Test Driven Development (TDD), tests
are written before any functional code
• As TDD and client heavy application gets
more popular, need for unit testing of
JavaScript code will be ever higher

Few popular unit testing libraries are:
So how do you

choose the right
library?
Some libraries are natural fit

Principle of
Natural fit

for certain tasks. For

example, Backbone.js is
apparent choice for RESTful
JSON applications.

Frameworks like Angular,
Backbone, etc. are good
choice for building single
page applications.
Depending upon the
requirements, it makes sense
to use full stack solutions

Full stack
heavy
libraries

that also direct application
design; while in other cases
lightweight solutions are
much better where
architectural design is left
entirely to developers.

Bare minimum
lightweight
libraries
Especially in case of rapid
prototyping, it helps

development teams to select
libraries with less learning
curve & easier adaptation.

Library like knockout or
Kendo UI is easier to catch on
for WPF or Silverlight
developers as their
philosophy is based on same
MVVM pattern.

T
eam
adaptability &

learning curve
But these are just guidelines
and one should not treat
them like lines carved in
stone. They are meant to be
bent as required.
But before you do anything with JavaScript libraries, do yourself a favor by asking this
question that will save you from many troubles in future

Do you really need a third-party library?
Should you build your custom library?
1.

Libraries create code lock-ins. Not
possible to replace easily

2.

Future can never be anticipated
when choosing a certain library.
Sometimes libraries are forced to

solve the problems they were not
intended to solve in the beginning;
resulting in bloated code base
3.

Many library version upgrades are
not backward compatible. APIs
break easily

Some problems with

third-party libraries
4.

Abstractions provided by libraries
make developers ignore

performance issues
5.

For non-expert developers who
are not aware of JavaScript &

browser internals use library APIs
in not so optimal way.
6.

Writing clean, efficient &
maintainable code is the
responsibility of developers. In the
end, libraries are blamed for any
performance issues.

Some problems with

third-party libraries
In the end, the only
conclusion is choose wisely
Author:
Harshal Patil
@softHarsh
http://definitelysimple.com
http://www.linkedin.com/in/hapatil

More Related Content

PPT
Top 10 web application development frameworks 2016
ODP
Netbeans65 Osum Slides
PDF
Meetup. Technologies Intro for Non-Tech People
PDF
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
PDF
React.js alternatives modern web frameworks and lightweight java script libr...
PDF
The Characteristics of a Successful SPA
PDF
Building software using Rich Clients Platforms Rikard Thulin
PPT
Jsp abes new
Top 10 web application development frameworks 2016
Netbeans65 Osum Slides
Meetup. Technologies Intro for Non-Tech People
Web Application Frameworks - Lecture 05 - Web Information Systems (4011474FNR)
React.js alternatives modern web frameworks and lightweight java script libr...
The Characteristics of a Successful SPA
Building software using Rich Clients Platforms Rikard Thulin
Jsp abes new

What's hot (20)

PPTX
NetBeans Platform for Rich Client Development
PDF
Anatomy of an HTML 5 mobile web app
PDF
Store
PPTX
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
DOCX
Top 10 Javascript Frameworks For Easy Web Development
PPTX
Programming is Fun with ASP.NET MVC
PDF
Netbeans+platform+maven
PDF
Making Multisite Work for You
PDF
PHP Frameworks Review - Mar 19 2015
PDF
Silverlight difference faqs-1
PPTX
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
PPTX
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
PDF
RIA Platform Comparison
PDF
Workshop HTML5+PhoneGap by Ivano Malavolta
PDF
Spring Mvc
PDF
Different Concepts on Databases
PPT
Practical HTML5
PPTX
ODP
Web development in JavaEE7 with JSF, does it still matter?
PDF
Em presentation victor herman
NetBeans Platform for Rich Client Development
Anatomy of an HTML 5 mobile web app
Store
DrupalCamp Ghent 2014 - Developing Drupal 7 with Drupal 8 in mind
Top 10 Javascript Frameworks For Easy Web Development
Programming is Fun with ASP.NET MVC
Netbeans+platform+maven
Making Multisite Work for You
PHP Frameworks Review - Mar 19 2015
Silverlight difference faqs-1
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Module 4 - Dreamweaver Templates (Static vs. Dynamic Content)
RIA Platform Comparison
Workshop HTML5+PhoneGap by Ivano Malavolta
Spring Mvc
Different Concepts on Databases
Practical HTML5
Web development in JavaEE7 with JSF, does it still matter?
Em presentation victor herman
Ad

Similar to About javascript libraries (20)

PPSX
Introduction to backbone_js
PPT
Intro to SPA using JavaScript & ASP.NET
PPTX
Javascript frameworks
PPTX
Single page application and Framework
PDF
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
PPTX
javaScriptLibrariesFrameworks.pptx
PPTX
Isomorphic JavaScript with Node, WebPack, and React
PPTX
9 Best JavaScript Frameworks To Choose
PPTX
Frontend War: Angular vs React vs Vue
PPT
Top java script frameworks ppt
PDF
Presentation 1 Web--dev
PDF
Learning Single page Application chapter 1
PDF
Selecting the Best Javascript Web Framework
PPTX
A sneak peek into the similarities and differences between java and java script
PPTX
What is Mean Stack Development ?
PPTX
Javascript libraries
PPTX
Introduction to Spring & Spring BootFramework
PPTX
Frameworks Galore: A Pragmatic Review
PPTX
Isomorphic JavaScript – future of the web
PDF
Frontend as a first class citizen
Introduction to backbone_js
Intro to SPA using JavaScript & ASP.NET
Javascript frameworks
Single page application and Framework
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
javaScriptLibrariesFrameworks.pptx
Isomorphic JavaScript with Node, WebPack, and React
9 Best JavaScript Frameworks To Choose
Frontend War: Angular vs React vs Vue
Top java script frameworks ppt
Presentation 1 Web--dev
Learning Single page Application chapter 1
Selecting the Best Javascript Web Framework
A sneak peek into the similarities and differences between java and java script
What is Mean Stack Development ?
Javascript libraries
Introduction to Spring & Spring BootFramework
Frameworks Galore: A Pragmatic Review
Isomorphic JavaScript – future of the web
Frontend as a first class citizen
Ad

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation theory and applications.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
“AI and Expert System Decision Support & Business Intelligence Systems”
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
NewMind AI Weekly Chronicles - August'25 Week I
Digital-Transformation-Roadmap-for-Companies.pptx
Empathic Computing: Creating Shared Understanding
Encapsulation theory and applications.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
MIND Revenue Release Quarter 2 2025 Press Release
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Dropbox Q2 2025 Financial Results & Investor Presentation
Network Security Unit 5.pdf for BCA BBA.
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
Big Data Technologies - Introduction.pptx
Spectroscopy.pptx food analysis technology
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

About javascript libraries

  • 3. Too many choices eventually leads to ambiguity and blurring use case boundaries.
  • 4. Often one library is compared with other. Comparing a jQuery library with Backbone or Angular is JavaScript libraries work at different level of abstraction. meaningless. It is like comparing a processor with motherboard. You can compare two processors or two motherboards but not both…
  • 5. So exactly, how does different libraries and tools fit into front-end stack?
  • 6. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 7. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Module loaders Base / DOM libraries Core JavaScript Web browser JavaScript engine provided by the browser
  • 8. Core JavaScript engine • Every browser vendor provides JavaScript engine • Varying degree of JavaScript support by engines • Sometimes some APIs are buggy or incomplete • Major engines are Chakra, V8, SpiderMonkey, Nitro, Carakan, etc.
  • 9. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Module loaders Hide browser differences & provide consistent cross Core JavaScript Web browser browser API.
  • 10. Base/DOM manipulation libraries • Provide abstraction over Core JavaScript APIs and functions • Mask browser differences to a larger extent • Ideal for basic operations like DOM, CSS, events, animations & Ajax manipulation • Provide little help for code organization Few popular libraries are:
  • 11. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 12. UI/Widget libraries(toolkits) • Provide out of box reusable UI widgets/components for rapidly building web applications • Some libraries provide features for building desktop user experience • Often called toolkits rather than libraries as utility part is often miniature as compared to component part Few popular libraries are:
  • 13. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 14. Web application libraries (MV*) • Provide features for writing maintainable & organized JavaScript code • Client heavy applications usually suffer from code maintenance as JavaScript leaves modularization to programmers • Few libraries heavily influence the design of application while other libraries leave design decisions to developers. Few popular libraries are:
  • 15. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 16. Graphics libraries • Provide abstraction over raw Canvas, SVG and WebGL APIs • Used for online games, image editors and data visualization • Object oriented libraries but by no means substitute for building web applications. Do not even compare with web application libraries Few popular libraries are:
  • 17. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 18. JavaScript module loaders • Library dependencies and JavaScript code gets very nasty as code base increases • Module loaders provide solution to address code dependency issues • Loaders works seamlessly with modern MV* libraries where everything is organized as modules or components Few popular libraries are:
  • 19. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 20. JavaScript package managers • Not really part of web application but part of project development ecosystem • Provide tools to install, upgrade, configure & remove resources used by the project • It also supports dependency management and versioning Few popular managers are:
  • 21. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 22. JavaScript build tools • What Ant and Maven to Java is what build tools to JavaScript • Build tools automates various JavaScript tasks like concatenating, minifying, JSHint files and other resources. Also automates Unit testing of code. • They are not directly used by web application but external to application just like package managers. Few popular tools are:
  • 23. Web Application Widget (UI) toolkits Build tools Full stack frameworks Package managers Web app libraries (MV*) Graphics libraries Base / DOM libraries Core JavaScript Web browser Module loaders
  • 24. Full stack frameworks • There are some that are more than simple libraries or toolkits. Thus they are frameworks • They provide support for many front-end tasks • There is no such thing as perfect framework that can cater to every type of need Few popular frameworks are:
  • 25. Closer look at other JavaScript libraries
  • 26. JavaScript polyfills • Polyfills is basically a JavaScript code that emulates standard API that is lacking in some older browsers • Some polyfills also try to fix broken API in the web browsers • There are polyfills for almost every HTML5 feature and number is quite large Modernizr is not a JavaScript polyfill. It is very small library that detect native implementation of new features. In Progressive Enhancement technique, developer tests for certain feature using Modernizr and if absent loads the required polyfill conditionally.
  • 27. Functional programming • Along with object oriented nature, JavaScript also has rich heritage of functional programming • In certain cases, functional programming is much more natural than OOP • Functional reactive programming uses functional programming as its basic building block Few popular reactive & functional libraries are:
  • 28. Unit testing libraries • Almost half of the JavaScript code is never unit tested by developers as JavaScript is still considered as scripting only language • In Test Driven Development (TDD), tests are written before any functional code • As TDD and client heavy application gets more popular, need for unit testing of JavaScript code will be ever higher Few popular unit testing libraries are:
  • 29. So how do you choose the right library?
  • 30. Some libraries are natural fit Principle of Natural fit for certain tasks. For example, Backbone.js is apparent choice for RESTful JSON applications. Frameworks like Angular, Backbone, etc. are good choice for building single page applications.
  • 31. Depending upon the requirements, it makes sense to use full stack solutions Full stack heavy libraries that also direct application design; while in other cases lightweight solutions are much better where architectural design is left entirely to developers. Bare minimum lightweight libraries
  • 32. Especially in case of rapid prototyping, it helps development teams to select libraries with less learning curve & easier adaptation. Library like knockout or Kendo UI is easier to catch on for WPF or Silverlight developers as their philosophy is based on same MVVM pattern. T eam adaptability & learning curve
  • 33. But these are just guidelines and one should not treat them like lines carved in stone. They are meant to be bent as required.
  • 34. But before you do anything with JavaScript libraries, do yourself a favor by asking this question that will save you from many troubles in future Do you really need a third-party library? Should you build your custom library?
  • 35. 1. Libraries create code lock-ins. Not possible to replace easily 2. Future can never be anticipated when choosing a certain library. Sometimes libraries are forced to solve the problems they were not intended to solve in the beginning; resulting in bloated code base 3. Many library version upgrades are not backward compatible. APIs break easily Some problems with third-party libraries
  • 36. 4. Abstractions provided by libraries make developers ignore performance issues 5. For non-expert developers who are not aware of JavaScript & browser internals use library APIs in not so optimal way. 6. Writing clean, efficient & maintainable code is the responsibility of developers. In the end, libraries are blamed for any performance issues. Some problems with third-party libraries
  • 37. In the end, the only conclusion is choose wisely