Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Node.js Core
State of the Union
James M Snell, IBM
@jasnell
Community.
Gemeenschap. Communauté. Comunidad.
When I first got involved with Node.js Core, there were 14 active participa...
Gemeenschap. Communauté. Comunidad
Just over a year and a half later, there are 85 contributors with commit
access to the ...
Gemeenschap. Communauté. Comunidad
476 people in the Node.js GitHub organization
103 GitHub repositories
92 GitHub teams
4...
Stability.
Stabilität. Stabiliteit. Cobhsaíochta.
There have been 2.7k+ commits on master since v4.0.0
49% focus on improv...
Stability.
Stabilität. Stabiliteit. Cobhsaíochta.
As soon as we made it easier for the community to
contribute to Node.js,...
Stability.
Stabilität. Stabiliteit. Cobhsaíochta.
http://benchmarking.nodejs.org
Stability.
Stabilität. Stabiliteit. Cobhsaíochta.
Canary	in	the	Goldmine	
																									
With	citgm,	we	are	now...
Stability.
Stabilität. Stabiliteit. Cobhsaíochta.
Canary	in	the	Goldmine	
																									
Running	all	semver-maj...
Stability.
Stabilität. Stabiliteit. Cobhsaíochta.
Every non-trivial commit tested on…
•  FreeBSD
•  ARM v7 – Ubuntu
•  ARM...
Releases.
Publiceren. Veröffentlichen. Publier.
v0.10.0	
io.js	
v1.0.0	
v0.12.0	
io.js	
v2.0.0	
io.js	
v3.0.0	
v4.0.0	 v5....
Releases.
Publiceren. Veröffentlichen. Publier.
New major release every 6 months
Even Numbered Releases in April
Odd Numbe...
Releases.
Publiceren. Veröffentlichen. Publier.
Current
Node.js v6.5.0
LTS
Node.js v4.5.0
Maintenance
Node.js v0.12.13
Nod...
Releases.
Publiceren. Veröffentlichen. Publier.
Current
Node.js v6.5.0
LTS
Node.js v4.5.0
Maintenance
Node.js v0.12.13
Nod...
Releases.
Publiceren. Veröffentlichen. Publier.
Node.js v6.x "Boron" LTS
October 2016
Will be supported until April 2019
Releases.
Publiceren. Veröffentlichen. Publier.
Node.js v7.0.0 Current
October 2016
Will be supported until ~June 2017
Fir...
Releases.
Publiceren. Veröffentlichen. Publier.
Node.js v8.0.0
April 2017
Will be supported until April 2020
Where we're going
Waar we naartoe gaan Où nous allons
Better Web Standards Support
Improved ES6/7 Support
Improved Node.js...
Web standards.
Webstandaarden. Les standards du Web.
WHATWG URL Parsing
	
const url = new URL('http://nodejs.org');
	
	
ht...
Web standards.
Webstandaarden. Les standards du Web.
Improved HTTP 1.1 Spec Compliance
Better Input Validation
Enhanced Se...
Web standards.
Webstandaarden. Les standards du Web.
HTTP/2 ?
https://github.com/nodejs/node-eps/pull/38
Language standards.
Normes Langage de programmation.
Continued improvements to ES6/7 Support
Promises
async await
ES6 Modu...
Language standards.
Normes Langage de programmation.
async await is coming.
(we just don't know when)
We have some work to...
Language standards.
Normes Langage de programmation.
ES6 Modules are a difficult, non-trivial problem.
Significant effort ...
Language standards.
Normes Langage de programmation.
The Node.js Core Team is exploring how to better
engage with TC-39 to...
Internals.
Wewnętrzne. Sisäosat. Interno.
Async-Hook
Multiple-Isolates (Workers)
New Native Module API/ABI
Static Error Co...
Internals.
Wewnętrzne. Sisäosat. Interno.
Async-Hook
Provides the ability to attach listeners to the event-loop lifecycle....
Internals.
Wewnętrzne. Sisäosat. Interno.
Multiple-isolates (Workers)
Worker-based multi-threading within a
single Node.js...
Internals.
Wewnętrzne. Sisäosat. Interno.
New Native Module API/ABI
A new API/ABI for native module developers
that abstra...
Internals.
Wewnętrzne. Sisäosat. Interno.
New Native Module API/ABI
#include <node_jsvmapi.h>
void Method(napi_env env, na...
Internals.
Wewnętrzne. Sisäosat. Interno.
Static Error Codes
Every error generated by Node.js will have a stable, static e...
Internals.
Wewnętrzne. Sisäosat. Interno.
uv_link_t Streams
Flexible, powerful chained streams API for
native modules buil...
Internals.
Wewnętrzne. Sisäosat. Interno.
Multiple VMs
Starting with Node.js on Chakra, work is underway to enable Node.js...
Internals.
Wewnętrzne. Sisäosat. Interno.
Improved Embedding
Working with members of the Electron and IoT communities,
wor...
Internals.
Wewnętrzne. Sisäosat. Interno.
Improved Internationalization
Work is underway to improve Internationalization i...
Debugging.
Risoluzione dei problemi. Fehlerbehebung.
Common Heap Dump Format
Improved Core Dump Analysis Tooling
node-repo...
Debugging.
Risoluzione dei problemi. Fehlerbehebung.
h@ps://github.com/nodejs/post-mortem/issues/13	
h@p://github/nodejs/n...
Debugging.
Risoluzione dei problemi. Fehlerbehebung.
Node.js now includes experimental support for
the Chrome Inspector.
$...
Installation
Shuiteáil. Instalacja. Монтаж.
Work	is	underway	to	build	a	new	Electron-based	
Installer	for	Node.js	
	
h@ps:...
Gemeenschap. Communauté. Comunidad
Come help us. There's lots to do still.
500+ Open Issues in the Core repo:
100+ Feature...
Gemeenschap. Communauté. Comunidad
The Node.js Technical Steering Committee has asked the
Node.js Foundation to explore ne...
Grazie. Dank je wel. Danke.
On behalf of all Node.js Core Contributors,
Thank you.
Thank you.
Upcoming SlideShare
Loading in …5
×

Node.js Core State of the Union- James Snell

561 views

Published on

State of the union.

Published in: Technology
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Node.js Core State of the Union- James Snell

  1. 1. Node.js Core State of the Union James M Snell, IBM @jasnell
  2. 2. Community. Gemeenschap. Communauté. Comunidad. When I first got involved with Node.js Core, there were 14 active participants (not counting everyone involved in io.js) Up to that point, Node.js had 681 contributors over it's lifetime.
  3. 3. Gemeenschap. Communauté. Comunidad Just over a year and a half later, there are 85 contributors with commit access to the main repository (with more added regularly) The contributors list now tops 1084 individuals. Community.
  4. 4. Gemeenschap. Communauté. Comunidad 476 people in the Node.js GitHub organization 103 GitHub repositories 92 GitHub teams 4109 forks of the node.js/node repository Community.
  5. 5. Stability. Stabilität. Stabiliteit. Cobhsaíochta. There have been 2.7k+ commits on master since v4.0.0 49% focus on improving documentation, tests and benchmarks. 15% focus on updated tooling, build and dependencies. 17 semver-major commits in v5 90 semver-major commits in v6
  6. 6. Stability. Stabilität. Stabiliteit. Cobhsaíochta. As soon as we made it easier for the community to contribute to Node.js, That community immediately began working to make Node.js more secure, stable, and performant.
  7. 7. Stability. Stabilität. Stabiliteit. Cobhsaíochta. http://benchmarking.nodejs.org
  8. 8. Stability. Stabilität. Stabiliteit. Cobhsaíochta. Canary in the Goldmine With citgm, we are now proac6vely running tests for 68 of the most depended on modules in the Node.js ecosystem – catching regressions before they happen. h@ps://github.com/nodejs/citgm
  9. 9. Stability. Stabilität. Stabiliteit. Cobhsaíochta. Canary in the Goldmine Running all semver-major changes through both CI and citgm before they land is now standard prac6ce. (shout out to @TheAlphaNerd for making this happen… and go see his talk!) h@ps://github.com/nodejs/citgm
  10. 10. Stability. Stabilität. Stabiliteit. Cobhsaíochta. Every non-trivial commit tested on… •  FreeBSD •  ARM v7 – Ubuntu •  ARM v7 – Wheezy •  ARM v8 – Ubuntu 14.04 •  ARM v8 – Ubuntu 16.04 (arm64) •  LinuxOne •  CentOS 5 (32 / 64) •  CentOS 6 (64) •  CentOS 7 (64) •  Debian 8 (64, x86) •  Fedora 22 •  Fedora 23 •  Fedora 24 •  Ubuntu 12.04 (64) •  Ubuntu 14.04 (32 / 64 / PPC BE & LE) •  Ubuntu 16.04 (32 / 64 / Docker Alpine) •  MacOS •  Linux-FIPS (Ubuntu) •  AIX •  SmartOS 14 (32 / 64) •  Raspbian Wheezy (pi 1, pi 2, pi 3) •  Windows 10 (VS 2015) •  Windows 2008 r2 (VS 2015) •  Windows 2012 r2 (VS 2015)
  11. 11. Releases. Publiceren. Veröffentlichen. Publier. v0.10.0 io.js v1.0.0 v0.12.0 io.js v2.0.0 io.js v3.0.0 v4.0.0 v5.0.0 v6.0.0 2013 2014 2015 2016 There have been 120 Node.js releases* since January 2015 31 releases to v4, v0.10 and v0.12 under the LTS Plan *including all of the io.js releases
  12. 12. Releases. Publiceren. Veröffentlichen. Publier. New major release every 6 months Even Numbered Releases in April Odd Numbered Releases in October Even Numbered Releases go under LTS Plan in October LTS Plan === 30 months of guaranteed support.
  13. 13. Releases. Publiceren. Veröffentlichen. Publier. Current Node.js v6.5.0 LTS Node.js v4.5.0 Maintenance Node.js v0.12.13 Node.js v0.10.44
  14. 14. Releases. Publiceren. Veröffentlichen. Publier. Current Node.js v6.5.0 LTS Node.js v4.5.0 Maintenance Node.js v0.12.13 Node.js v0.10.44 2016-12-31 2016-10-31 2018-04 Time to Upgrade LTS Expiration:
  15. 15. Releases. Publiceren. Veröffentlichen. Publier. Node.js v6.x "Boron" LTS October 2016 Will be supported until April 2019
  16. 16. Releases. Publiceren. Veröffentlichen. Publier. Node.js v7.0.0 Current October 2016 Will be supported until ~June 2017 First Beta build next week
  17. 17. Releases. Publiceren. Veröffentlichen. Publier. Node.js v8.0.0 April 2017 Will be supported until April 2020
  18. 18. Where we're going Waar we naartoe gaan Où nous allons Better Web Standards Support Improved ES6/7 Support Improved Node.js Internals Improved Runtime & Post Mortem Debugging New Installer Continued focus on Community
  19. 19. Web standards. Webstandaarden. Les standards du Web. WHATWG URL Parsing const url = new URL('http://nodejs.org'); https://github.com/nodejs/node/pull/7448
  20. 20. Web standards. Webstandaarden. Les standards du Web. Improved HTTP 1.1 Spec Compliance Better Input Validation Enhanced Security
  21. 21. Web standards. Webstandaarden. Les standards du Web. HTTP/2 ? https://github.com/nodejs/node-eps/pull/38
  22. 22. Language standards. Normes Langage de programmation. Continued improvements to ES6/7 Support Promises async await ES6 Modules Node.js v7 should ship with V8 5.4
  23. 23. Language standards. Normes Langage de programmation. async await is coming. (we just don't know when) We have some work to do on Promises still. (Namely, making Promises compatible with Node.js Debugging and making the Node.js API compatible with Promises)
  24. 24. Language standards. Normes Langage de programmation. ES6 Modules are a difficult, non-trivial problem. Significant effort is going into getting it right. It will happen, but may take some time. (and a big shout out to @bradleymeck for leading the way)
  25. 25. Language standards. Normes Langage de programmation. The Node.js Core Team is exploring how to better engage with TC-39 to ensure that new JavaScript language features meet the needs of Node.js users.
  26. 26. Internals. Wewnętrzne. Sisäosat. Interno. Async-Hook Multiple-Isolates (Workers) New Native Module API/ABI Static Error Codes uv_link_t Streams Multiple VMs Improved Embedding Improved i18n
  27. 27. Internals. Wewnętrzne. Sisäosat. Interno. Async-Hook Provides the ability to attach listeners to the event-loop lifecycle. Allows peeking behind the curtain. https://github.com/nodejs/node-eps/pull/18
  28. 28. Internals. Wewnętrzne. Sisäosat. Interno. Multiple-isolates (Workers) Worker-based multi-threading within a single Node.js process. https://github.com/nodejs/node/pull/2133
  29. 29. Internals. Wewnętrzne. Sisäosat. Interno. New Native Module API/ABI A new API/ABI for native module developers that abstracts the VM layer. No more binding directly to V8 APIs. https://github.com/nodejs/abi-stable-node
  30. 30. Internals. Wewnętrzne. Sisäosat. Interno. New Native Module API/ABI #include <node_jsvmapi.h> void Method(napi_env env, napi_func_cb_info info) { napi_set_return_value( env, info, napi_create_string(env, "world")); } void Init(napi_env env, napi_value exports, napi_value module) { napi_set_property(env, exports, napi_property_name(env, "hello"), napi_create_function(env, Method)); } NODE_MODULE_ABI(addon, Init)
  31. 31. Internals. Wewnętrzne. Sisäosat. Interno. Static Error Codes Every error generated by Node.js will have a stable, static error code allowing greater consistency in errors. No more parsing error messages. https://github.com/nodejs/node/pull/6573
  32. 32. Internals. Wewnętrzne. Sisäosat. Interno. uv_link_t Streams Flexible, powerful chained streams API for native modules built directly on libuv. https://github.com/nodejs/node-eps/pull/32
  33. 33. Internals. Wewnętrzne. Sisäosat. Interno. Multiple VMs Starting with Node.js on Chakra, work is underway to enable Node.js core to be fully VM agnostic in the future. https://github.com/nodejs/node-chakracore
  34. 34. Internals. Wewnętrzne. Sisäosat. Interno. Improved Embedding Working with members of the Electron and IoT communities, work is underway to make it easier to embed Node.js in other environments. https://github.com/nodejs/node/pull/6994
  35. 35. Internals. Wewnętrzne. Sisäosat. Interno. Improved Internationalization Work is underway to improve Internationalization in Core by making it easier to discover i18n data sets, transcode Buffers from one character encoding to another, query Unicode character properties, and more. https://github.com/nodejs/node-eps/pull/15
  36. 36. Debugging. Risoluzione dei problemi. Fehlerbehebung. Common Heap Dump Format Improved Core Dump Analysis Tooling node-report – Human-readable diagnostic summary JavaScript API for Node.js Core Dump Analysis
  37. 37. Debugging. Risoluzione dei problemi. Fehlerbehebung. h@ps://github.com/nodejs/post-mortem/issues/13 h@p://github/nodejs/nodereport h@ps://github.com/nodejs/post-mortem/issues/33
  38. 38. Debugging. Risoluzione dei problemi. Fehlerbehebung. Node.js now includes experimental support for the Chrome Inspector. $ node --inspect
  39. 39. Installation Shuiteáil. Instalacja. Монтаж. Work is underway to build a new Electron-based Installer for Node.js h@ps://github.com/nodejs/installer
  40. 40. Gemeenschap. Communauté. Comunidad Come help us. There's lots to do still. 500+ Open Issues in the Core repo: 100+ Feature Requests 100+ Documentation Issues 60+ Windows Related Issues 58+ HTTP Related Issues 30+ Confirmed Bugs 20+ Issues marked "Good First Contribution" Community.
  41. 41. Gemeenschap. Communauté. Comunidad The Node.js Technical Steering Committee has asked the Node.js Foundation to explore new opportunities for expanding and diversifying the community of Node.js core contributors. Community. Tracy Hinds @hackygolucky Mikeal Rogers @mikeal
  42. 42. Grazie. Dank je wel. Danke. On behalf of all Node.js Core Contributors, Thank you. Thank you.

×