►
From YouTube: Node.js 12: A Decade of Node.js - Beth Griggs, IBM
Description
Node.js 12: A Decade of Node.js - Beth Griggs, IBM
Speakers: Beth Griggs
Node.js is now a decade old and version 12 has just entered into long-term support. Let us take a look at the new features, breaking changes, and what's next.
A
Cool
okay,
I
think
we'll
go
ahead
and
get
going,
and
so
my
name
is
Beth
brakes
and
I
work
for
IBM
as
an
open
source.
Engineer,
I'm
actually
lucky
enough
to
get
spend
about
half
my
time
at
work,
contributing
to
the
no
GES
core
and
other
parts
of
the
no
Jess
ecosystem.
The
rest
of
my
time,
my
team's
kind
of
focused
on
deployment
techniques
for
nodejs
applications
and
how
you
can
build
cloud
native,
nodejs,
apps
and
I'm.
Also,
no
Jess
technical
steering
committee
member
I'm
mainly
active
within
the
node.js
release,
team
and
I.
A
Don't
know
if
you
all
know,
but
no
10th
10
this
year,
so
it
was
originally
created
in
2009
and
with
it
being
its
tenth
birthday
or
anniversary.
Whatever
you'd
like
to
call
it
I
thought
it'd
be
a
good
time
to
cover
a
little
bit
of
history
and
also
go
through
what's
new
in
the
latest
versions
of
node
and
all
of
the
activity
that's
currently
going
on
in
the
project.
A
So
if
we
go
back
to
where
it
all
started,
no
chess
was
first
created
by
Ryan
Darwin
2009,
and
here
she
recorded
a
video
entitled
the
history
of
no
GS
where
he
mentions.
He
feels
no
J's
primarily
stems
from
trying
to
solve
the
upload
progress
bar
problem.
So
back
in
2009,
he
was
looking
for
a
good
way.
A
You
could
work
out
how
much
of
a
file
had
been
uploaded
to
a
server
and
at
a
time
the
kind
of
techniques
people
were
using
were
iframes
or
sending
small
Ajax
requests
to
the
server
and
saying
how
much
has
it
all
being
uploaded
and
the
server
coming
back
in
stating
how
much
should
be
uploaded,
but
that
was
quite
costly
in
terms
of
how
many
requests
sure
having
to
send
just
for
a
loading
bar.
There
was
another
technique
called
long
polling
and
the
long
polling
technique
works
by
when
a
request
is
sent.
A
The
server
way
actually
respond
until
something
significantly
changed.
So
in
the
case
of
a
file
file,
upload
you'd
send
a
request
and
the
server
wouldn't
come
back
in
lustre
file.
It
actually
changed
in
size
on
the
server,
and
here
she
started,
saying:
hey
I
should
build
a
web
server
or
a
framework
that
is
optimized
for
this
kind
of
long
potent
technique
where
the
server
doesn't
always
have
to
respond
immediately
and
he
actually
tried
to
solve.
A
So
Ryan
introduced
it
and
brief
as
server-side
JavaScript
built
on
Google's
v8
engine
evented
non-blocking,
are
you
using
a
common
J's
module
system
and
back
then
it
was
just
eight
thousand
lines
of
C
or
C++
and
two
thousand
lines
of
jobs
for
it,
and
there
were
just
fourteen
contributors,
and
this
was
one
of
the
first
little
snippets.
He
used
to
introduce
people
to
the
bond
blocking
nature
of
nodejs,
so
I'm
sure
it's
very
similar
to
well
is
for
me
how
I
first
learned
how
node
worked.
A
2009
NPM
was
also
created
as
a
package
manager
for
nodejs
and
the
reason
the
motivation
for
the
project
was
for
JavaScript
developers
to
easily
be
able
to
share
package
and
modulus
of
code
and
unsurprisingly,
around
the
same
time,
we
saw
the
birth
of
Express
and
socket
IO.
So
these
are
two
very
popular
frameworks
that
go
as
far
back
as
2010
and
express
the
web
framework.
I'm
sure
you've
heard
of
it
was
actually
originally
inspired
by
Java's.
Sorry
Ruby
Sinatra
phone
work
and
it
still
gets
an
excess
of
10
million
downloads
a
week.
A
So
it's
still
very
popular
and
socket
IO
used
the
building
real-time
web
apps.
Six
months
later,
we're
already
seeing
clouds
and
cloud
providers
like
Heroku
coming
out,
saying:
hey,
you
can
deployed
no
Jes
in
our
cloud,
and
this
is
all
well
note,
the
still
at
version
0.1
and
also
2011.
We
started
see
large
companies
coming
out,
saying:
hey,
we've
we're
using
no
js',
and
these
are
the
benefits
for
finding
from
using
it
so
LinkedIn.
In
particular,
they
publish
a
blog,
saying,
hey,
we
converted
our
existing
Ruby
web
app
to
node
and
it's
it's
much
faster.
A
It's
cost
us
a
fraction
of
the
resources
and
the
development
time
was
much
faster,
so
we're
still
only
at
zero.
Six
three
we've
got
large
companies
using
data
in
production.
We've
got
cloud
services.
No
sorry,
six
very
the
interesting
thing
about
this
release.
It's
the
first
one,
the
bundled
NPM
and
2012.
A
We
saw
more
frameworks,
there's
a
better
theme
here,
so
we
saw
Kraken
where
they
actually
extended,
express
and
with
some
enterprise
level
features
Co
birth
Co
was
actually
made
by
the
original
offer
of
Express,
but
with
the
name
of
being
a
bit
more
modular
and
expressive,
and
also
we
started
seeing
a
lot
of
references
to
mean
stack
applications
in
2013,
so
proofing,
MongoDB,
Express,
angular
and
note
together
as
I
serve
technologies
in
2014
I'm.
Sure
many
of
you
remember
or
are
aware,
and
the
project
was
fought
as
I
oj
s.
A
There
are
many
reasons
for
this,
but
to
the
two
main
ones,
I
think
that
was
a
desire
for
faster
moving
and
more
frequent
releases.
So
at
a
time
the
releases
weren't
progressing
particularly
quickly
and
also
a
desire
for
more
open
governance.
So
people
wanted
the
project
to
be
governed
by
an
open
body
and
in
2015
that's
when
the
no
foundation
was
established.
A
So
the
reason
it
went
straight
from
Missouri
to
fall
is
because
IO
had
versions,
1
2,
&
3,
so
when
it
will
merge
back
together,
it
merged
biked
as
node
4,
and
it
was
also
the
first
released.
It
was
to
follow
a
lousy
s
policy
and
that
meant
that
node
4
would
be
supported
to
for
up
to
13
months,
and
we
still
follow
that
same
LTS
policy
today.
So
no
J's
follow
semantic
versioning.
A
We
have
two
major
releases
per
year
and
the
even-numbered
releases
graduate
LTS
betas,
where
they're
supported
for
up
to
30
months,
and
this
out
es
policy
was
bright
tool
for
large
enterprises
to
start
to
adopt
note,
because
a
lot
of
them
still
have
long
update
schedules,
or
things
like
that,
so
giving
them
time
to
migrate
between
release
lines
without
having
to
deal
with
breaking
changes
is
fundamental
to
them.
Adopting
it
2015
the
foundation
was
still
growing.
We
saw
Yahoo
Rosen's
tight
Apogee
joining.
A
We
also
had
the
first
no
Jess
interactive,
so
that
was
in
Portland
Oregon.
There
was
about
700
people
there
and
hot
topics
at
time
were
Internet
of
Things
and
debugging
node
in
production
in
2016,
Express,
join
the
nodejs
foundation
and
as
an
incubator
project.
So
the
node
foundation
had
a
program
called
the
incubator
program,
where
a
popular
projects
or
frameworks
can
be
brought
in
under
it
and
receive
assistance
or
governance
mentorship.
A
The
Rison
Express
was
brought
in
is
because
it's
so
popular
and
critical
to
the
ecosystem,
as
I
mentioned,
it's
still
getting
in
excess
of
10
million
downloads
a
week,
and
because
it's
so
critical
for
a
large
portrait
portion
of
node
users,
it
was
important
to
bring
it
in
under
open
governance
and
2016.
We
also
saw
need
sex,
be
released.
This
came
with
fast
and
modulated
new
buffer
API,
so
this
was
to
try
and
tackle
some
of
the
pitfalls
we
were
seeing
with
the
original
buffer
api
math.random
improves
security
and
a
lot
more
es6
fitch.
A
Yes,
six
features
2016,
you
might
remember
the
left
pad
incident.
This
was
one
of
the
highlights
of
the
year.
Left
pad
was
a
heavily
depended
on
module
in
the
ecosystem.
You
probably
weren't
requiring
it
directly,
but
it
could
be
pulled
in
at
some
point
up
in
your
tree
and
it
was
unpublished
by
the
author
from
NPM
and
this
caused
many
people
zem-chem
installs,
whether
that's
from
running
them,
to
deploy
their
production
applications
to
fail
with,
like
404,
not
found
because
it
been
unpublished,
npm
quickly
restored
the
package.
A
But
the
surprising
thing
at
the
time
is:
it
was
just
eleven
lines
of
JavaScript
that
padded
a
string
that
caused
all
these
problems
and
I
think
this
was
really
when
the
issues
around
dependency
management
and
usage
in
nodejs
really
started
to
be
highlighted
and
surprisingly,
Young's
release.
That's
Amy
yeah.
So
yum
was
a
collaboration
between
Facebook,
exponent,
Google
and
Tildy,
and
it
was
trying
to
tackle
some
of
the
problems
they
were
seeing
with
dependency
management,
particularly
around
security,
consistency
and
performance
in
2017.
A
An
EMPI
was
created,
and
this
is
for
those
who
are
writing
exist
native
modules,
which
are
CC
post
buster
talk
to
the
VA
or
underlying
VM,
and
what
any
PIL
out
is
is
like
an
interface
layer
between,
and
this
means
that
every
time
v8
changes
you
don't
need
to.
Edit,
your
native
module,
or,
and
in
most
cases
you
won't
need
to
recompile.
A
If
you
build
against
this,
an
API
kind
of
abstraction
layer
and
the
work
on
this
actually
came
about
from
chakracore,
which
was
Microsoft's
VM
engine
and
a
way
to
have
a
layer,
that's
neutral,
to
which
underlying
VM
you're,
using
so
where
it's
v8
or
shut
procore
and
in
2017
no
date
was
released,
and
this
came
with
async
hooks
API.
So
if
you
haven't
used
that
it's
kind
of
lets,
you
track
the
asynchronous
work.
That's
going
on
in
your
application.
It's
the
first
LTS
release
with
async
await
and
flight
NEP
I
was
included
in
that
release.
A
Youtube
promised
spies
so
allowing
you
to
rack
callback
api's
into
promises
and
what
working
for
it
vrl,
partha
and
as
a
kind
of
public
service
announcement.
No
date
goes
end-of-life
less
than
three
weeks
today,
after
which
time
there
will
be
no
security,
fixes
or
updates.
This
is
actually
four
months
earlier
than
it
should
have
been
according
to
the
alias
schedule
and
a
reason
it's
slightly
shorter
is
because
the
version
of
open,
SSL
10.2
actually
goes
end-of-life
in
December.
A
So
we
had
two
pretty
nodes
end-of-life
before
that
2017,
so
this
is
slide
from
Jess
interactive
keynote
in
2017.
So
it's
really
showcasing
the
mass
adoption
of
no
GS.
It's
almost
9
million
node
instances,
1,500
contributors
and
that's
up
from
just
14
and
2009
and
I-
think
it's
3
million
or
3
billion
3
billion
package
towards
a
week
from
NPM
in
2018
no
10
was
released,
so
NEPA
was
declared
stable.
In
this
release.
We
had
stable
HTTP
to
an
experimental
FS
promises
API.
So
this
is
so.
A
A
A
So
no
12
came
with
faster
weight,
fast
adjacent
parts
and
that's
all
va
upgrade
to
v8
77,
so
v8
o
always
working
on
how
they
can
improve
speed
and
efficiency,
and,
as
we
pick
up
their
updates,
we
get
to
leverage
laser
performance
benefits
and
node.
It
also
came
with
a
sync
stack
traces
and
if
you
haven't
seen
these
I'll
give
a
quick
walkthrough.
So
imagine
you
have
a
async
function.
Foo
that
awaits
another
async
function
bath
just
for
his
new
era
in
node
11
and
under
you
would
just
see.
A
Hey
ba
function
throws
an
error
at
line
9
and
then
you'd
see
with
these
internal
and
processes
on
these
stack
trees,
but
in
no.12.
What
you
will
now
see
is
it
will
async
food,
so
it
actually
tells
you
where
that
function
was
called
from.
This
helps
you
track
where
things
actually
went
wrong
and
helps
you
read
what
sometimes
there's
massive
hopping
around
which
function
calls,
which
a
number
of
each
that
I,
particularly
like
that
came
via
the
v8
upgrade,
was
the
promised
all
settled.
A
So
you
have
to
pass
the
experiment,
modules,
flights
and
no
process
to
use
it,
and
this
includes
things
such
as
import-export
statements
supported
in
JavaScript
files,
and
you
should
check
out
the
blog
by
a
node
foundation
and
it
covers
the
modules
working
groups
plan
for
how
they're
going
to
implement
yes,
sermon.
Note
I,
believe
that
is
hope
that
it
will
be
unflagged
at
some
point
in
a
lifetime
of
12,
but
it's
still
in
debate
at
the
moment.
A
Another
feature
is
the
in
no
12
was
the
diagnostic
reports.
This
is
also
experimental
behind
the
flag,
experimental
report
and
if
any
of
you
have
worked
with
before
this
kind
of
provides
yet
sing
a
bit
like
a
Java
core
phone.
So
when
there's
a
crash
or
an
error,
it
will
produce
you
a
report
that
will
provide
you
information
to
help.
You
diagnose
things.
A
Like
crashes,
slow
performance
memory,
leaks,
CPU,
usage,
etc,
and
it
was
actually
an
external
module
before
it
was
brought
into
net
core
and
the
pr2
merger
internet
core
is
had
like
almost
a
thousand
comments.
I
think
it's
one
of
the
most
commented
on
PRS.
The
reason
it
was
brought
in
as
a
from
an
external
module
internet
core
is
to
support
adoption,
because
you
kind
of
have
to
have
these
reports
generated
when
you're
out
crashes,
because
there's
no
use
having
to
restart
your
process
and
installed
it
and
then
hope
that
same
behavior
is
seen
again.
A
So
if
it's
tab
by
default,
people
can
actually
morosely
use
it.
There
is
a
talk
at
and
today
at
2:20,
going
into
the
when
to
use
these
divemaster
it
reports
by
gireesh
who
actually
created
the
pr2
merger
in
some
of
the
other
features
in
May
12
and
say
the
default
HTTP
parser
was
swapped
to
our
lovely
HTTP,
and
this
was
due
to
maintenance
concerns
around
the
origin
of
regional
HTTP
Pausa.
A
We
also
got
an
upgrade
to
NPM
and
it
will
continue
to
go
out
great
TLS
support,
so
the
default
max
protocol
is
now
to
yell
at
someone
not
free
and
work.
Threads
are
now
stable,
I
think
there's
a
talk
today
about
work
of
Rhodes,
but
they
are
now
stable
to
use.
You
can
use
some
production
and
you
can
use
in
the
Mountie.
A
Yes
also
in
October,
20
1913
was
released,
so
this
release
will
be
never
promoted
to
OTS
and
the
purpose
of
odd-numbered
release
lines
is
for
you
to
really
try
out
new
features
play
around
with,
what's
new
and
and
also
test
out
whether
you've
got
any
breakages
between
versions.
So,
if
you've
got
some
code
running
with
no
12
see
if
it
still
runs,
we've
made
14.
If
it
already
breaks,
then
it's
something
to
look
at
in
advance
of
you
needing
to
upgrade.
A
It
was
actually
just
40,
free,
braking
or
SEM
for
major
changes
in
node
30,
which
is
actually
the
lowest
of
any
major
release.
We've
had
and
to
look
at
some
of
the
key
features.
The
main
one
I
think
to
call
out
is
no
13
builds
with
Philly
ICU
by
default.
Icu
stands
for
international
components
for
Unicode,
and
it's
used
to
provide
internalization
internationalization
in
node,
and
this
means
outlet
box.
Hundreds
of
locales
are
supported.
There
is
a
trait
that
was
a
trade-off
between
binary
sizes,
so
binary
size
between
no
12
and
13
will
increase.
A
But
this
means
that
we've
got
so
many
locales
supported
out
the
box.
We
decided
that
it
was
worth
the
increase
and
as
an
example
before,
if
you
try
to
call
out
this
current
month,
and
it
would
have
just
printed
the
English
string
where
I
was
in
note,
13
plastic,
where
she
print
out
the
correct
string
for
the
locality,
you're
specifying
other
new
features
and
include
unflagged,
updated
date,
module
support.
This
is
the
same
support
that
might
be
unflagged
in
node
12
and
also
very
recently.
A
A
Collaborators
are
people
who
are
nominated
for
their
either
continuous
or
significant
contributions
to
denote
yes
project
as
not
some
not
specifically
code
contributions
that
could
be
helped
with
docks
or
it
could
be
helped
with
meeting
our
build
servers
etc.
And
it's
the
collaborators
that
review
all
the
PRS
merge
all
the
PRS
and
start
the
CI
runs
for
every
single
port
request.
A
Then
we've
also
had
3,600
pour
requests
this
year,
16
hundred
and
fifty
issues-
and
that's
just
on
no
GS
note.
So
not
any
of
the
pre
post
at
node
house,
like
no
GS
help
we've
had
over
50
releases.
Keeping
up
with
all
of
this
activity
is
a
huge
task,
a
lot
of
it's
done
by
the
collaborators,
but
we
also
have
several
working
groups,
the
working
groups,
the
kind
of
task
forces
for
particular
areas
of
the
project,
and
they
have
responsibilities
over
that
area
of
the
project.
A
A
So
all
the
work
around
providing
that
native
module
with
abstraction
layer,
benchmarking,
release,
they're,
building
all
the
releases
and
determining
and
auditing
which
features
should
go
in
to
which
releases
and
I'm
security
breaking
free,
so
keeping
track
of
all
the
vulnerabilities
and
making
the
call
when
we
need
to
cut
security
releases
and
I'd
like
to
do
a
very
special
shout
out
to
the
newest
built
working
group.
They're
really
not
visible
in
the
project,
but
without
them
we
won't
be
able
to
build
releases.
We
won't
be
able
to
Lampe
ours.
A
We
were
like
everything
you
won't
be
able
to
download
node.
They
maintain
the
server.
When
you
pick
up
your
new
downloads
from
and
I
quite
like
this
picture,
it's
actually
a
bunch
of
pies.
We
have
running
in
one
of
our
collaborators
rod
spaceman
in
Australia,
and
this
runs
all
of
our
CI
testing
on
arm.
So
that's
quite
nice
and
yeah
the
node.js
build
working
group.
They
maintain
our
Jenkins
CI
server.
A
They
maintain
our
build
server
and
the
kind
of
work
they're
doing
day-to-day
is
making
updates
to
our
ansible
playbooks
to
install
which
dependencies
we
need
on
which
machines
and
we've
got
over
200
machines
for
them
to
maintain
5000
s,
slash
arch
combinations
across
build
and
test
so
yeah.
They
definitely
kind
of
unsung
heroes
of
the
project,
and
if
anyone
has
any
interest
in
maintaining
machine,
ansible
playbooks
come
chat
to
me
and
I'll
get
you
involved,
because
they
they're
definitely
down
to
just
a
few
people.
Maintaining
all
of
this.
A
For
us
most
of
them
are
volunteering
their
time
to
do
this.
We
also
have
a
bunch
of
donors
who
they
need
to
deliver
our
infrastructure.
So
I
thought
I'd
just
said
big.
Thank
you
to
them,
because
without
them
we
wouldn't
have
the
machines
to
run
all
of
our
CI
etc
wrong.
And
if
you
want
to
get
involved-
and
you
should
check
out
node
to
do
dorg,
so
what
node
to
do?
Does
it
guides
you
through
how
you
can
build
made
from
source
and
then
make
your
first
contribution
into
note
and
the
way
it
does
it?
A
It
will
point
you
to
our
code
coverage
tool
where
you
can
identify
a
line
of
code
which
isn't
covered
and
when
it
will
try
and
help.
You
write
a
test
to
cover
that
line
of
code,
so
at
the
same
time
as
you're
getting
your
first
contribution
in
tonight
where
we
say
improving
our
code
coverage,
which
is
great
for
everyone.
A
It's
actually
run
by
richard
Trotter,
who
will
be
around
the
conference
and
but
if
you're,
also
interested
in
getting
involved
with
any
other
parts
of
the
project
and
come
chat
to
me
or
anyone
else
at
the
IDM
because
we're
all
contributors
and
we
can
find
an
area
to
project
that
might
be
interesting
for
you
and
yeah.
And
if
you
were
to
ask
what's
next
in
note,
the
things
that
happen
in
node
are
the
things
that
people
put
the
effort
into
work
on.
So
so
it's
really.
A
If
you
see
a
cool
request.open,
saying
hey
I'm,
playing
wrong
with
this.
You
think
that
feature
sounds
good.
The
more
people
do
get
behind
that
PR
and
start
commenting
and
start
showing
an
interest,
but
more
likely
it
is
for
that
support
to
actually
go
through
the
kind
of
areas
at
the
moment
that
we're
looking
at
is
quick
support.
So
I
think
there's
a
talk
at
a
conference
on
quick
and
HTTP
freak,
and
we
also
have
some
strategic
initiatives
around.
A
Workers
work
at
the
Reds
and
also
updating
all
of
our
place
and
support
to
use
Python
free
because
I'm,
not
quite
there
yeah
and
we're
running
out
of
time
and
yeah
if
you're
interested,
there's
also
a
community
corner
at
the
conference.
I've
not
found
it
yet
myself,
where
we'll
be
having
open
office
hours,
where
each
of
the
working
groups
will
kind
of
be
there
for
an
hour.
For
you
to
ask
any
questions
me
that
about
releases
or
streams
or
anything
in
particular
and
I
hope.
That
was
good.
But
thanks
for
listening
to
my
talk
right.