safely build, publish & maintain es2015, es2016 packages today

Post on 11-Feb-2017

44 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

MODERN OPEN SOURCE NODE.JS PACKAGESSafely Build, Publish & MaintainES2015, 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)

JS HISTORYSTANDARDIZATION TIMELINE

TC39 & ECMA-262COMMITTEE & STANDARD

EC1JUNE 1997

EC2JUNE 1998

EC3DECEMBER 1999

EC4ABANDONED!

:(

EC HARMONYAUGUST 2008

EC5DECEMBER 2009

ES6 ES2015JUNE 2015!!!

ES2016JUNE 2016 :)

ES2017WIP

NEW PROCESSYOU CAN CONTRIBUTE TOO!

STAGE 0 (STRAWMAN)ALLOW INPUT INTO THE SPECIFICATIONtc39.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 HAZES2016?

NOT YET!

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

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

NO MOREWAITING!

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 ARETHE NEW

FRAMEWORKS!

BACKWARDCOMPATIBLE?

MODERNWORKFLOW!

TOOLS

SIMPLE WORKFLOW

PACKAGE.JSON

PACKAGE.JSON

PACKAGE.JSON

.TRAVIS.YML

EASY!RIGHT?

GOTCHAS

FINAL SPECCHANGED

ES7 !== ES2016

COMPILED APIDIFFERS

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

PERFORMANCE LOSS+

NO OPTIMIZATION

SUGARvs

CORE

ABANDONWARETool Decay + Fragile Ecosystems

TOOLING HEAVYSetup, Config, Environments, Virtualization, Resources

IT GETS BETTER

IT *IS* BETTER

IT WILL BE EVENBETTER

CONTRIBUTE AND MAKEIT BETTER!

github.com/tc39

github.com/ahmadnassri/npm-package-generator

THANK YOU!@AhmadNassri

AhmadNassri.com

AhmadNassri.com/talks

TechMasters.chat NodeSchool.io/toronto FSTO.co

top related