
ãã³ã»ã¢ãã©ã¢ãã®ãã€ãŒããèŠãåŸããã®è³æãæžãããšã«ããŸããã圌ã«æè¬ããŸãã Danã¯ãäžè¬ã®äººã ã®æ³šç®ã«å€ããJavaScriptã®äžçã§æãèå³æ·±ãã€ãã³ãã«ã€ããŠãå å ¥è ã«è³ªåããŸããã
JSæ奜家ã¯è³ªåã«çãããã€ãŒãã®äžã§å±±ã»ã©ã®çããéãŸã£ãã 誰ããã圌ã®æèŠã§ã¯ã2017幎ã«æ³šæãæã䟡å€ãããããšã«ã€ããŠè©±ããŸããã çµæã¯éåžžã«é¢çœãéžæã§ãããããããç§ã¯æè¯ã®ãã®ãéžæãã説æãè¿œå ããŸããã
ããã«èšãããã§ãã æ©èœçãªããã°ã©ãã³ã°ããŒã«ãèçŒã§èŠãããããªã¢ã«ã«è¡šç€ºãããŠãããšããäºå®ããå€æãããšãAFã¯ãå€æŽå¯èœãªã¢ãŒããéããŠããå®è¡ãããŠããå°æ°ã®äººã®éåœã§ããã ä»ã§ã¯ããªãæ·±å»ãªåŸåã«èŠããŸãã
JavaScriptã³ãã¥ããã£ã§æãææã§ãããšææãããŠããæè¡ã以äžã«ç€ºããŸãã 人æ°ã®éé ã§ã©ã³ã¯ä»ãããŸããã
Webassssembly
ããããªãWebAssemblyãã¯ãããžãŒã®æ©èœã®èª¬æãå§ããŸããïŒ ãã®ç¥ç§°ãwasmãã¯ãasmãã®ããã«èŠããŸãããããã¯äžäœã¬ãã«ã®äœãã«çŽé¢ããŠããããšã瀺åããŠããŸãã å®é-ããã®ãŸãŸã ãã®ãã¯ãããžãŒã¯ãããããèšèªã®éçºãåçŽåããããšãç®çãšããŠããŸãïŒåã°ãããé¢æ°åããã°ã©ãã³ã°ãšãªã¢ã¯ãã£ãããã°ã©ãã³ã°ã®æ奜è ïŒïŒããŸããWebçšã®ã³ãŒããã³ã³ãã€ã«ããŸãã
WebAssemblyãã¯ãããžãŒã¯å€ãã®äººã«ã¢ããŒã«ããŠããŸãã å®éã®ãšãããå€ãã®éçºè ã¯ãŸã JSãšéåžžã«æ··åããé¢ä¿ã«ãããJavaScriptã«å€æã§ããã³ãŒãã§æžãããä»ã®èšèªãç¡æ¡ä»¶ã«åªå ããŠããŸãã 以äž-ãã®ã¢ã€ãã¢ã®å€ãã®èšŒæ ã
ãããã«ãããJSã¯é£èºçã«åé²ãããããããã«çµãããšã¯èª°ãæåŸ ããŠããŸããã
WebAssembly-éçºã¯æ¯èŒçè¥ãã§ãã çŸåšãè©Šçšçã®æ®µéã«ããããªãªãŒã¹ã¯ãŸã é ãã§ãã ãããã£ãŠãJSã®å°æ¥ã«éåžžã«æ·±å»ãªåœ±é¿ãäžããå¯èœæ§ãããããããã®éçºã¯èŠ³å¯ãã䟡å€ããããšç¢ºä¿¡ããŠããŸãã
WebAssemblyã®è©³çŽ°ã«ã€ããŠã¯ãEric Elliottãã芧ãã ããã
ãã¬
å€ãã®éçºè ã¯2016幎ã«æåéããšã«ã ã«æãããŸããã ããã¯ããã¹ãŠã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããæ©èœçãªããã°ã©ãã³ã°èšèªã§ãã
èšèªã®äž»ãªç¹åŸŽãæããã«ããElmã®çŽ¹ä»ããã®æç²ã以äžã«ç€ºããŸãã
- ãæªå®çŸ©ã¯é¢æ°ã§ã¯ãªãããšãã粟ç¥ã§ãã©ã³ã¿ã€ã ãšã©ãŒãnullãã¡ãã»ãŒãžã¯ãããŸããã
- ããã°ã©ã ãè¿ éã«æ¡åŒµããã®ã«åœ¹ç«ã€äŸ¿å©ãªãšã©ãŒã¡ãã»ãŒãžã
- ã¢ããªã±ãŒã·ã§ã³ã®æé·ã«å¿ããŠé©åã«èšèšãããã³ãŒãã
- ãã¹ãŠã®Elmããã±ãŒãžã®èªåã»ãã³ãã£ãã¯ããŒãžã§ã³ç®¡çã
Elmã¯ãã¯ãªãŒã³ã§ã·ã³ãã«ã§ã³ã³ãã¯ããªã³ãŒããšçµã¿åããããåªããããŒã«ã§ãã
ãã¡ãããElmã¯JSã«ã³ã³ãã€ã«ãããJavaScriptéçºè ã®æ³šç®ãéããŸããã
Vue.js
æšå¹ŽãVue.jsã®äººæ°ãé«ãŸãã®ãèŠãã®ã¯éåžžã«èå³æ·±ããã®ã§ããã ãã®ã©ã€ãã©ãªã¯ãééããªã2017幎ã«ã¯èåãªãã¬ãŒã€ãŒã«ãªãã§ãããã
ãšããã§ãVue.jsã®å€§èäžæµãªäœæè ã§ãããã³ãã¥ããã£ãªãŒããŒã§ããEvan Yuã®ãããã§ãç§ã¯æšå¹ŽãªãŒãã³ãœãŒã¹ã®ã¢ã€ãã¢ã«è§ŠçºãããŸããã
Vueã¯Reactã®ã©ã€ãã«ã§ããããã2017幎ã«ã¯ãReactãVueããŸãã¯Elmã®ã©ã¡ããè¯ããã«ã€ããŠç¡éã®è°è«ãè¡ãããã®ã¯åœç¶ã§ãïŒ ããã§æ¢ã«ãã®ãããã¯ã«ã€ããŠè°è«ããŠããŸãïŒã æçµçã«ãã©ã®ã³ãã¥ããã£ã倧èŠæš¡ãããžã§ã¯ãã«æé©ãªãµããŒããæäŸãããã決å®ããŸãã ãšãŽã¡ã³ã»ãŠãŒã¯äœããã¹ããç¥ã£ãŠãããšæãã
Vue 2.0ããŒãžã§ã³ãæè¿ãªãªãŒã¹ãããããé«éãã€å°åã«ãªãããã®ã©ã€ãã©ãªãããã«é åçã«ãªããŸããã
ã¡ãªã¿ã«ã äžéšã® äŒæ¥ãVueã«åãæ¿ããçç±ã«ã€ããŠã®è³ªåã«å¯Ÿããåçãããã€ããããŸãã
ãããªïŒããã«çž®å°ïŒ
Babiliã¯2016幎8æã«ãªãªãŒã¹ãããŸãããããã¯ãBabelã€ã³ãã©ã¹ãã©ã¯ãã£ã«åºã¥ããŠãES6 +ãšé£æºã§ããæå°åæ©èœã§ãã
ãªãå¥ã®çž®å°åšã§ããïŒ
ããã¯ããããªã®çç±ã«ã€ããŠã®ãã³ãªãŒã»ãã¥ãŒã«ããçŽ æŽãããç©èªã§ãã 次ã®éšåã«æ³šæãæãããšãéèŠã ãšæããŸãããBabiliã¯ES2015 +ãã¶ã€ã³ãå ¥åãšããŠåãå ¥ããããšãã§ããŸãããæ¢åã®ãããã¡ã€ã€ã¯éåžžES5ã«éå®ãããŸãã çž®å°ããåã«ããµããŒããããŠããèšèªããŒãžã§ã³ã«ã³ãŒãããã©ã³ã¹ã³ã³ãã€ã«ããå¿ èŠããããŸãã ããã¯ãããã°ã©ããŒãES2015ã§æ¢ã«äœæ¥ãããžã§ã¯ããäœæããŠãããšèãããšã圹ã«ç«ã¡ãŸããã ããã«ãBabiliã¯æè»æ§ããããã¢ãžã¥ãŒã«æ§é ã«ãªã£ãŠããŸãïŒå®éããã©ã°ã€ã³ã®ãµããŒããæå³ããBabel ããªã»ããã®ã»ããã§ã ïŒãããªã»ãããŸãã¯ã³ãã³ãã©ã€ã³ããŒã«ãšããŠäœ¿çšã§ããŸãã ããã«ãBabiliã¯ES2015 +ã«åºæã®ã³ãŒãæé©åãå®è¡ã§ããŸãã
OCaml
OCamlèªäœã¯ç¹ã«JSã«é¢é£ä»ããããŠããŸãããããªã¹ãã«ãã次ã®2ã€ã®åŸåã®éèŠæ§ãèªèããããã«ãOCamlãäœã§ããããç¥ãå¿ èŠããããŸãã
éå»æ°å¹Žã«ããã£ãŠé¢æ°åããã°ã©ãã³ã°ã®åŸ©æŽ»ãç®ã®åœããã«ããŠãããªããHaskellã«ã€ããŠèããããšããããããããŸããã OCamlã¯ãäž»ã«OCamlããJSãŸã§ã®åªããã³ã³ãã€ã©ãããã€ããããšããäºå®ã«ãããHaskellãããæ¥éã«äººæ°ãåããŠããŸãã
ããšãã°ãFacebookéçºè ã¯OCamlã®å€§ãã¡ã³ã§ããã Hack ã Flowãããã³Inferã®äœæã«åœ¹ç«ã£ãŠããŸãã
BuckleScript
BuckleScriptã¯ããã«ãŒã ããŒã°éçºããŒã ã«ãã£ãŠäœæãããOCamlçšã®ã³ã³ãã€ã©ã§ãïŒã¯ããããã¯åããã«ãŒã ããŒã°ã§ãïŒã Dwayne Johnsonããã®ããšã«ã€ããŠæ¬¡ã®ããã«è¿°ã¹ãŠããŸããâ BuckleScript ããŸãã¯ç¥ããŠbscã¯ãOCamlçšã®æ¯èŒçæ°ããJavaScriptã³ã³ãã€ã©ã§ãã ã€ãŸããé¢æ°åã®OCamlèšèªã䜿çšããŠãJavaScriptã§ã³ãŒããã³ã³ãã€ã«ã§ããŸãã ããã§æ³šç®ãã¹ãããšã¯ãBuckleScriptã«ãã£ãŠçæãããã³ãŒããéåžžã«èªã¿ãããããšã§ãïŒã€ãŸããJSã«ç²ŸéããŠãããªãããã®ã³ãŒããç解ã§ãããããã°ã容æã«ãªããŸãïŒããŸãBuckleScriptã¯npmãšã³ã·ã¹ãã ã«æ¥ç¶ãããŠããŸãã ãã®çµæã匷åã§æ©èœçã§åä»ããããèšèªãšãWebéçºçšã®ææ°ã®çŽ æŽãããã©ã€ãã©ãªãçµã¿åããã2ã€ã®äžçã®æé«ã®ãã®ãæã«å ¥ããããšãã§ããŸãã
ReasonML
Reasonã¯ãéåžžã«äœ¿ããããæ§æãæ·±ããšãã£ã¿ãŒçµ±åãåªãããã«ãããŒã«ãåããOCamlããŒã¹ã®èšèªã§ãã ããã¯ãReactã«æºãã£ãåãFacebookããŒã ã«ãã£ãŠäœæãããŸããã
ã·ã§ãŒã³ã°ããŒãã«ããReasonã«é¢ããçŽ æŽãããçç·šå°èª¬ã§ãã
ãã¥ã¢ã¹ã¯ãªãã
æããã«ãPureScriptã¯ãJavaScriptã«ã³ã³ãã€ã«ãããå¥ã®åŒ·ãåä»ããããå¹ççãªããã°ã©ãã³ã°èšèªã§ãããšæ¢ã«æšæž¬ããŸããã
Haskellæ奜家ã«ç¹ã«äººæ°ããããŸãã ããªãã¯åœŒããšã«ã ã®ç«¶äºçžæãšèããããšãã§ããŸãã PureScriptãæäŸãããã®ã¯æ¬¡ã®ãšããã§ãã
- éãã³ãŒãå®è¡ç°å¢ã®æ¬ åŠã
- JavaScriptã§äœ¿çšãããŠãããã®ãšåæ§ã®ïŒã¬ã€ãžãŒã§ã¯ãªãïŒå³å¯ãªã³ã³ãã¥ãŒãã£ã³ã°æŠç¥ãé©çšããŸãã
- JavaScriptãªããžã§ã¯ããèšè¿°ãããªãã©ã«ãªæ¹æ³ã®ãµããŒã
- åã·ã¹ãã ãããããHaskellããã匷åã§äŸ¿å©ã§ãã
- JSã©ã€ãã©ãªãšã®çžäºäœçšã容æã«ããå€éšé¢æ°ã®éåžžã«ã·ã³ãã«ãªã€ã³ã¿ãŒãã§ã€ã¹ã
TypeScript
TypeScriptã¯ãã³ãŒãã®å質ãšãããããããåäžãããããšãç®çãšããJavaScriptã¢ããªã³ã§ãã ããã«ãTypeScriptã¯ãããã°ã©ã ããã¹ãã®å ¥åããã»ã¹ã§ãšã©ãŒãçŽæ¥ç€ºãããšã«ãããéçºããã»ã¹ãä¿é²ããŸãã ãšããã§ãAtomãšãã£ã¿ãŒã¯TypeScriptããµããŒãããŠããŸãã

Anders Halesberg ã® TypeScriptã«é¢ãã詳现ãªã¹ããŒãªãŒã¯æ¬¡ã®ãšããã§ãã
Webpack-blocks
ããã¯ãWebpackãæ§æããããã®è¯ãæ¹æ³ã§ãã ãããã圌ã®æ¯æã®äž»ãªè°è«ã¯ãã³ã»ã¢ãã©ã¢ãã«ãã£ãŠãªãããŸããïŒãæããã«ãWebpackã¯é«ã¬ãã«ã®ããŒã«ã«ãªãããšã¯ãããŸããã ãããã£ãŠããã®æ§æã¯ãå€éšæ段ãæäŸããæå³ããããŸãã èšå®ã¯ããã©ã¡ãŒã¿ãå«ãããã¹ãã®æçãã³ããŒããŠè²Œãä»ãããšãã圢ã§ã¯ãªããé©åã«èšèšããããããã¯ã®åœ¢ã§æ瀺ããå¿ èŠããããŸãã
Webpackã䜿çšããå Žåã webpack-blocksã®æçšãªäœ¿çšæ³ãèŠã€ããå¯èœæ§ãååã«ãããŸã ã
GraphQL
ç¹ã«å€§éã®ããŒã¿ãåŠçããå¿ èŠãããäŒæ¥ã§ã¯ãGraphQLãRESTã«åã£ãŠä»£ãããŸãã ããããªããããªã®ããç解ããã®ã«åœ¹ç«ã€äŸã§ãã äž»ãªã¢ã€ãã¢ïŒGraphQLã¯éçãŸã§æå¹ã§ãã 2017幎ãGraphQLã®æé·ãåŒãç¶ã芳å¯ãããšä¿¡ããŠããŸãã ãããŠã1幎åŸã«RESTã«çœ®ãæãããã©ããã«ã€ããŠã話ããŸãã
Reactã¹ããŒãªãŒããã¯
ããã¯ãReact / React Nativeã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹éçºç°å¢ã§ãã ãã®å©ããåããŠãã€ã³ã¿ãŒãã§ã€ã¹ã³ã³ããŒãã³ãã®ããŸããŸãªç¶æ ãèŠèŠåããã€ã³ã¿ã©ã¯ãã£ãã«æäœã§ããŸãã
ãã®åçãèŠãŠãã ãããåé¡ãããã«ããããŸãã

React Storybookã¯ãã¡ãã«ãããŸã ã
jQuery 3.0
JQueryã®greatç¥ç¶ã¯ãŸã ç§ãã¡ãšäžç·ã§ãïŒ éçºããŒã ã¯2016幎6æã«ãããã³ã³ãã¯ãã§é«éãªããŒãžã§ã³ããªãªãŒã¹ããŸãããã Reactããã¹ã¿ãŒãããªã©ã®ããšã«ç±å¿ã ã£ãå€ãã®äººã¯ãããããããã«ã€ããŠèããŠããŸããã§ããã
Pixi.js
WebGLã䜿çšããŠçŽ æŽãããçŸãã2Dã€ã³ã¿ãŒãã§ãŒã¹ãŸãã¯ã²ãŒã ãéçºããŠããå ŽåãPixi.jsã¯ããªãã«ãŽã£ããã§ãã ãã®ã©ã€ãã©ãªã䜿çšããŠäœæããããããžã§ã¯ãã®ã®ã£ã©ãªãŒãã芧ãã ãã ã æ·±å»ãªãã®ãäœæããäºå®ããªãå Žåã§ããä»ããèŠãŠãã ããã
ããªã¢ã¯ã
Preact.jsã¯Reactã®é«éãªä»£æ¿æ段ã§ãããåãES6 APIã§ãµã€ãºãããã3 KBã§ãã
ã€ã³ãã§ã«ã
Infernoã¯Preactã®ä»£æ¿ã§ãã ããã¯Reactã«äŒŒãé«éã©ã€ãã©ãªã§ã8 KBããå æãããã¯ã©ã€ã¢ã³ãåŽãšãµãŒããŒã®äž¡æ¹ã§é«æ§èœã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããã«èšèšãããŠããŸãã éçºè ã«ãPreactãããå€ãã®çµã¿èŸŒã¿ã®è¿œå æ©èœãæäŸããŸãã
ãã³
Rustã¯ãemscriptenã䜿çšããŠJavaScriptã«ã³ã³ãã€ã«ããå¥ã®é«éèšèªã§ãã ããããããã®ãããªããŸããŸãªèšèªã¯ãJSã§æžããããªãéçºè ã®æ°ãæ確ã«ç€ºããŠããŸãã
ã«ã¹ã¿ã èŠçŽ v1
ã«ã¹ã¿ã èŠçŽ ãã¯ãããžãŒïŒShadow DOMãšãšãã«ïŒã¯ãé©å¿ã«é¢ããåé¡ãçµéšããŸããïŒäž»ã«ãã®æŠå¿µã®èªèã®è€éãã«ããïŒãã2017幎ãåŒãç¶ãéçºãããå¯èœæ§ããããŸãã
æ¹åã®äž»ãªé åã¯ãã©ãŠã¶ã®ãµããŒãã§ããããã¯ã ããã§ãããããã« ãæé·ããŠããŸãã ããã¯éçºè ã«ããå€ãã®æ©äŒãäžãããšåæã«ãã³ãŒãã®éãæžããçŽ æŽãããæ¹æ³ã ãšæããŸãã
ã«ã¹ã¿ã ãšã¬ã¡ã³ãã®äœ¿çšæ¹æ³ãç解ããã®ã«åœ¹ç«ã€ã Smashing MagazineãšGoogleã®è³æã以äžã«ç€ºããŸãã
WebRTC
WebRTCããã§ã«5æ³ã§ãããšã¯ä¿¡ããããŸãã ã FacebookãSlackãSnapchatãWhatsAppã¯ããããã®ã·ã¹ãã ã§äœ¿çšããŠããŸãã WebRTCã®äººæ°ã¯é¿ããããããŠãŒã¶ãŒã«é³å£°ããã³ãããªéä¿¡ãæäŸããäŒæ¥ããŸããŸã䜿çšãããŸãã
WebRTCãããžã§ã¯ãããŒã ã®é©æ°ãæ¹åã®ã¿ãããããããšãæåŸ ããŸãããã
Next.js
Next.jsã¯ãReactãWebpackãBabelã®äžã«æ§ç¯ãããå°ããªãã¬ãŒã ã¯ãŒã¯ã§ãã ãµãŒããŒåŽã§æ§ç¯ãããReactã¢ããªã±ãŒã·ã§ã³ã®äœæãšå±éãç°¡çŽ åããŸãã
ãã®ãããžã§ã¯ãã«é¢äžããŠããZEIT éçºããŒã ã¯ãReactã³ãã¥ããã£ã§éåžžã«æŽ»çºã§ãã Next.jsã¯å°ãªããšã泚æãæãã¹ãã ãšæããŸãã
ãŸãšã
ã芧ã®ãšããã2017幎ã«èŠã䟡å€ã®ããJSãããžã§ã¯ãã®å°è±¡çãªãªã¹ããæ¢ã«éžæãããŠããŸãã ä»å¹Žã¯ãŸã£ããæ°ãããã®ããããããšä¿¡ããŠããŸãã ãããã«ãããããã¯èå³æ·±ãã§ãããã
ãã®è³æããªãªãŒã¹ãããåŸãèªè ã¯ããããæ¡åŒµã§ããããã€ãã®éèŠãªæè¡ãææ¡ããŸããã äœãæããŠããããŸããïŒ