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