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.
MODERN OPEN SOURCE NODE.JS PACKAGES
Safely Build, Publish & Maintain
ES2015, ES2016 Packages Today
HAI!
ENTREPRENEUR, HACKER, DEVELOPER
OPEN SOURCE ADVOCATE & DOG LOVER
@AhmadNassri AhmadNassri.com
VP of Engineering at Ma...
JS HISTORYSTANDARDIZATION TIMELINE
TC39 & ECMA-262
COMMITTEE & STANDARD
EC1JUNE 1997
EC2JUNE 1998
EC3DECEMBER 1999
EC4ABANDONED!
:(
EC HARMONYAUGUST 2008
EC5DECEMBER 2009
ES6ES2015JUNE 2015!!!
ES2016JUNE 2016 :)
ES2017WIP
NEW PROCESSYOU CAN CONTRIBUTE TOO!
STAGE 0 (STRAWMAN)
ALLOW INPUT INTO THE SPECIFICATION
tc39.github.io/process-document
STAGE 1 (PROPOSAL)
MAKE THE CASE, DESCRIBE A SOLUTION, IDENTIFY CHALLENGES
tc39.github.io/process-document
STAGE 2 (DRAFT)
PRECISELY DESCRIBE SYNTAX & SEMANTICS USING FORMAL SPEC LANGUAGE
tc39.github.io/process-document
STAGE 3 (CANDIDATE)
FURTHER REFINEMENT WILL REQUIRE FEEDBACK FROM IMPLEMENTATIONS AND USERS
tc39.github.io/process-document
STAGE 4 (FINISHED)
READY FOR INCLUSION IN THE FORMAL ECMASCRIPT STANDARD
tc39.github.io/process-document
I CAN HAZ
ES2016?
NOT YET!
SPEC COMPATIBILITY
https://kangax.github.io/compat-table/es6/
LONG-TERM SUPPORT!
https://github.com/nodejs/LTS
NO MORE
WAITING!
TRANSPILER(S) TO THE RESCUE
MOAR TRANSPILERS!
https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
ICYMI ...
https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
SUPERSETS ARE
THE NEW
FRAMEWORKS!
BACKWARD
COMPATIBLE?
MODERN
WORKFLOW!
TOOLS
SIMPLE WORKFLOW
PACKAGE.JSON
PACKAGE.JSON
PACKAGE.JSON
.TRAVIS.YML
EASY!
RIGHT?
GOTCHAS
FINAL SPEC
CHANGED
ES7 !== ES2016
COMPILED API
DIFFERS
FROM SOURCE
(compiled == source && compiled !== source) === true
PERFORMANCE LOSS
+
NO OPTIMIZATION
SUGAR
vs
CORE
ABANDONWARE
Tool Decay + Fragile Ecosystems
TOOLING HEAVY
Setup, Config, Environments, Virtualization, Resources
IT GETS BETTER
IT *IS* BETTER
IT WILL BE EVEN
BETTER
CONTRIBUTE AND MAKE
IT BETTER!
github.com/tc39
github.com/ahmadnassri/npm-package-generator
THANK YOU!
@AhmadNassri
AhmadNassri.com
AhmadNassri.com/talks
TechMasters.cha...
Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
Upcoming SlideShare
Loading in …5
×

Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

83 views

Published on

Ahmad Nassri presents at the Summer 2016 Toronto Node.js meetup.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

  1. 1. MODERN OPEN SOURCE NODE.JS PACKAGES Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
  2. 2. HAI! ENTREPRENEUR, HACKER, DEVELOPER OPEN SOURCE ADVOCATE & DOG LOVER @AhmadNassri AhmadNassri.com VP of Engineering at Mashape, Founder at Tech Masters, Mentor at Node School Toronto, Board Member at Full Stack Toronto, Board Member at Open API Initiative, Editor at The RESTful Web. Tech Outlaw, wanted by a 3rd world dictator (true story)
  3. 3. JS HISTORYSTANDARDIZATION TIMELINE
  4. 4. TC39 & ECMA-262 COMMITTEE & STANDARD
  5. 5. EC1JUNE 1997
  6. 6. EC2JUNE 1998
  7. 7. EC3DECEMBER 1999
  8. 8. EC4ABANDONED! :(
  9. 9. EC HARMONYAUGUST 2008
  10. 10. EC5DECEMBER 2009
  11. 11. ES6ES2015JUNE 2015!!!
  12. 12. ES2016JUNE 2016 :)
  13. 13. ES2017WIP
  14. 14. NEW PROCESSYOU CAN CONTRIBUTE TOO!
  15. 15. STAGE 0 (STRAWMAN) ALLOW INPUT INTO THE SPECIFICATION tc39.github.io/process-document
  16. 16. STAGE 1 (PROPOSAL) MAKE THE CASE, DESCRIBE A SOLUTION, IDENTIFY CHALLENGES tc39.github.io/process-document
  17. 17. STAGE 2 (DRAFT) PRECISELY DESCRIBE SYNTAX & SEMANTICS USING FORMAL SPEC LANGUAGE tc39.github.io/process-document
  18. 18. STAGE 3 (CANDIDATE) FURTHER REFINEMENT WILL REQUIRE FEEDBACK FROM IMPLEMENTATIONS AND USERS tc39.github.io/process-document
  19. 19. STAGE 4 (FINISHED) READY FOR INCLUSION IN THE FORMAL ECMASCRIPT STANDARD tc39.github.io/process-document
  20. 20. I CAN HAZ ES2016?
  21. 21. NOT YET!
  22. 22. SPEC COMPATIBILITY https://kangax.github.io/compat-table/es6/
  23. 23. LONG-TERM SUPPORT! https://github.com/nodejs/LTS
  24. 24. NO MORE WAITING!
  25. 25. TRANSPILER(S) TO THE RESCUE
  26. 26. MOAR TRANSPILERS! https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
  27. 27. ICYMI ... https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
  28. 28. SUPERSETS ARE THE NEW FRAMEWORKS!
  29. 29. BACKWARD COMPATIBLE?
  30. 30. MODERN WORKFLOW!
  31. 31. TOOLS
  32. 32. SIMPLE WORKFLOW
  33. 33. PACKAGE.JSON
  34. 34. PACKAGE.JSON
  35. 35. PACKAGE.JSON
  36. 36. .TRAVIS.YML
  37. 37. EASY! RIGHT?
  38. 38. GOTCHAS
  39. 39. FINAL SPEC CHANGED ES7 !== ES2016
  40. 40. COMPILED API DIFFERS FROM SOURCE (compiled == source && compiled !== source) === true
  41. 41. PERFORMANCE LOSS + NO OPTIMIZATION
  42. 42. SUGAR vs CORE
  43. 43. ABANDONWARE Tool Decay + Fragile Ecosystems
  44. 44. TOOLING HEAVY Setup, Config, Environments, Virtualization, Resources
  45. 45. IT GETS BETTER
  46. 46. IT *IS* BETTER
  47. 47. IT WILL BE EVEN BETTER
  48. 48. CONTRIBUTE AND MAKE IT BETTER! github.com/tc39
  49. 49. github.com/ahmadnassri/npm-package-generator THANK YOU! @AhmadNassri AhmadNassri.com AhmadNassri.com/talks TechMasters.chat NodeSchool.io/toronto FSTO.co

×