ã¿ãªããããã«ã¡ã¯ïŒ ç§ãã¡ã¯ã©ããããããJavaScriptãšã¢ããªã±ãŒã·ã§ã³éçºã®ãããã¯ã«é¢ããç°¡åãªå ¥éã³ãŒã¹ãäœæããããšã«ããŸããïŒãšããã§ããŸããªãå ¬éãããŸãïŒããããŠãç§ã¯ãã®ããã®è³æãéããŠããéã«ãã©ããããããããèªäœãããªãå€ãã®ãã®ãããããšãå€æããŸããã JavaScriptéçºã®æåç·ã«ãããšèšããŸãã ããããããZ Technologyã«ããY幎ã®Xãã¬ã³ãããšãããžã£ã³ã«ã®å¥ã®ã¬ãã¥ãŒèšäºãäœæãããšããã¢ã€ãã¢ãçãŸããŸããã
ç§ã説æããããšã®å€ãã¯ãä»æ¥ãããçšåºŠè©ŠããŠã¿ãããšãã§ããŸãïŒå®éãããã§ãªããã°ããã¬ã³ãã«ã€ããŠã§ã¯ãªããå®å®ã®æªæ¥ã«ã€ããŠè©±ããŸãïŒã ããã«ã¯æ確ãªãã©ã¹ããããŸããããããªãã«èªç±ãªæéããããªãïŒãããŠéåžžã¯äŒæ¥ã«ãããããããŸãïŒãããªãã¯äœãããã§ãããã ãããŠãäžè¬ã«ãèŠéãåºããŠæ°å¹Žãè¿ããããšã¯è¯ãããšã§ãïŒ
1. ECMAScript 6
Webéçºã«æºãã£ãŠãããªããããããJavaScriptã®ãã¹ãŠã®åã³ãšå¶éãçµéšããŠããã§ãããã 1995幎ã«Brendan IkeãJavaScriptãäœæãããšãã圌ã¯15ã20幎ã§ã©ã®Webãã¯ãããžãŒãéçºãããéçºè ã圌ã®é è³ã䜿çšããŠã©ã®ãããªããªãã¯ãåŸãã®ãã»ãšãã©æšæž¬ã§ããŸããã§ããã
ææ°ã®Webãœãªã¥ãŒã·ã§ã³ã®è€éãã¯ããããã®ãœãªã¥ãŒã·ã§ã³ã®äœææ¹æ³ã®å€§å¹ ãªæ¹èšãé·ãéå¿ èŠãšããŠããããããã©ãŠã¶éçºè ïŒç¹ã«ïŒãJavaScriptæšæºã®æ¬¡ã®ããŒãžã§ã³ã§ããECMAScript 6ã«ä»æ¥ããã»ã©æ³šæãæã£ãŠããããšã¯å¶ç¶ã§ã¯ãããŸããã
æ°ããæšæºïŒã¡ãªã¿ã«ãES4ã®ãªãªãŒã¹ã®å€±æã«ãé¢ããããES6ã®ã調åããšåŒã°ããããšããããŸãïŒã«ã¯ãã¯ã©ã¹ãã¢ãžã¥ãŒã«ãã³ã¬ã¯ã·ã§ã³ãã€ãã¬ãŒã¿ãŒããžã§ãã¬ãŒã¿ãŒããããã·ãŒãåä»ãé åãçŽæãæ°ããæšæºãªããžã§ã¯ãã®ã¡ãœãããšããããã£ãæ°ããæ§ææ©èœãªã©ã
// lib/math.js export function sum(x, y) { return x + y; } export var pi = 3.141593; // app.js module math from "lib/math"; alert("2Ï = " + math.sum(math.pi, math.pi));
ãšããã§ãã¢ãžã¥ãŒã«ã«åºã¥ããŠã æè¿ ãéåžžã«å€ãã®èå³æ·±ããœãªã¥ãŒã·ã§ã³ãéçºãã ãŸãã ãå°ãªããšãRequireJSãŸãã¯Browserifyã䜿çšããŠãã ãã ã
è€éãªã¢ããªã±ãŒã·ã§ã³ã®äœæãšä¿å®ãã¯ããã«ç°¡åã«ãªããŸãã Luke Hobanã«ããã ECMAScript 6æ©èœã®æŠèŠ ãã®ã³ãŒãã§ãæ°ããèšèªæ©èœãã©ã®ããã«èŠãããã確èªã§ããŸãã
ES6ãšã®äºææ§ããŒãã«ã§ã ES6ã®æ°æ©èœã®ãµããŒãã®å®è£ ãç£èŠã§ããŸã ã ãŸãã Windows Insiderããã°ã©ã ã®äžéšãšããŠå©çšã§ããInternet Explorer Technical Previewã®æ°ãããã«ãã§ãå€ãã®æ©èœãè©Šãããšãã§ããŸãã
ã¡ãªã¿ã«ã2015幎ã®çµããã«ã¯ãJavaScriptã®20åšå¹Žãšãã倧ããªãç¥ããåŸ ã£ãŠããŸãã å®éãæ°ããæšæºã¯JavaScriptãåªããèšèªã«ããè©Šã¿ã§ãïŒãã ãããã®æŠå¿µã®äžéšã¯ããããã¿ã€ãã®ç¶æ¿ãããåå¿è ã«ã¯ç°¡åã«æããªãå ŽåããããŸãïŒã ãŸããES6æšæºã2015幎ã«æ£ç¢ºã«æ¿èªããããšããäºæž¬ããããŸãã ãã ããéçºæ¥åã«ãããæ°ããæšæºã®çŽæ¥çãªå®è£ ã«ã¯1幎以äžããããŸãã
2015幎ã«æåŸ ãããããšïŒæ°ããECMAScript 6æšæºããã©ãŠã¶ã§ã®å®è£ ãã³ãã¥ããã£ããã³ãã¬ãŒã ã¯ãŒã¯ã§ã®é©å¿ã
2.åä»ãJavaScript
JavaScriptã®æ°æ©èœã®ç»å Žãæ°å¹ŽéåŸ ã£ãŠããŸããããæ代ã®ç²Ÿç¥ã¯ãJSãè€éãªãœãªã¥ãŒã·ã§ã³ãäœæããéã®æ倧ã®åé¡ã®1ã€ãã¿ã€ãã³ã°ã§ããããšããŸãã¯ãããããã®å®å šãªäžåšãããå°ãå°ãªãããšã瀺åããŠããŸãã
ãã¡ãããJavaScriptã«ã¯å€ãã®æšæºåããããŸãããæ®ãã¯ãããã«åž°çããäžäŸ¿ãªãã§ãã¯ãå¿ èŠã§ãããããŠäžè¬ã«JSã®é åã®1ã€ã¯ãã®ãã€ãããºã ã§ããããããããã¯è€éã§ä¿¡é Œã§ãã決å®ãããã®ã«åœ¹ç«ã¡ãŸããã
éªæªãªããšã«ããã¡ã€ã«ãšã°ã©ãã£ãã¯ã¹ïŒhello WebGLïŒïŒãæäœããã«ã¯ãåäžã®äžè¬åãããæ°å€ã§ã¯ãªãç¹å®ã®æ¬¡å ã®åãæäœããèœåãå¿ èŠã§ããããšãå€æããããããšããã§ã åä»ãé åã®å¥ã®æšæºãç»å ŽããŸããã ãããã¯çŸåšES6ã®äžéšã«ãªããŸãã
äžè¬ã«ãAnders HalesbergïŒDelphiãšCïŒ-圌ã®é è³ïŒãä»äºã«åãããã£ããšã ã TypeScriptãç»å ŽããŸããã TSã¯ãéçºæ®µéã§èšèªã«éçåä»ããè¿œå ããJSã®ã¹ãŒããŒã»ããã§ãããES6ã®å€ãã®æ©èœãåããŠããŸãã ãã¡ãããTSã¯ãã®ããã«èŠããã ãã§ãªããMicrosoftãè€éãªWebã¢ããªã±ãŒã·ã§ã³ã䟿å©ã«äœæãããšããå éšã®ããŒãºãããçŸããŸããã
// TypeScript class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } }
ïŒä»ã®äŒæ¥ã§ãåæ§ã®ããŒãºãé«ãŸã£ãŠããŸããFacebookïŒ Flow ïŒãšGoogleïŒ AtScript ïŒã®æ°ããã¿ã€ãã³ã°ãããžã§ã¯ãã«æ³šæããŠãã ãããããã¯ã2015幎ã«å¥ã®æ°ããäºææ§ã®ãªãæè¡ãåãåããªã倧ããªåžæã®å Žæã§ããïŒ
TypeScriptã®åªããç¹ã¯ãã³ãŒããèšè¿°ããŠããéïŒç¹ã«Visual Studioã§è¡ãå Žåã§ãããå¿ ãããããã§ããå¿ èŠã¯ãããŸããïŒãè€éãªããŒã¿æ§é ãç°¡åã«èšè¿°ããæ©äŒãåŸãããããšã§ããäžæ¹ãã³ã³ãã€ã©ãŒã¯ãåãæ£ããåŠçããŸãã
TSã®ãã1ã€ã®åªããæ©èœããŸãã¯ãã®ã³ã³ãã€ã©ïŒã¡ãªã¿ã«ã èšèªèªäœãšåæ§ã«ãªãŒãã³ã§ãïŒ ïŒã ããã¯ã³ã³ãã€ã«ã®çµæãšããŠãããªããæžãã®ãšã»ãŒåããããããããªJavaScriptã³ãŒããååŸããããšã§ããïŒæ¬¡ã®çŸä»£çãªå®è·µïŒ
// TypeScript to JavaScript var Greeter = (function () { function Greeter(message) { this.greeting = message; } Greeter.prototype.greet = function () { return "Hello, " + this.greeting; }; return Greeter; })();
ãããã£ãŠãåºåã¯ãä»»æã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã äžã®ææ°ã®ãã©ãŠã¶ãŒã§åäœããã³ãŒãã§ãã ã¡ãªã¿ã«ãNode.jsã§ã¯ãTypeScriptã§äœæããããšãã§ããŸãã
ãšããã§ãJSã³ãŒãã¯ãã§ã«TSã³ãŒãã§ãããããåœç¶ã®ããšãªããçåãçããŸããæ¢åã®ã³ãŒããã©ã®ããã«åä»ãã§äœ¿çšã§ããŸããïŒ ãã®è³ªåã«å¯Ÿããçãã¯ã倧èŠæš¡ãªDefinitelyTypedãããžã§ã¯ãã§ãããã®ãããžã§ã¯ãã§ã¯ãæãäžè¬çãªã©ã€ãã©ãªã®ã»ãšãã©ãæ¢ã«å ¥åãããŠããŸãã
å°æ¥ã TypeScript 2.0ã®æ¬¡ã®å€§ããªããŒãžã§ã³ã¯ES6ã®ã¹ãŒããŒã»ããã«ãªãã¯ãã§ãã ãµã³ãããã¯ã¹ã§ãä»ãããã©ãŠã¶ã§TSãè©Šãããšãã§ããŸãã
äžè¬ã«ãJavaScriptã§ã³ãŒããèšè¿°ããå Žåãäœæ¥ã«TypeScriptãå°å ¥ããããšã¯ã2015幎ã«æãéèŠãªæè³ã®1ã€ã«ãªãå¯èœæ§ããããŸãã
2015幎ã«æåŸ ãããããšïŒTypeScripté©å¿ã®æé·ã代æ¿ãããžã§ã¯ãã®éçºãããã³ãããã®çžäºåŒ·åã
3.ã¯ãã¹ãã©ãããã©ãŒã
JavaScriptæ¥çãã¯ãã¹ãã©ãŠã¶ãŒJavaScriptã§æçµçã«è§£æ±ºãããå Žåãæçµçã«ã¯ã»ãŒãã¹ãŠã®åé¡ã解決ãããŸããããJSã§ã®ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³éçºã®ã³ã³ããã¹ãã§ã¯ãé·ãéã®ãã®ãŸãã«å§ãŸãã«éããŸããã
æ¥å¹ŽïŒãããŠããã ãã§ãªãïŒè§£æ±ºããªããã°ãªããªã2ã€ã®éèŠãªã¿ã¹ã¯ïŒãµã€ããšã¢ããªã±ãŒã·ã§ã³éã®å¢çãæ¶å»ããããšãããã³JavaScriptã§ã®ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³éçºã®æ©äŒãéçºããããšã
å¢çç·ãæ¶å»
æåã®ã¿ã¹ã¯ã§ã®éèŠãªç®æšã¯ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããããšãWebãµã€ãã«æããããšã§ããããšãã°ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«çµ±åããŸããã¢ã€ã³ã³ãã©ã€ãã¿ã€ã«ããããã·ã¥éç¥ãããŒã«ã«å¥çŽã®ãµããŒããŸã§ã åæã«ããã®ãããªã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã³ããWebãµã€ããéããŠæŽæ°ããã·ã¹ãã ã¯éèŠãªãŸãŸã§ãããWebã¢ãããŒãã®å©ç¹ãç¶æã§ããŸãã
Windowsããã³Windows Phoneã®ã³ã³ããã¹ãã§ã¯ããã®æ¹åã®ãœãªã¥ãŒã·ã§ã³ã®1ã€ã¯ã WAT ïŒWebã¢ããªã±ãŒã·ã§ã³ãã³ãã¬ãŒãïŒãã¯ãããžãŒã§ããããã«ãããã¢ããªã±ãŒã·ã§ã³ã¹ãã¢ãéããŠé ä¿¡ãããOSã®ã¢ããªã±ãŒã·ã§ã³ã®åœ¢ã§Webãµã€ãããã¹ãã§ããŸãã ãã®çµæããµã€ãã¯ã¢ããªã±ãŒã·ã§ã³ã«ãå€ããããŸããããã¯ããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ïŒé©åãªã¹ã¿ã€ãªã³ã°ïŒã®ããã«èŠãããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ïŒOSãžã®çµ±åã®ããïŒã®ããã«åäœãããã€ãã£ãæ©èœãåãåããŸãïŒã«ã¡ã©ãšãã¡ã€ã«ã·ã¹ãã ã®æäœãªã©ïŒã
ãã¡ãããããããã®æ¹åã®å¯äžã®é²æ©ã§ã¯ãããŸãããè±å¯ãªçµéšãæã€äžéšã®Webéçºè ãMozilla Prismãããžã§ã¯ããèŠããŠãããšæããŸãã æè¿ã®å±¥æŽãã-ãããã¯Windows 7以éã®åºå®ãµã€ãã§ãææ°ã®ãã®ãã-Yandex.Browserã¯ããã©ãŠã¶ã®èŠèŠçååšãæå°éã«ããããšããŠããŸãã
é²æ©ã«ãããããããïŒããšãã°ã Webã¢ããªã±ãŒã·ã§ã³ã®W3Cãããã§ã¹ãã®èŠ³ç¹ããããã€ãã£ãæ©èœãžã®ã¢ã¯ã»ã¹ã®å®¹æåãããé©åãªAPIã®æšæºåãŸã§ïŒå€ãã®ããšãè¡ãããŠããŸãã ãšããã§ãããã¯æè¡é©æ°ã®ããã®èå³æ·±ãã¹ããŒã¹ã§ããããšãå€æãããããããŸããã
ã¢ãã€ã«éçº
2çªç®ã®ã¿ã¹ã¯ã§ã¯ããã¹ã®ããªãã®éšåãApache Cordovaãªã©ã®ãããžã§ã¯ãã§ãã§ã«è¡ãããŠããŸãã éå»æ°å¹Žã«ããã£ãŠãå€ãã®å€§äŒæ¥ããããžã§ã¯ãã«åå ããŸãããä»æ¥ãPhoneGapãè³Œå ¥ããã®ã¯Adobeã ãã§ãªããMicrosoftãIntelãIBMãGoogleãªã©ããããŸãã
ããæå³ã§ã¯ãCordovaã¯ä»æ¥ã®åé¡ã解決ããã ãã§ããããã¯ãWebéçºãšWebæšæºã®äžçã§ã¯ãæã£ãŠãããããæéãããããŸãã ã€ãŸããç°ãªããã©ãããã©ãŒã ã®JavaScriptããåãæ¹æ³ã§ãã€ãã£ãæ©èœãžã®ã¢ã¯ã»ã¹ãæäŸããŸãã
ã³ãŒããHTML / CSSããã³JSã§èšè¿°ããCordovaã¯ã¢ããªã±ãŒã·ã§ã³ã¹ãã¢ã«é åžã§ããã¢ããªã±ãŒã·ã§ã³ã«ããããããã¯ããŸãã ããã§ã®åã®æ®µèœãšã®éèŠãªéãã¯ããã®ãããªã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã¯ããŒã«ã«ã§ããããã確ãã«åªããæ©èœãåããŠããããšã§ãã ãã ããåæã«ãã¹ãã¢ãéããŠã®ã¿æŽæ°ãããšããæå³ã§å¶éãååŸããŸãã
æ¥å¹Žãã³ã«ããã®äœ¿çšãšé©å¿ãå€§å¹ ã«å¢å ãããšäºæ³ãããã®ã¯ãªãã§ããïŒ ããã«ã¯3ã€ã®éèŠãªçç±ããããŸãã
- ã¢ãã€ã«ã»ã°ã¡ã³ãã®ç¶ç¶çãªæé·ãšã¢ããªã±ãŒã·ã§ã³ãžã®æ³šç®ã®ã·ããïŒWebãã©ãŠã¶ãŒã«å¯ŸããïŒã
- WebViewã³ã³ããŒãã³ãã®ããã©ãŒãã³ã¹ãšæ©èœã®æ¹åïŒJSäžã®ã¢ããªã±ãŒã·ã§ã³ãé ããšèšãæšæºçãªçç±ïŒã ã¡ãªã¿ã«ãããã¯ãŠã§ããµã€ãã®ãã¹ãã£ã³ã°ã«ãšã£ãŠéèŠã§ãã
- ããŸããŸãªãã©ãããã©ãŒã åãã®ã¢ããªã±ãŒã·ã§ã³ã䟿å©ã«éçºããã¹ããæ§ç¯ããããã®åªããããŒã«ã®åºçŸã Visual Studio 2015ïŒãã¬ãã¥ãŒïŒã¯çŽ æŽãããäŸã§ãããåœç¶ãMicrosoftã ãããã®æ¹åã«é²ãã§ããããã§ã¯ãããŸããã
åæ¹åã®èå³æ·±ãç¹ã¯ãã¹ã¿ããã«JavaScriptéçºè ãããå Žåãå°æ¥çã«ã¯Webããã³ã¢ãã€ã«éçºã®ãã¹ãŠã®äž»èŠãªããããã«ããŒã§ããããšã§ãã ã¯ããApache Cordovaããã³Webãµã€ãçšã®TypeScriptã¢ããªã±ãŒã·ã§ã³ãä»æ¥äœæã§ããŸãïŒ
2015幎ã«äºæ³ãããããšïŒJSã§ã®ã¯ãã¹ãã©ãããã©ãŒã éçºçšã®ããŒã«ãéçºãããµã€ããšã¢ããªã±ãŒã·ã§ã³ã®éã®å¢çãæ¶å»ãç¶ããŸãã
4.ãã€ãã£ã
åã®ãã¬ã³ãã®èªç¶ãªçºå±ã¯å¥ã®ç§»è¡ã§ãããå®éã«éæãããŸãããããŸã Webéçºè ã®å¿ã®äžã§ã¯ãªãã£ã«ã«ãã¹ãç²åŸããŠããŸããã JavaScriptã§ã®ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³éçºã«ã€ããŠçŽæ¥è©±ããŠããŸãã ãšããã§ãåè¿°ã®Windowsãã©ãããã©ãŒã çšã®Apache Cordovaã¯æ¢ã«ãã€ãã£ãã§ãã
å€ãã®éçºè ã«ãšã£ãŠããã®èãã¯äŸç¶ãšããŠè³ãçããŸãã ãã€ãã£ãã¯äŒçµ±çã«C ++ãCïŒãObjectiveCãJavaãªã©ã«ãããŸãããJavaScriptã«ã¯ãããŸããã
ããã«ã¯ã¢ãã€ã«ãã©ãããã©ãŒã ã§ãæŽå²çãªç¢ºèªããããJavaScriptã¯WebViewå ã§ã®ã¿èšè¿°ã§ããŸããWebViewã¯ããå®éã®ããã€ãã£ãèšèªã®ã¢ããªã±ãŒã·ã§ã³å ã®ã³ã³ãããŒã«ã®1ã€ã«ãããŸããã ãããŠããã¯é ãã£ãã
ãã ããç¶æ³ã¯å€ãããŸããïŒWindows 8ã¯æåãããããŒãžã§ã³8.1ã®Windows PhoneãFirefox OSãChrome OSãããã³ãã®ä»ã®ãã©ãããã©ãŒã ã§ã¯ããã€ãã£ãé¢æ°ãžã®çŽæ¥åŒã³åºãããã¡ã€ã«ã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ãOSæ©èœãšã®çµ±åãªã©ãJavaScriptã§ã¢ããªã±ãŒã·ã§ã³éçºãçŽæ¥æäŸããŠããŸãã nã
// File system access on Windows platform from JavaScript // Get folder var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary; // Get folder contents picturesLibrary.getItemsAsync().then(function (items) { outputHeader(picturesLibrary.name, items.size); items.forEach(function (item) { if (item.isOfType(Windows.Storage.StorageItemTypes.folder)) { output(id(picturesLibrary.name), item.name + "\\"); } else { output(id(picturesLibrary.name), item.fileName); } }); });
ããã¯ãã¹ãŠä»æ¥ãã§ã«ã§ãã åé¡ã¯ãé¢é£ãããã©ãããã©ãŒã ã®ã·ã§ã¢ã®å¢å ãšããã®ãããªæ©äŒããããšããWebéçºè ã®æèã§ãïŒãšããã§ãããã¯Windowsãšã³ã·ã¹ãã å ã§ããèŠãããéåžžã«èå³æ·±ãå¿ççåŽé¢ã§ãã ãWindowsã¢ããªã±ãŒã·ã§ã³çšã®CïŒ/ C ++ã®éçºè ãå¥ééãããšããå§ãããŸãã
ç¶æ³ã¯åŸã ã«å€åããŠããŸãã é©ãã¹ãããšã«ãã¹ããŒããã¬ãïŒããšãã°Open webOSãæèŒããLGïŒãšã²ãŒã ã³ã³ãœãŒã«ïŒããšãã°Xbox OneïŒã¯ãçªç¶ããã€ãã£ãJavaScriptéçºã®æé·ã®æ¹åæ§ã®1ã€ã«ãªããŸããã åã«ä»£æ¿æ段ã¯ãããŸããããåžå ŽãšéèŠã¯æé·ããŠããŸãïŒ
æåŸã«ãå¥ã®éèŠãªåŽé¢ã¯ããã¡ãããJavaScriptã®å®è¡é床ãäžããããšã§ãïŒããã¯ãã³ã³ãã€ã©ãŒ/ã€ã³ã¿ãŒããªã¿ãŒãããã³ç¹å®ã®åŽé¢ã§ã®å ¥åãããã³ããé«éã«å®è¡ã§ããããšãä¿èšŒãããèšèªã®ãµãã»ããïŒ asm.js ïŒã®å ¥åã«å¯Ÿãã質åã§ãã
2015幎ã«æåŸ ãããããšïŒJavaScriptéçºã«ããã¹ããŒãTVããã³ã³ã³ãœãŒã«ã®æé·ãå€ãã®ææ°ãã©ãããã©ãŒã ïŒãã¹ãŠã§ã¯ãªãïŒã§ã®JSã®ãã€ãã£ãéçºã®å¯èœæ§ãžã®Webéçºè ã«ããé©å¿ã
5.ããã€ã¹API
åã®æ®µèœïŒãã€ãã£ãæ§ãã¢ãã€ã«ãã©ãããã©ãŒã ã®æé·ãå¢çç·ã®æ¶å»ïŒã®éèŠãªçµæã¯ãå šäœãšããŠãåäœããããã€ã¹ã®ããŒããŠã§ã¢æ©èœãšã®çžäºäœçšã«é¢ããŠãWebã¹ã¿ãã¯ã®æ©èœã®æ¡åŒµã§ãã
ãžãªãã±ãŒã·ã§ã³ãããã€ã¹ã®åããªã©ã®æãåºæ¬çãªããšãæ±ãæ¹æ³ãæ¢ã«åŠç¿ããŸãããããã€ãã£ãéçºã®å Žåã«å©çšã§ããå¯èœæ§ã®å€§ããªãããã¯ã®ããã«ããã©ãŠã¶ãšã³ãžã³ã§æšæºåããã³å®è£ ããããã«å€ãã®äœæ¥ãå ã«ãããŸãïŒããšãã°ãIEã¯status.modern.ieã§ç£èŠã§ããŸãïŒããéåžžããã©ãŠã¶éçºã®å¯Ÿè±¡ã§ã¯ãããŸããïŒ
- æ¯å
- ããããªãŒç¶æ
- ã»ã³ãµãŒïŒã©ã€ããªã©ïŒ
- ã«ã¡ã©ãšãã€ã¯
- ãã®ä»
ãŠãŒã¶ãŒã®åŽã§æ å ±ãå ¥åãããšãã芳ç¹ãããåæ§ã®ã¿ã¹ã¯ãæèµ·ãããŸãïŒã¿ããå ¥åïŒhiãã€ã³ã¿ãŒããã³ã¿ããã€ãã³ãïŒã§å§ãŸããé³å£°ããã³ãžã§ã¹ãã£å¶åŸ¡ïŒç¹ã«NUIããã³Kinectã®ã¢ã€ãã¢å šè¬ïŒã§çµäºããŸãã
ã¡ãªã¿ã«ã Kinectã«ã€ããŠã¯ã Kinect for Windowsããæã¡ã®å Žåã SDKãšäžç·ã«JavaScriptãããã©ãŠã¶ãŒã§ã»ã³ãµãŒãçŽæ¥æäœããæ©äŒãåŸãããŸãã
ãªããã®æ¹åã¯æ¥å¹Žçºå±ããã®ã§ããããïŒ ããã¯ç°¡åã§ãããã©ãŠã¶éçºè ã¯ãåºç€ãšãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšå¯æ¥ã«é¢ä¿ããŠããããã€ãã£ãæ©èœãWebã³ã³ããã¹ãã«æã蟌ã¿ãå ±éã®é¡æãã¢ãããŒãã®æšæºåã«ã€ãªããã¯ãã§ãã
ãšããã§ãApache Cordovaã«ã¯èå³æ·±ãåŽé¢ããããŸããããã¯æ¢ã«äœããã®æ¹æ³ã§ãããè¡ã£ãŠããŸããJavaScriptã®ãããžã§ã¯ãã§å ¬éãããŠããAPIããå©çšå¯èœã«ãªããšé©åãªæšæºã«é¢é£ä»ããããŸãã
2015幎ã«æåŸ ãããããšïŒJavaScriptããããã€ã¹ã®ãã€ãã£ãæ©èœã«ã¢ã¯ã»ã¹ããããã®APIã®éçºãJSã§ã®NUIã®é©åã ç§ã¯ãããæ°å¹Žéç¶ããšç¢ºä¿¡ããŠããŸãã
6.è€éããšã®æŠã
è€éããšã®éãããŸãã¯ãããè€éãªãœãªã¥ãŒã·ã§ã³ã®äœæãç°¡çŽ åãããšããèŠæãç¶ããŠããŸãã 10幎ã®JSã©ã€ãã©ãªã®æ代ã¯çµããããŠã§ãéçºè ã®ç掻ãé·å¹Žã«ããã£ãŠç°¡çŽ åãããã©ãŠã¶ãŒéã®ã®ã£ãããšãŠã§ãæšæºã®éçºã®äžååãªé床ãåããŸãïŒã¡ãªã¿ã«ã2015幎2æã«ã¯10幎ã®PrototypeããããŸãããããèŠããŠããã°ã6æ-script.aculo .usãããã³9æ-MooToolsïŒïŒã
jQueryãªã©ããããã®ã©ã€ãã©ãªã®äžéšã¯ãŸã çããŠãããç©æ¥µçã«éçºãããŠããŸãã å€ããæ»äº¡ãããã競åä»ç€Ÿã«åã£ãŠä»£ããããŸããã
ããããæãéèŠãªããšã¯ãä»æ¥ãæ°ãããã¬ãŒã€ãŒãã¹ããŒãžã«å ¥ããæ°ããã¯ã©ã¹ã®åé¡ã解決ããŠããããšã§ããããã¯ãè€éãªã¢ããªã±ãŒã·ã§ã³ã®äœæã§ãã ååãšããŠããããã¯å解ãæšæºåãããŒã¿ãã€ã³ãã£ã³ã°ãã¢ãžã¥ãŒã«æ§é ãªã©ãå¿ èŠãšããåäžããŒãžã®ãœãªã¥ãŒã·ã§ã³ã§ãã
MVCã®æŠå¿µïŒããã¯ããŒã³ãããã¯ã¢ãŠããGWTãªã©ïŒã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãäœæããããã®ãœãªã¥ãŒã·ã§ã³ã«ç¶ããŠãæ°ãããã¬ãŒã€ãŒãåžå Žã«åå ¥ããSPAã®äœæã«ããã«é²ã¿ãŸããïŒEmber.jsãAngularïŒGoogleïŒãReactïŒFacebookïŒã
ãã®å šäœã®åãã®äžã§ãç§ã«ãšã£ãŠç¹ã«èå³æ·±ãç¹ã2ã€ãããŸãã
- çµéšãšã€ã³ãã©ãåèããäž»èŠãªãã¬ãŒã€ãŒã®åžå Žã«åå ¥ãããšãæ°ãããœãªã¥ãŒã·ã§ã³ãäœæãããŸãïŒGoogleãšFBãæãæçœãªäŸã§ãïŒã ããã§ã¯ããšã³ãžãã¢ãªã³ã°ã®çµéšã ãã§ãªããåžå Žãåæ§ç¯ã§ããæœåšçãªããŒã±ãã£ã³ã°æ段ã«ã泚ç®ãã䟡å€ããããŸãã
- ã¢ãžã¥ãŒã«æ§ãšçµéšã®æµãïŒãªãŒãã³æ§ã®ãããã§ãäžéšã®ãã¬ãŒã ã¯ãŒã¯ã«ã¯ä»ã®ãã¬ãŒã ã¯ãŒã¯ã®äžéšãå«ããããšãã§ããŸã-å°ãªããšãåãå£ã²ããåããŸãã
ããã¯ã©ã®ããã«ããã«çºå±ããŸããïŒ
ãŸããç§ãã¡ãé©å¿ããŠçµéšãç©ãã«ã€ããŠããšã³ãžãã¢ã¯è£œåãšãœãªã¥ãŒã·ã§ã³ãåèããŸãã Angularã®2çªç®ã®ããŒãžã§ã³ã¯è¯ãäŸã§ãã
第äºã«ãè€éãªãœãªã¥ãŒã·ã§ã³ã®äœæã«ã¯æŽæ°ã¢ãããŒããå¿ èŠã§ãããåçŽãªJavaScriptã®æ©èœãååã§ãªãå Žåããã®æ¹åãçŸå Žã«ããããããŸãã Microsoftã¯TypeScriptã§WinJSãæžãæããŠãããAngular 2.0ã®Googleã¯AtScriptãæºåããŠããŸããFacebookã¯Flowã§ReactJSãæžããŠããŸãã
第äžã«ãã³ã³ããŒãã³ãã®äºææ§ãšäºææ§ã«å¯ŸããèŠæã§ãã ããšãã°ã WinJS 3.0ã®å Žå-ããã¯ãSPAãäœæããããã«ä»ã®ã©ã€ãã©ãªãšã®äºææ§ãå®çŸããããšããæ確ãªé¡æã§ãã Reactã§WinJSã䜿çšãããã§ããïŒ ã䜿çšããŸãã
2015幎ã«äºæ³ãããããšïŒäººæ°ã®ããã©ã€ãã©ãªã®æ°ããæ¹èšçã®ãªãªãŒã¹ã倧èŠæš¡ãªãã¬ãŒã€ãŒã®ç«¶äºã®æ¿åãè€éãªãã¬ãŒã ã¯ãŒã¯ãäœæããããã®ãšã³ããªãŒãããå€ã®å¢å ãES6ã«åºã¥ãããããœãªã¥ãŒã·ã§ã³ã®æ°ããæ©äŒã
7. Webã³ã³ããŒãã³ã
Webã³ã³ããŒãã³ãã¯ãè€éãã®å¢å€§ã«å¯ŸåŠããå¥ã®èŠæ¹ã§ãã ES6ãšTypeScriptãèšèªã¬ãã«ã§æ©èœãããã¬ãŒã ã¯ãŒã¯ãè€éãªã¢ããªã±ãŒã·ã§ã³ã®æ§æã¬ãã«ã§æ©èœããå ŽåãWebã³ã³ããŒãã³ãã¯ãHTMLèŠçŽ ãç¹ã«ããã¥ã¡ã³ããªããžã§ã¯ãã¢ãã«ïŒDOMïŒã®ã¬ãã«ã§è€éãã«å¯ŸåŠããæ¹æ³ã瀺ããŸãã
çŸåšãWebã³ã³ããŒãã³ãã¯5ã€ã®äž»èŠãªã³ã³ããŒãã³ãã§æ§æãããŠããŸãã
- ãã³ãã¬ãŒããšãã³ã¬ãŒã¿-ããŒã¯ã¢ãããã³ãã¬ãŒãã®å®çŸ©ãšã¢ããªã±ãŒã·ã§ã³ãšHTMLèŠçŽ ã®åççæçšããŒã¿ïŒå®éãæ¢åã®ãã©ã¯ãã£ã¹ã®æšæºåã«ã€ããŠè©±ããŠããïŒã
- ã«ã¹ã¿ã èŠçŽ -ç¬èªã®ã¿ã°åãšJSã«å¿ èŠãªã€ã³ã¿ãŒãã§ã€ã¹ãæã€ç¬èªã®ããŒã¯ã¢ããèŠçŽ ãäœæããŸãã
- ã·ã£ããŠDOM-åã ã®ããŒã¯ã¢ããèŠçŽ ïŒãŠã£ãžã§ããã«æçšïŒã®DOMã®äžéšãé衚瀺ã«ããæ©èœãå¯äœçšã®1ã€ã¯ãéåžžã¯ã¹ã¿ã€ãªã³ã°ãé£ããæšæºã³ã³ãããŒã«ã®DOMãéãããšã®å察ã§ãã
- HTMLã€ã³ããŒã-ããã±ãŒãžåãã³ãã¬ãŒããšã«ã¹ã¿ã èŠçŽ ãããã³HTMLããã¥ã¡ã³ãã§ã®å®è£ ïŒES6ã®ã¢ãžã¥ãŒã«ãšéšåçã«äº€å·®ããŠããŸãïŒã
ãã®çµæããã®ãããªäžé£ã®æšæºã¯ãé©åã«å®è£ ãããŠããã°ãæ§æãšåå©çšã«äŸ¿å©ãªæ°ããéã«ãŒãã³ã³ãããŒã«ïŒããŒã¯ã¢ããã®æ®ãã®éšåã«æœåšçãªå¯äœçšãªãïŒã®äœæãå€§å¹ ã«ä¿é²ããã¯ãã§ãã
ãã©ãããã©ãŒã åãã«ç¬èªã®ãã¬ãŒã ã¯ãŒã¯ãäœæããŠãã倧èŠæš¡ãªãã¬ãŒã€ãŒã«å ããŠãããŸããŸãªå¶åŸ¡ã©ã€ãã©ãªã®éçºè ããã®é åã®éçºã«éåžžã«èå³ãæã£ãŠããŸãããã®ãããçŸä»£ã®ãã©ãŠã¶ãŒã«ãã¯ãããžãŒãé©å¿ããã«ã€ããŠãã³ãã¥ããã£å šäœã§ã®é©å¿ãå¢å ããããšãäºæ³ãããŸãã
ãã ããããæå³ã§ã¯ãWebã³ã³ããŒãã³ãã¯ããŒã¯ããŒã¹ã§ãããããã«ã€ããŠããã€ãã©ã®ããã«èµ·åããããæ£ç¢ºã«èšãããšã¯å°é£ã§ãã ä»æ¥ããã®æ¹åã¯ããããã Polymerãããžã§ã¯ããšChromiumãã¬ãŒã ã¯ãŒã¯å ã®é¢é£ãããã©ããæšæºã®ãµããŒããéããŠGoogleãæãç©æ¥µçã«åãããŠããããšã§ãããã
ãããŠããã¡ãããããå Žæã§ã®è€éããšã®éãã¯ã確ãã«ä»ã®å Žæã§è€éããçã¿åºããŸãã ï
2015幎ã«æåŸ ãã¹ãããšïŒä»ã®ãã©ãŠã¶ãŒã«ããWebã³ã³ããŒãã³ãã®é©å¿ãã³ã³ãããŒã«ããã³ããŸããŸãªãã¬ãŒã ã¯ãŒã¯ïŒå éšã®ãã®ãå«ãïŒã®éçºè ã«ããæ°ãããã¯ãããžãŒã®æ¡çšã«å¯ŸããæåŸ ã
8.ããã±ãŒãžãšã¢ã»ã³ããª
ãããŠãã³ãŒãããã±ãŒãžã³ã°ã®æåŸã®ä»äžããšããŠãJSã³ãŒãã®ã¢ã»ã³ããªããã³é ä¿¡ã·ã¹ãã ã«ã€ããŠèª¬æããŸãã ãããã¯ç°ãªãã¿ã¹ã¯ã§ãããããæå³ã§ã¯ãã³ãŒãã®æäœãéå§ããã³çµäºããã«ãŒãã圢æããŸãïŒ ã³ã³ããŒãã³ãã®ãããªåäžã®ãœãªã¥ãŒã·ã§ã³ã§ç®¡çããããŸã§ïŒã
ã¢ã»ã³ããªã§ã¯ããã¹ãŠãæ¯èŒçåçŽã§ããè¿å¹ŽãNode.jsã«åºã¥ããŠãããã€ãã®ãªãŒããŒãåžå Žã«å®çããŠããŸãã ãŸã第äžã«ããããã¯GruntãGulpããããŠããã»ã©ã§ã¯ãªãããã©ã³ãã§ãã
ãããã1幎ã«ããã£ãŠãæ¥å¹Žæ³šç®ãã¹ãèå³æ·±ãéå¿çãªãããžã§ã¯ãïŒ ãããã³ãªãŒ ã ãã§ãº ã ãã¢ã¶ ïŒãç»å ŽããŸããïŒãŸãã¯ãããç©æ¥µçã«èãããããã«ãªããŸããïŒã æ¢åã®ãœãªã¥ãŒã·ã§ã³ãå€§å¹ ã«çœ®ãæããããšã¯ãŸããããŸããããããããå æããå¯èœæ§ããããŸãã : , ( ), .
, - - , , ENB , BEM-.
. npm JavaScript - , Bower ( , Twitter 2012 !). , , Visual Studio npm, Grunt Gulp, Bower.
:
bower install jquery
, (, ), , npm , , Bower, .
, , Browserify, 2015 , Duo ( Browserify, Component Go) jspm ( , ES6).
2015: JavaScript ( JS), -, .
9. ,
, HTML5 , , WebGL, ( , ).
( , ). â - Assassin's Creed Pirates Dino Hunt TV .
, WebGL, , three.js Babylon.js . â d3.js .
: JavaScript , -, . :
- -: , - - - .
- : Flash, , , Facebook VK , HTML/JS.
- : .
, :
- JS ( Canvas SVG) . , , , , .
- -. ( Flash) Adobe (Edge-) , Flash ActionScript, , CreateJS .
, : . , - Flash. , 2015 , , , .
2015: JS, (, ).
10.
, JavaScript . , .
.
-, , , , . , 2d 3d- , , , , , , ..
, 2015 â Unity 5 . WebGL JavaScript ( asm.js).
, Unity3d â - , , WebGL .
.
-, . , , SDK . . , : , .
JavaScript - .
, : , , «» , , W3C GamePad API, .
2015: Unity 5 WebGL, 3d , .
11.
Node.js , . Node.js 5 ( !), , .
, (, , - ). , JavaScript .
, , Node.js, â - , , â JavaScript, ES6 JS .
( , Node.js TypeScript ), - , . Node.js â io.js . , , . 2015 .!
Node.js â , - . ( Microsoft Azure, ), Node.js , LinkedIn, Yahoo, Walmart ( , Node.js â Hapi ).
2015: Node.js , ES6 Node.js. .
12.
--! : , IoT. IoT , 2015 - , 2014 ( ) â : , , .
JavaScript?
-, . ? , Node.js. , , . , ( , ) JavaScript, (, , ).
-, Node.js, , JavaScript- Node.js. Cylon.js , . , , noduino .
-, , « » Node.js. JavaScript â . , Intel Edison Galileo.
, -, , JavaScript , JS. Tessel â , , , Espruino .
, , JavaScript IoT, IoT JavaScript â .
2015: JavaScript IoT , â Node.js, .
ãŸãšã
:
- ECMAScript 6. , , .
- TypeScript , .
- - JS, .
- JavaScript, JS ( ).
- API JavaScript, NUI JS. ( .)
- , , ES6.
- - , .
- JavaScript , -.
- JS, ( â ).
- Unity 5 WebGL, 3d , .
- Node.js , ES6 Node.js. io.js.
- IoT Node.js, .
, , 2015 !