SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Using JavaScript
          in Today’s World
          Sudar Muthu
          Research Engineer
GO BIG!
          Yahoo! Labs

          http://sudarmuthu.com
          http://twitter.com/sudarmuthu
What is JavaScript?
World’s most popular
programming language



     Douglas Crockford -
     http://javascript.crockford.com/popular.html
World’s most
    misunderstood
programming language


     Douglas Crockford -
     http://javascript.crockford.com/popular.html
Who am I?
To talk about JavaScript
Fan of Douglas Crockford
 http://wp.me/p4WjA-pe
The JavaScript wedding
     invitation guy ;)
 http://wp.me/p4WjA-rK
Using JavaScript in
the browser
Options
•   YUI
•   jQuery
•   MooTools
•   Backbone.js
•   Knockout.js
•   .. and a million others
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
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
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
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
Using JavaScript in
the server
Why JavaScript on the server
• Homogenous Programming
  Experience
• Easy meta programming
• Easy reflection
• Object literals
• Interpreted Langauge
What is node.js
•   Event-driven
•   Non-blocking I/O
•   Asynchronous
•   Single-threaded
•   Light weight and efficient
Why node.js
Code like this

var result = db.query("select..");
// use result


either blocks the entire process or
implies multiple execution stacks
(threads).
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.
Demo
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
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
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
Other options to consider
•   Rhino
•   Spidermonkey
•   Narwhal
•   Nitro
Using JavaScript in
mobile applications
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
When to use it?
If you need to have one code base and
develop mobile applications for

•   Android
•   iOS
•   Blackberry
•   Window Phone
•   etc
Using JavaScript in
desktop applications
Some options to consider
•   Windows metro apps
•   Yahoo Konfabulator
•   Cappuccino
•   Titanium
•   Couch DB
Other exoctic use cases
• Control USB hid devices – node-hid
• Control Serial devices – node-
  serialport
• Control Arduino – noduino
• Control Powerpoint presentations
Well, it’s all fine,
  but I don’t like
JavaScript Syntax
Then use




CoffeeScript
Demo
Questions
      Sudar Muthu
      http://sudarmuthu.com
      http://twitter.com/sudarmuthu

Weitere ähnliche Inhalte

Was ist angesagt?

Posladkajmo si JavaScript z uporabo TypeScript a
Posladkajmo si JavaScript z uporabo TypeScript aPosladkajmo si JavaScript z uporabo TypeScript a
Posladkajmo si JavaScript z uporabo TypeScript a
Peter A. Pirc
 
NodeJS_Presentation
NodeJS_PresentationNodeJS_Presentation
NodeJS_Presentation
Arpita Patel
 

Was ist angesagt? (20)

Front-end tools in java webapps
Front-end tools in java webappsFront-end tools in java webapps
Front-end tools in java webapps
 
Best node js course
Best node js courseBest node js course
Best node js course
 
Nodejs basics
Nodejs basicsNodejs basics
Nodejs basics
 
Node js (runtime environment + js library) platform
Node js (runtime environment + js library) platformNode js (runtime environment + js library) platform
Node js (runtime environment + js library) platform
 
DevDay 2018 - Blazor
DevDay 2018 - BlazorDevDay 2018 - Blazor
DevDay 2018 - Blazor
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Blazor v1.1
Blazor v1.1Blazor v1.1
Blazor v1.1
 
Daniel Steigerwald - Este.js - konec velkĂŠho Schizma
Daniel Steigerwald - Este.js - konec velkĂŠho SchizmaDaniel Steigerwald - Este.js - konec velkĂŠho Schizma
Daniel Steigerwald - Este.js - konec velkĂŠho Schizma
 
CQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and DeploymentCQ5 Development Setup, Maven Build and Deployment
CQ5 Development Setup, Maven Build and Deployment
 
Sydjs: static site generators
Sydjs: static site generatorsSydjs: static site generators
Sydjs: static site generators
 
TypeScript Jump Start
TypeScript Jump StartTypeScript Jump Start
TypeScript Jump Start
 
Going Offline with JS
Going Offline with JSGoing Offline with JS
Going Offline with JS
 
TypeScript Introduction
TypeScript IntroductionTypeScript Introduction
TypeScript Introduction
 
Web Development with AngularJS, NodeJS and ExpressJS
Web Development with AngularJS, NodeJS and ExpressJSWeb Development with AngularJS, NodeJS and ExpressJS
Web Development with AngularJS, NodeJS and ExpressJS
 
NodeJS Presentation
NodeJS PresentationNodeJS Presentation
NodeJS Presentation
 
Posladkajmo si JavaScript z uporabo TypeScript a
Posladkajmo si JavaScript z uporabo TypeScript aPosladkajmo si JavaScript z uporabo TypeScript a
Posladkajmo si JavaScript z uporabo TypeScript a
 
NodeJS_Presentation
NodeJS_PresentationNodeJS_Presentation
NodeJS_Presentation
 
Nodejs
NodejsNodejs
Nodejs
 
JavaScript Engine and WebAssembly
JavaScript Engine and WebAssemblyJavaScript Engine and WebAssembly
JavaScript Engine and WebAssembly
 
javerosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparisonjaverosmx-2015-marzo-groovy-java8-comparison
javerosmx-2015-marzo-groovy-java8-comparison
 

Ähnlich wie Using Javascript in today's world

Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with Wakanda
Alexandre Morgaut
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
Richard Rodger
 

Ähnlich wie Using Javascript in today's world (20)

Javascript Best Practices and Intro to Titanium
Javascript Best Practices and Intro to TitaniumJavascript Best Practices and Intro to Titanium
Javascript Best Practices and Intro to Titanium
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Txjs
TxjsTxjs
Txjs
 
Android development workshop
Android development workshopAndroid development workshop
Android development workshop
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Node.js
Node.jsNode.js
Node.js
 
Top 10 frameworks of node js
Top 10 frameworks of node jsTop 10 frameworks of node js
Top 10 frameworks of node js
 
Node
NodeNode
Node
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
Developing Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGapDeveloping Windows Phone 8 apps using PhoneGap
Developing Windows Phone 8 apps using PhoneGap
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.js
 
Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6Tech io nodejs_20130531_v0.6
Tech io nodejs_20130531_v0.6
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with Wakanda
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014Next-generation JavaScript - OpenSlava 2014
Next-generation JavaScript - OpenSlava 2014
 
Real time web
Real time webReal time web
Real time web
 

Mehr von Sudar Muthu

Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)
Sudar Muthu
 

Mehr von Sudar Muthu (20)

A quick preview of WP CLI - Chennai WordPress Meetup
A quick preview of WP CLI - Chennai WordPress MeetupA quick preview of WP CLI - Chennai WordPress Meetup
A quick preview of WP CLI - Chennai WordPress Meetup
 
WordPress Developer tools
WordPress Developer toolsWordPress Developer tools
WordPress Developer tools
 
WordPress Developer Tools to increase productivity
WordPress Developer Tools to increase productivityWordPress Developer Tools to increase productivity
WordPress Developer Tools to increase productivity
 
Unit testing for WordPress
Unit testing for WordPressUnit testing for WordPress
Unit testing for WordPress
 
Unit testing in php
Unit testing in phpUnit testing in php
Unit testing in php
 
Using arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsUsing arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of things
 
How arduino helped me in life
How arduino helped me in lifeHow arduino helped me in life
How arduino helped me in life
 
Having fun with hardware
Having fun with hardwareHaving fun with hardware
Having fun with hardware
 
Getting started with arduino workshop
Getting started with arduino workshopGetting started with arduino workshop
Getting started with arduino workshop
 
Python in raspberry pi
Python in raspberry piPython in raspberry pi
Python in raspberry pi
 
Hack 101 at IIT Kanpur
Hack 101 at IIT KanpurHack 101 at IIT Kanpur
Hack 101 at IIT Kanpur
 
PureCSS open hack 2013
PureCSS open hack 2013PureCSS open hack 2013
PureCSS open hack 2013
 
Pig workshop
Pig workshopPig workshop
Pig workshop
 
Arduino Robotics workshop day2
Arduino Robotics workshop day2Arduino Robotics workshop day2
Arduino Robotics workshop day2
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
 
Hands on Hadoop and pig
Hands on Hadoop and pigHands on Hadoop and pig
Hands on Hadoop and pig
 
Lets make robots
Lets make robotsLets make robots
Lets make robots
 
Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)Capabilities of Arduino (including Due)
Capabilities of Arduino (including Due)
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascript
 
Picture perfect hacks with flickr API
Picture perfect hacks with flickr APIPicture perfect hacks with flickr API
Picture perfect hacks with flickr API
 

KĂźrzlich hochgeladen

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

KĂźrzlich hochgeladen (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Using Javascript in today's world

  • 1. Using JavaScript in Today’s World Sudar Muthu Research Engineer GO BIG! Yahoo! Labs http://sudarmuthu.com http://twitter.com/sudarmuthu
  • 3. World’s most popular programming language Douglas Crockford - http://javascript.crockford.com/popular.html
  • 4. World’s most misunderstood programming language Douglas Crockford - http://javascript.crockford.com/popular.html
  • 5. Who am I? To talk about JavaScript
  • 6. Fan of Douglas Crockford http://wp.me/p4WjA-pe
  • 7. The JavaScript wedding invitation guy ;) http://wp.me/p4WjA-rK
  • 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.
  • 19. Demo
  • 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
  • 32. Demo
  • 33. Questions Sudar Muthu http://sudarmuthu.com http://twitter.com/sudarmuthu