safely build, publish & maintain es2015, es2016 packages today

52
MODERN OPEN SOURCE NODE.JS PACKAGES Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

Upload: torontonodejs

Post on 11-Feb-2017

41 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

MODERN OPEN SOURCE NODE.JS PACKAGESSafely Build, Publish & MaintainES2015, ES2016 Packages Today

Page 2: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

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, BoardMember 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)

Page 3: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
Page 4: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
Page 5: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

JS HISTORYSTANDARDIZATION TIMELINE

Page 6: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

TC39 & ECMA-262COMMITTEE & STANDARD

Page 7: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today
Page 8: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EC1JUNE 1997

Page 9: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EC2JUNE 1998

Page 10: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EC3DECEMBER 1999

Page 11: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EC4ABANDONED!

:(

Page 12: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EC HARMONYAUGUST 2008

Page 13: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EC5DECEMBER 2009

Page 14: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

ES6 ES2015JUNE 2015!!!

Page 15: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

ES2016JUNE 2016 :)

Page 16: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

ES2017WIP

Page 17: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

NEW PROCESSYOU CAN CONTRIBUTE TOO!

Page 18: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

STAGE 0 (STRAWMAN)ALLOW INPUT INTO THE SPECIFICATIONtc39.github.io/process-document

Page 19: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

STAGE 1 (PROPOSAL)MAKE THE CASE, DESCRIBE A SOLUTION, IDENTIFY CHALLENGES

tc39.github.io/process-document

Page 20: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

STAGE 2 (DRAFT)PRECISELY DESCRIBE SYNTAX & SEMANTICS USING FORMAL SPEC LANGUAGE

tc39.github.io/process-document

Page 21: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

STAGE 3 (CANDIDATE)FURTHER REFINEMENT WILL REQUIRE FEEDBACK FROM IMPLEMENTATIONS AND USERS

tc39.github.io/process-document

Page 22: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

STAGE 4 (FINISHED)READY FOR INCLUSION IN THE FORMAL ECMASCRIPT STANDARD

tc39.github.io/process-document

Page 23: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

I CAN HAZES2016?

Page 24: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

NOT YET!

Page 25: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

SPEC COMPATIBILITYhttps://kangax.github.io/compat-table/es6/

Page 26: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

LONG-TERM SUPPORT!https://github.com/nodejs/LTS

Page 27: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

NO MOREWAITING!

Page 28: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

TRANSPILER(S) TO THE RESCUE

Page 29: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

MOAR TRANSPILERS!https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js

Page 30: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

ICYMI ...https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js

Page 31: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

SUPERSETS ARETHE NEW

FRAMEWORKS!

Page 32: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

BACKWARDCOMPATIBLE?

Page 33: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

MODERNWORKFLOW!

Page 34: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

TOOLS

Page 35: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

SIMPLE WORKFLOW

Page 36: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

PACKAGE.JSON

Page 37: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

PACKAGE.JSON

Page 38: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

PACKAGE.JSON

Page 39: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

.TRAVIS.YML

Page 40: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

EASY!RIGHT?

Page 41: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

GOTCHAS

Page 42: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

FINAL SPECCHANGED

ES7 !== ES2016

Page 43: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

COMPILED APIDIFFERS

FROM SOURCE(compiled == source && compiled !== source) === true

Page 44: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

PERFORMANCE LOSS+

NO OPTIMIZATION

Page 45: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

SUGARvs

CORE

Page 46: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

ABANDONWARETool Decay + Fragile Ecosystems

Page 47: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

TOOLING HEAVYSetup, Config, Environments, Virtualization, Resources

Page 48: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

IT GETS BETTER

Page 49: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

IT *IS* BETTER

Page 50: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

IT WILL BE EVENBETTER

Page 51: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

CONTRIBUTE AND MAKEIT BETTER!

github.com/tc39

Page 52: Safely Build, Publish & Maintain ES2015, ES2016 Packages Today

github.com/ahmadnassri/npm-package-generator

THANK YOU!@AhmadNassri

AhmadNassri.com

AhmadNassri.com/talks

TechMasters.chat NodeSchool.io/toronto FSTO.co