SlideShare a Scribd company logo
1 of 21
Introduction to Node.js 
Joshua McNeese 
Develop Intelligence
Introductions 
Hi, my name is Joshua McNeese and I’m a 
JavaScript programmer.
Agenda 
What is Node.js? 
How does it work? 
What is it good for? 
Some cool examples 
Where can you learn more?
Node.js history 
First published in 2009 by Ryan Dahl, sponsored 
by Joyent 
Inspired by the file upload bar on Flickr 
npm introduced in 2011 
Microsoft partnered with Joyent in 2011 to 
provide a native Windows version 
Dahl stepped aside as project lead in 2012 to 
pursue new research projects
The future is bright! 
After 5 years since its release 
3rd most popular project on Github 
2 million downloads a month 
Over 20 million downloads of v0.10+ 
In use by large brands such as Goldman Sachs, eBay, 
Conde Nast, Dow Jones, Apple, Yahoo and many more 
Companies are hiring 
Since Jan `10, the number of Node.js positions have 
increased more than 90,000% 
Interest is high 
Google search trends have increased year over year, 
even when other “hot” technologies decline (RoR) or 
remain the same (Obj-C)
So what is Node.js? 
“Node.js is a platform built on Chrome's 
JavaScript runtime for easily building fast, 
scalable network applications. Node.js uses an 
event-driven, non-blocking I/O model that makes 
it lightweight and efficient, perfect for data-intensive 
real-time applications that run across 
distributed devices.”
Uh… what? 
Unless you are already familiar with real-time 
application development, this possibly sounds 
like techno-babble 
So let’s break that down!
It’s JavaScript! 
Code is parsed using Google’s V8 JavaScript 
engine, originally developed for Chrome 
The good news is that if you already know 
JavaScript, learning Node.js is fairly easy 
The bad news is that it’s not like the front-end 
JavaScript you are probably familiar with
It’s event-driven 
Much like frontend JavaScript, Node.js code 
executes in an “event loop”
What is an “Event Loop”? 
According to MDN: “The Event Loop is a queue 
of callback functions. When an async function 
executes, the callback function is pushed into 
the queue. The JavaScript engine doesn't start 
continue processing the event loop until the 
code after an async function has executed.”
Non-blocking I/O 
Working hand-in-hand with JavaScript’s 
asynchronous nature, any I/O is delegated to a 
separate pool of threads 
Callbacks to execute once I/O operations are 
completed are added to the event loop for future 
execution 
This is one of the cornerstones of Node’s speed 
and scalability 
Why? Because I/O is expensive
A little comparison…
The Node.js way
NPM 
Bundled with Node.js, similar to CPAN, PEAR, 
Ruby gems or Python eggs 
There’s pretty much a package for everything* 
Impressive stats: 
> 104k packages 
> 146 million downloads last week 
> 599 million downloads last month 
Super easy to use: 
npm install express
package.json
Some cool examples 
A webserver in 5 lines? Preposterous! 
Query a pooled mysql connection? No problem!
Streams too? 
Most I/O is handled by streams, so it’s easy to 
do things like encrypt, compress or otherwise 
modify streaming data:
What is it good for? 
Node.js is good for lightweight, non-CPU 
intensive network applications 
APIs 
Real-time applications, pub/sub, chat servers 
Streaming data 
Proxies 
Command-line utilities 
Remember that Node.js is still in “beta”, but can 
be successfully deployed in production 
environments
Where can you learn more? 
Node.js Info 
http://nodejs.org 
http://howtonode.org 
http://www.npmjs.org 
http://www.codewars.com 
http://www.developintelligence.com/catalog/web-development-training/ 
nodejs 
Developer Info 
Learn about future webinars with AMD Developer Central: 
http://developer.amd.com 
Watch this webinar replay: www.youtube.com/user/AMDDevCentral 
Learn when the replay is posted: Follow @AMDDevCentral on 
Twitter 
Download this deck: http://www.slideshare.net/DevCentralAMD
Q&A 
Any questions?
Thank You! 
See you next time!

More Related Content

What's hot

What's hot (20)

Express js
Express jsExpress js
Express js
 
Introduction to Node js
Introduction to Node jsIntroduction to Node js
Introduction to Node js
 
NodeJS - Server Side JS
NodeJS - Server Side JS NodeJS - Server Side JS
NodeJS - Server Side JS
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Node.js Basics
Node.js Basics Node.js Basics
Node.js Basics
 
Intro to vue.js
Intro to vue.jsIntro to vue.js
Intro to vue.js
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
 
Expressjs
ExpressjsExpressjs
Expressjs
 
Introduction to Node JS.pdf
Introduction to Node JS.pdfIntroduction to Node JS.pdf
Introduction to Node JS.pdf
 
Express node js
Express node jsExpress node js
Express node js
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Express JS
Express JSExpress JS
Express JS
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Nodejs vatsal shah
Nodejs vatsal shahNodejs vatsal shah
Nodejs vatsal shah
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
.Net Core
.Net Core.Net Core
.Net Core
 
Vue.js
Vue.jsVue.js
Vue.js
 
Maven ppt
Maven pptMaven ppt
Maven ppt
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 

Viewers also liked

Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
AMD Developer Central
 

Viewers also liked (20)

Media SDK Webinar 2014
Media SDK Webinar 2014Media SDK Webinar 2014
Media SDK Webinar 2014
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
 
Intro to Node.js
Intro to Node.jsIntro to Node.js
Intro to Node.js
 
Intro to ES6 / ES2015
Intro to ES6 / ES2015Intro to ES6 / ES2015
Intro to ES6 / ES2015
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
 
Inside XBox- One, by Martin Fuller
Inside XBox- One, by Martin FullerInside XBox- One, by Martin Fuller
Inside XBox- One, by Martin Fuller
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas Thibieroz
 
DirectGMA on AMD’S FirePro™ GPUS
DirectGMA on AMD’S  FirePro™ GPUSDirectGMA on AMD’S  FirePro™ GPUS
DirectGMA on AMD’S FirePro™ GPUS
 
Gcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodesGcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodes
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan Nevraev
 

Similar to Introduction to Node.js

Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
lubnayasminsebl
 
Node.js Web Development SEO Expert Bangladesh LTD.pdf
Node.js Web Development  SEO Expert Bangladesh LTD.pdfNode.js Web Development  SEO Expert Bangladesh LTD.pdf
Node.js Web Development SEO Expert Bangladesh LTD.pdf
Tasnim Jahan
 
Node.js.pdf
Node.js.pdfNode.js.pdf
Node.js.pdf
gulfam ali
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
DarshanaMallick
 

Similar to Introduction to Node.js (20)

02 Node introduction
02 Node introduction02 Node introduction
02 Node introduction
 
Definitive Guide to Powerful Nodejs Development.pptx
Definitive Guide to Powerful Nodejs Development.pptxDefinitive Guide to Powerful Nodejs Development.pptx
Definitive Guide to Powerful Nodejs Development.pptx
 
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdfNode.js and the MEAN Stack Building Full-Stack Web Applications.pdf
Node.js and the MEAN Stack Building Full-Stack Web Applications.pdf
 
All You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdfAll You Need to Know About Using Node.pdf
All You Need to Know About Using Node.pdf
 
Node js for beginners
Node js for beginnersNode js for beginners
Node js for beginners
 
Kalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect GuideKalp Corporate Node JS Perfect Guide
Kalp Corporate Node JS Perfect Guide
 
NodeJS and what is actually does
NodeJS and what is actually doesNodeJS and what is actually does
NodeJS and what is actually does
 
Node.js and Enterprise Web Apps: Know all About it
Node.js and Enterprise Web Apps: Know all About itNode.js and Enterprise Web Apps: Know all About it
Node.js and Enterprise Web Apps: Know all About it
 
Node js
Node jsNode js
Node js
 
What is Node.js_ Where, When & How To Use It.pdf
What is Node.js_ Where, When & How To Use It.pdfWhat is Node.js_ Where, When & How To Use It.pdf
What is Node.js_ Where, When & How To Use It.pdf
 
Node, express & sails
Node, express & sailsNode, express & sails
Node, express & sails
 
Node.js Web Development SEO Expert Bangladesh LTD.pdf
Node.js Web Development  SEO Expert Bangladesh LTD.pdfNode.js Web Development  SEO Expert Bangladesh LTD.pdf
Node.js Web Development SEO Expert Bangladesh LTD.pdf
 
Running Node Applications on iOS and Android
Running Node Applications on iOS and AndroidRunning Node Applications on iOS and Android
Running Node Applications on iOS and Android
 
What is the reason linked in, yahoo, netflix, twitter, trello uses nodejs
What is the reason linked in, yahoo, netflix, twitter, trello uses nodejs What is the reason linked in, yahoo, netflix, twitter, trello uses nodejs
What is the reason linked in, yahoo, netflix, twitter, trello uses nodejs
 
12 Reasons to Choose NodeJS for Product Development.pdf
12 Reasons to Choose NodeJS for Product Development.pdf12 Reasons to Choose NodeJS for Product Development.pdf
12 Reasons to Choose NodeJS for Product Development.pdf
 
Node.js.pdf
Node.js.pdfNode.js.pdf
Node.js.pdf
 
What are some misconceptions about node js
What are some misconceptions about node jsWhat are some misconceptions about node js
What are some misconceptions about node js
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
 
What is node.js
What is node.jsWhat is node.js
What is node.js
 

More from AMD Developer Central

More from AMD Developer Central (12)

Inside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin FullerInside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin Fuller
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
RapidFire - the Easy Route to low Latency Cloud Gaming Solutions - AMD at GDC14
 
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
Mantle and Nitrous - Combining Efficient Engine Design with a modern API - AM...
 
Mantle - Introducing a new API for Graphics - AMD at GDC14
Mantle - Introducing a new API for Graphics - AMD at GDC14Mantle - Introducing a new API for Graphics - AMD at GDC14
Mantle - Introducing a new API for Graphics - AMD at GDC14
 
Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14Direct3D and the Future of Graphics APIs - AMD at GDC14
Direct3D and the Future of Graphics APIs - AMD at GDC14
 
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
Vertex Shader Tricks by Bill Bilodeau - AMD at GDC14
 
Keynote (Tony King-Smith) - Silicon? Check. HSA? Check. All done? Wrong! - by...
Keynote (Tony King-Smith) - Silicon? Check. HSA? Check. All done? Wrong! - by...Keynote (Tony King-Smith) - Silicon? Check. HSA? Check. All done? Wrong! - by...
Keynote (Tony King-Smith) - Silicon? Check. HSA? Check. All done? Wrong! - by...
 
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
Keynote (Nandini Ramani) - The Role of Java in Heterogeneous Computing & How ...
 
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
Keynote (Mike Muller) - Is There Anything New in Heterogeneous Computing - by...
 
Keynote (Dr. Lisa Su) - Developers: The Heart of AMD Innovation - by Dr. Lisa...
Keynote (Dr. Lisa Su) - Developers: The Heart of AMD Innovation - by Dr. Lisa...Keynote (Dr. Lisa Su) - Developers: The Heart of AMD Innovation - by Dr. Lisa...
Keynote (Dr. Lisa Su) - Developers: The Heart of AMD Innovation - by Dr. Lisa...
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Modernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using BallerinaModernizing Legacy Systems Using Ballerina
Modernizing Legacy Systems Using Ballerina
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 

Introduction to Node.js

  • 1. Introduction to Node.js Joshua McNeese Develop Intelligence
  • 2. Introductions Hi, my name is Joshua McNeese and I’m a JavaScript programmer.
  • 3. Agenda What is Node.js? How does it work? What is it good for? Some cool examples Where can you learn more?
  • 4. Node.js history First published in 2009 by Ryan Dahl, sponsored by Joyent Inspired by the file upload bar on Flickr npm introduced in 2011 Microsoft partnered with Joyent in 2011 to provide a native Windows version Dahl stepped aside as project lead in 2012 to pursue new research projects
  • 5. The future is bright! After 5 years since its release 3rd most popular project on Github 2 million downloads a month Over 20 million downloads of v0.10+ In use by large brands such as Goldman Sachs, eBay, Conde Nast, Dow Jones, Apple, Yahoo and many more Companies are hiring Since Jan `10, the number of Node.js positions have increased more than 90,000% Interest is high Google search trends have increased year over year, even when other “hot” technologies decline (RoR) or remain the same (Obj-C)
  • 6. So what is Node.js? “Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”
  • 7. Uh… what? Unless you are already familiar with real-time application development, this possibly sounds like techno-babble So let’s break that down!
  • 8. It’s JavaScript! Code is parsed using Google’s V8 JavaScript engine, originally developed for Chrome The good news is that if you already know JavaScript, learning Node.js is fairly easy The bad news is that it’s not like the front-end JavaScript you are probably familiar with
  • 9. It’s event-driven Much like frontend JavaScript, Node.js code executes in an “event loop”
  • 10. What is an “Event Loop”? According to MDN: “The Event Loop is a queue of callback functions. When an async function executes, the callback function is pushed into the queue. The JavaScript engine doesn't start continue processing the event loop until the code after an async function has executed.”
  • 11. Non-blocking I/O Working hand-in-hand with JavaScript’s asynchronous nature, any I/O is delegated to a separate pool of threads Callbacks to execute once I/O operations are completed are added to the event loop for future execution This is one of the cornerstones of Node’s speed and scalability Why? Because I/O is expensive
  • 14. NPM Bundled with Node.js, similar to CPAN, PEAR, Ruby gems or Python eggs There’s pretty much a package for everything* Impressive stats: > 104k packages > 146 million downloads last week > 599 million downloads last month Super easy to use: npm install express
  • 16. Some cool examples A webserver in 5 lines? Preposterous! Query a pooled mysql connection? No problem!
  • 17. Streams too? Most I/O is handled by streams, so it’s easy to do things like encrypt, compress or otherwise modify streaming data:
  • 18. What is it good for? Node.js is good for lightweight, non-CPU intensive network applications APIs Real-time applications, pub/sub, chat servers Streaming data Proxies Command-line utilities Remember that Node.js is still in “beta”, but can be successfully deployed in production environments
  • 19. Where can you learn more? Node.js Info http://nodejs.org http://howtonode.org http://www.npmjs.org http://www.codewars.com http://www.developintelligence.com/catalog/web-development-training/ nodejs Developer Info Learn about future webinars with AMD Developer Central: http://developer.amd.com Watch this webinar replay: www.youtube.com/user/AMDDevCentral Learn when the replay is posted: Follow @AMDDevCentral on Twitter Download this deck: http://www.slideshare.net/DevCentralAMD
  • 21. Thank You! See you next time!

Editor's Notes

  1. 1m I say that jokingly as if this is a support group for embarrased internet engineers, since it used to be that being a “javascript programmer” was an embarrassing thing… but today it is exciting to be a javascript programmer, particularly so with technologies like node.js. 20 years in internet industry Developer for past 100… uh 14 years Using javascript for past 8 years Time is mostly equally divided between node.js and php currently Live in colorado with my wife, son, two cats and dog
  2. 3m Dahl was inspired to create Node.js after seeing a file upload progress bar on Flickr. The browser did not know how much of the file had been uploaded and had to query the Web server. Dahl desired an easier way.[15] Dahl decided to use the v8 engine due to it being open source, and because there weren’t any viable non-blocking i/o models for javascript in a server context at the time
  3. 3m Researched by StrongLoop Job stats from Indeed Search stats from Google
  4. 1m According to the website…
  5. I thought the coolest thing javascript could do was the canvas element!
  6. 3m By default, node.js supports ES5, although many of ES6 features can be enabled
  7. 5m Describe how js executes code sequentially and blocking like front-end javascript, but leverages callbacks to maintain non-blocking overall execution Highlight similarity to frontend javascript’s event loop, using the DOM and browser events
  8. 3m An event loop is "an entity that handles and processes external events and converts them into callback invocations". So I/O calls are the points at which Node.js can switch from one request to another. At an I/O call, your code saves the callback and returns control to the node.js runtime environment. The callback will be called later when the data actually is available. This is part of the reason why node.js is efficient, in that it uses every opportunity available to continue processing the main event loop, without waiting for long-running threads to complete executing One main difference between node.js’s eventloop vs. other event-driven frameworks like EventMachine for ruby, or twisted for python is that this functionality is transparently part of the runtime, and not a structure built on top of the language. You don’t have to remember to engage the event loop, the node process enters it immediately upon execution, and when there is no longer any callbacks to execute, it exits.
  9. 4m This pool is managed by libuv, created by Joyent It’s been said: “the largest waste with current programming technologies comes from waiting for I/O to complete”
  10. 2m A multithreaded server such as apache or tomcat
  11. 2m No clients waiting on acknowledgement of their request (while they may be waiting on a response!)
  12. 3m And if there isn’t, go build one! The community loves new packages. Modules can easily be build with javascript, but “heavier” or more proprietary modules can be built with C/C++
  13. 2m
  14. 5m
  15. 3m
  16. 4m
  17. 3m