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