Choosing the best JavaScript framework/library/toolkit
Upcoming SlideShare
Loading in...5

Choosing the best JavaScript framework/library/toolkit






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Choosing the best JavaScript framework/library/toolkit Choosing the best JavaScript framework/library/toolkit Presentation Transcript

  • 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 •
  • 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
  • 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
  • Are there any Questions? **** , ask me :)
  • Thanks for listening!
  • And thanks to our Sponsors: Diamond Sponsor: Gold Sponsors: Silver Sponsors: Technological Partners: Bronze Partners: Swag Sponsors: Media Partners: