What is
and how it became so popular?
Thank you
Thank you SeattleReactJS
#BellevueJS
Trivikram Kamat
Software Development Engineer
@trivikram
@trivikr
Tree
Weak
Rum
+
+
Tri
vik
ram
.
.
What's my name again?
My history with Node.js
-
Have been using Node.js for 3.5 years
-
Started contributing to Node.js core in Oct 2017
-
providing HTTP/2 support
-
-
Became Node.js core collaborator in March 2018
-
Organized/mentored four Node.js workshops
-
Given 10+ talks related to Node.js/React.js
How popular is Node.js?
How popular is Node.js?
How popular is Node.js?
Why should you be excited about Node.js?
-
Extremely simple and minimal
-
Easy to discover and consume packages
-
Increases developer productivity
-
True asynchronous I/O operations
What will you learn?
- Quick history up to V8
- CPU and machine code
- JavaScript and ECMAScript
- JavaScript Engines
- Chrome's V8
- How can JavaScript manage a server?
- What problems Node.js solves?
- We'll write a Node.js server!
Q: Why was the JavaScript reality show cancelled?
A: Because it was scripted! 😉
CPU and Machine Code
Programming Language
Â
Machine Code
Instructions Sets
-
ARM
-
x86
-
IA-32
-
MIPS
A standard which JavaScript is based on
a group of JavaScript developers, implementers, academics, and more, collaborating with the community to maintain and evolve the definition of JavaScript.
You can contribute to ECMAScript spec!
-
Stage 0 (Strawman): An idea for evolving ECMAScript
-
Stage 1 (Proposal): A formal proposal for the feature. Describe the problem, solution, obstacles. Implementation requires polyfills and demos
-
Stage 2 (Draft): A formal description of the syntax and semantics of the feature. Two experimental implementations needed, one can be transpiler like Babel
-
Stage 3 (Candidate): Spec text is complete, call for feedback from implementations and users
-
Stage 4 (Finished): The proposal is ready to be included in the ECMAScript standard
The TC39 process
New features in ECMAScript 2019
Array#{flat,flatMap}
Object.fromEntries
String#{trimStart,trimEnd}
Symbol#description
try-catch optional binding
well-formed JSON.stringify
stable Array#sort
revised Function#toString
JavaScript Engine
A program which executes JavaScript code
Chrome
Mozilla
Firefox
Microsoft
Edge
Apple
Safari
V8
SpiderMonkey
ChakraCore
JavaScriptCore
(now v8)
JavaScript on embedded devices!
Moddable
Espruino
JerryScript
Duktape
Q: How do you comfort a JavaScript Bug?
A: You console it 😄
Source: https://elijahmanor.com/
JavaScript
Code
Machine
Code
Chrome's V8 engine
JavaScript
Code
Machine
Code
Your C++ Program
What JavaScript had to do to manage a server?
-
Better ways to organize our code into reusable pieces
-
Ways to deal with files and databases
-
Ability to communicate over the internet
-
Ability to accept standard request and send responses
Why are businesses excited about Node.js?
It's easy to just employ full stack engineers who write JavaScript code for both client and server side
Client
Server
Request
Response
Browser
JavaScript
Server
Perl/PHP/Python
Java/C# etc
JavaScript
Talk is cheap,
Show me the Code!
As Abraham Lincoln once said:
- Linus Torvalds
Creator of Linux and Git
Let us write a Node.js server in 60 seconds!
What's next?
Thank you for listening!
Trivikram Kamat
@trivikram
@trivikr
What is Node.js and how it became popular?
By Trivikram Kamat
What is Node.js and how it became popular?
Slides for BellevueJS meetup talk in July 2019 https://www.meetup.com/BellevueJS/events/llvkklyzkbnc/
- 1,070