SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
A brief about different JavaScript frameworks and some suggestions on when to use each one of them. More details at http://sudarmuthu.com/blog/slides-from-my-talk-about-using-javascript-at-teched
A brief about different JavaScript frameworks and some suggestions on when to use each one of them. More details at http://sudarmuthu.com/blog/slides-from-my-talk-about-using-javascript-at-teched
9.
Options
• YUI
• jQuery
• MooTools
• Backbone.js
• Knockout.js
• .. and a million others
10.
When to use YUI
• You already know what JavaScript is
• To build full-fledged websites that
have numerous components with
interdependent dependencies
• You need lot of build-in widgets
• Need to use design patterns
• Need to have a maintainable code
11.
When to use jQuery
• If you are new to JavaScript
• Want something that is light
• Have a simple website with lesser
number of components
• Need a quick solution and want
something that is easier to learn
12.
When to use backbone.js
• Decouple data from the UI
• Use a full fledged MVC in the client
side as well
• Want to have multiple views/clients
(mobile, desktop, tablets etc)
• You have a clear understanding of
JavaScript and also the MVC
concepts
13.
Other special purpose libraries
• Lime.js – HTML5 based game
framework
• Processing.js – Data visualizations
and interactive animations
• flot – JavaScript plotting library
• Raphael – Vector graphics library
15.
Why JavaScript on the server
• Homogenous Programming
Experience
• Easy meta programming
• Easy reflection
• Object literals
• Interpreted Langauge
16.
What is node.js
• Event-driven
• Non-blocking I/O
• Asynchronous
• Single-threaded
• Light weight and efficient
17.
Why node.js
Code like this
var result = db.query("select..");
// use result
either blocks the entire process or
implies multiple execution stacks
(threads).
18.
Why node.js
But a line of code like this
db.query("select..", function (result){
// use result
});
allows the program to return to the
event loop immediately. No more
unnecessary threads.
20.
Demo of callback
// execute the callback after 2 seconds
setTimeout(function () {
console.log("World!");
}, 2000);
// print in console
console.log("Hello");
https://github.com/sudar/jsfoo/blob/master/callback.js
21.
Demo of a server in node.js
var http = require('http'); // require the http module
// create a server
http.createServer(function (req, res) {
// call this function when a request is received
res.writeHead(200, {
'Content-Type': 'text/plain'
});
// send this as part of the response
res.end('Hello Worldn');
}).listen(1337, "127.0.0.1"); // listen on port 1337
// debug information
console.log('Server running at http://127.0.0.1:1337/');
https://github.com/sudar/jsfoo/blob/master/http-server.js
22.
When to use node.js
• Writing highly concurrent server
applications
• Sharing application logic between
server and client
• Peer-to-peer web applications using
websockets
• And node.js is available in Azure
23.
Other options to consider
• Rhino
• Spidermonkey
• Narwhal
• Nitro
25.
PhoneGap
HTML5 app platform that allows you to
write native mobile applications using
web technologies like HTML and
JavaScript
Yes it works in Windows Phone 7 as
well
26.
When to use it?
If you need to have one code base and
develop mobile applications for
• Android
• iOS
• Blackberry
• Window Phone
• etc
28.
Some options to consider
• Windows metro apps
• Yahoo Konfabulator
• Cappuccino
• Titanium
• Couch DB
29.
Other exoctic use cases
• Control USB hid devices – node-hid
• Control Serial devices – node-
serialport
• Control Arduino – noduino
• Control Powerpoint presentations
30.
Well, it’s all fine,
but I don’t like
JavaScript Syntax