å€ãã®ããã°ãã¬ããŒãããã¬ãŒã³ããŒã·ã§ã³ãåæããããã€ãã®äŒè°ã蚪ããç°ãªããããã¡ã€ã«ã®Webéçºè ãšè©±ãåã£ãŠãJavaScriptéçºã®åéã§æŽ»çºã«éçºäžãŸãã¯éçºãå§ããã°ããã®äž»èŠãªé åãèªåã§ç¹å®ããŸããïŒãããŠãç§ã®æèŠã§ã¯ãæ £ãã«æ³šæããŠãã ããïŒã èšäºã®ç®çã¯ãããããç §ãããæèã®ããã®é£ç©ãæäŸããããšã§ãããåŸãããç¥èãããã«æ£ç¢ºã«å®è·µã§ãããã§ãã
ç§ã®ååã¯ããã€ã«ã»ã¯ãªã·ã¥ããã§ããç§ã¯ameriaã§ã¿ã€ãã»ãã¿ãŒïŒhtml / css / jsïŒããã³Ploneéçºè ãšããŠåããŠããŸãã èªå·±æè²ããã°ã©ã ã®äžç°ãšããŠããã®ã¬ããŒãã§å ±æãããJavaScriptèšèªã®éçºãšäœ¿çšã®äž»ãªåŸåãç 究ããã®ã«æéãè²»ãããŸããã çµéšè±å¯ãªéçºè ãç¬é¡ã§ã¬ãã¥ãŒããããå¯èœæ§ã¯ãããŸãããæ·±ãæãäžããŠã誰ããçµæã®è³æã«èå³ãæã£ãŠãããããšãé¡ã£ãŠããŸãïŒç¹ã«ãèªè ããã®æ¥çã®ååã«è§Šããªãã£ãå ŽåïŒã å šäœãšããŠãç§ã¯åæè¡ã®å®å šãªæ·±ããæããã«ããä»äºããããŸããã§ãããç§ã¯ç°¡åãªèª¬æãšããã«ã€ããŠã®ç§ã®æèŠãäžããŸãã
ããã¯Habrã§ã®ç§ã®æåã®ããã³ã®ãã¹ããã§ãããã¥ãŒãžã·ã£ã³ãæããªããããé¡ãããŸãã圌ã¯ã§ããéãæé«ã®æŒå¥ãããŸãã ã ãã...
ã¯ã©ã€ã¢ã³ããšãµãŒããŒçšã®1ã€ã®èšèª
ãããããã¯ã©ã€ã¢ã³ãïŒãã©ãŠã¶ãŒïŒãšãµãŒããŒã®äž¡æ¹ã§ã¢ããªã±ãŒã·ã§ã³ãéçºããããã«JavaScriptã䜿çšããåŸåã匷調ãã䟡å€ããããŸãã æ°å¹Žåã¯ãšããŸããã¯ã§ããããä»ã§ã¯éçºãã¬ãŒã ã¯ãŒã¯ã®å¹ åºãéžæããããé·ãéæ¥ãŠããããã§ãã ãã®ãããªçµã¿åããã«ã¯å©ç¹ããããŸãããµãŒããŒèšèªãšã¯ã©ã€ã¢ã³ãèšèªãå¥ã ã«ç¥ãå¿ èŠã¯ãããŸãããããã¯ãããŒã€ã³ã¯ã³ãã®å Žåã«åœãŠã¯ãŸããŸãã
æãæåãªãã®ã®äžã«ã¯ãNodeJSãAngularJSïŒGoogleã«ãã£ãŠä¿é²ãããç©æ¥µçã«äœ¿çšãããŠããïŒãKnockoutJSãBackBone.jsãMeteorãPhantomJSããããŸãã ãããã®ãã¹ãŠã掻çºã«éçºãããŠãããæ¯æ¥å€ãã®ã¢ãžã¥ãŒã«ãããããã®æ奜家ã«ãã£ãŠçºè¡ãããŠããããšã«æ³šæããŸãã åœç¶ãããã¯ãã¹ãŠãªãŒãã³ãœãŒã¹ã§ãã
ãæ§æç³ã
Brendan Eichã¯ãæéã«ææãªç°å¢ã§JavaScriptãéçºããŸãããèšèªã¯10æ¥ã§éçºãããŸããïŒãã¬ã¯ãµãŒãããŒãµãŒããã€ãã³ãŒããšããã¿ã³ã³ãã€ã©ãã€ã³ã¿ãŒããªã¿ãçµã¿èŸŒã¿ã¯ã©ã¹ããã³ã³ãã€ã©ãäœæãã10æ¥ãïŒã ããããããããå€ãã®éçºè ããã®æ§æãæ§é ãããã³å€ãã®æ©èœã奜ãŸãªãçç±ã§ãã ããšãã°ãèšèªã«ã¯ãéåžžã®æå³ã§ã¯ã¯ã©ã¹ããªããç¶æ¿ã®ããªãçããã¡ã«ããºã ãªã©ããããŸãã
CoffeeScript
JavaScriptã®ãã¢ããªã³ããšããŠèšèšãããŠãããæ¬è³ªçã«æ°ããèšèªã§ãããã®ç®çã¯ãJavaScriptã®éçºã容æã«ããã«ãŒãã³ãåé€ããã³ãŒãã®èšè¿°ããã»ã¹ãç°¡çŽ åããŠã¹ããŒããäžããããšã§ãã JavaScriptã§ã³ã³ãã€ã«ãããŠããŸãã ãœãŒã¹ãããã䜿çšããŠããã©ãŠã¶ã§ã³ã³ãã€ã«æžã¿ã¢ããªã±ãŒã·ã§ã³ããããã°ããããšãã§ããŸãã æ§æã¯Rubyã«äŒŒãŠããŸãã å¹³åããŠãCoffeScriptã䜿çšããå Žåã®åãã¢ã¯ã·ã§ã³ã§ã¯ãçŽç²ãªJavaScriptã®2åã®1ã®è¡ããå¿ èŠãããŸããã
TypeScript
2012幎ã«Microsoftã«ãã£ãŠå°å ¥ãããJavaScriptãæ¡åŒµããWebã¢ããªã±ãŒã·ã§ã³éçºããŒã«ãšããŠäœçœ®ä»ããããŠããããã°ã©ãã³ã°èšèªã ãŸããJavaScriptã§ã³ã³ãã€ã«ãããäžäœäºææ§ããããŸãã OpenSourceã®äžã§ãªãªãŒã¹ãããŸããã
TypeScriptã¯ãæ瀺çã«åãå®ââ矩ããæ©èœïŒéçåä»ãïŒãæ¬æ Œçãªã¯ã©ã¹ã®äœ¿çšã®ãµããŒãïŒåŸæ¥ã®ãªããžã§ã¯ãæåèšèªã®ããã«ïŒãããã³ã¢ãžã¥ãŒã«ã®æ¥ç¶ã®ãµããŒãã«ãããŠJavaScriptãšç°ãªããŸãã çè«çã«ã¯ããã®ãããªã€ãããŒã·ã§ã³ã¯ãã³ãŒãã®éçºãå¯èªæ§ããªãã¡ã¯ã¿ãªã³ã°ãåå©çšã®é床ãéçºããã³ã³ã³ãã€ã«ã®æ®µéã§ã®ãšã©ãŒã®æ€çŽ¢ãããã°ã©ã ã®å®è¡é床ãåäžãããã¯ãã§ãã
ããŒã
ã°ãŒã°ã«ã¯ããããªããšãããªããšæ±ºãã
HTML5 Canvasã¿ã°
JavaScriptã§ã¯ãããŸãããã以äžã§èª¬æãããã®ã«çŽæ¥é¢é£ããŠããŸãã HTML5ã¿ã°ã®ã»ãããããã®ããŒã«ãåãåããšãéçºè ã¯æåéãæãæŸããŸãã-åçã«äœæããããã®ãå«ãããã©ãŠã¶ããŒãžã«ã°ã©ãã£ãã¯ã衚瀺ããããšãå¯èœã«ãªããŸããïŒä»¥åã¯ããã¯Flashã§ã®ã¿å¯èœã§ããïŒã ããã¯ã2Dããã³3Dã°ã©ãã£ãã¯ã¹ãæäœããããã®ã©ã€ãã©ãªã®éçºã«åŒ·ãåºæ¿ãäžããŸããã 以äžã«äŸã瀺ããŸãã
Webgl
WebGLïŒWebããŒã¹ã®ã°ã©ãã£ãã¯ã©ã€ãã©ãªïŒã¯ãäºææ§ã®ããããŸããŸãªWebãã©ãŠã¶ãŒã§åäœããã€ã³ã¿ã©ã¯ãã£ããª3Dã°ã©ãã£ãã¯ãäœæã§ããJavaScriptçšã®ãœãããŠã§ã¢ã©ã€ãã©ãªã§ãã äœã¬ãã«ã®OpenGLãµããŒãããŒã«ã䜿çšããŠãããããWebGLã³ãŒãã®äžéšããããªã«ãŒãã§çŽæ¥å®è¡ã§ããŸãã
ç§ã®æèŠã§ã¯ããã®ãã¯ãããžãŒã¯å®éã«ã¯ç»å ŽããŠããŸããããäœããã®åœ¢ã§ææ°ã®ãã¹ãŠã®ãã©ãŠã¶ãŒã§ãµããŒããããŠããŸãã ã»ãã¥ãªãã£ã®åé¡ã解決ãããã¢ãã€ã«ããã€ã¹ãããããµããŒããå§ãããšãããã¯éã ãšå²ããŸãã ãããŠããã¯ããã¹ãŠã®æºåž¯é»è©±ãã¿ãã¬ããã®ããŸããŸãªãã«ããã¬ã€ã€ãŒã²ãŒã ã«ãé»è€è²ã®ãªãè€éãª3Dã°ã©ãã£ãã¯ã¹ãè©°ã蟌ãŸããŠããªãããšãæå³ããŸãã
three.js
äžæ¬¡å ã°ã©ãã£ãã¯ã¹ã§äœæ¥ããããã®è»œéã§ã¯ãã¹ãã©ãŠã¶ã®ã©ã€ãã©ãªã ããã¯ããã©ãã«åãã£ãŠãããWebãç解ããããã«èŠãããã¹ãã§ãã
- ãã©ã€ããŒã®å Žåã以äžã確èªããå¿
èŠããããŸãã
http://threejs.org/examples/webgl_materials_cars.htmlïŒFireFoxãChrome ïŒ - ãã©ãŠã¶ã§äººãã¬ã³ããªã³ã°ããŸããïŒ åé¡ãããŸããïŒ
http://threejs.org/examples/webgl_materials_normalmap2.html
http://threejs.org/examples/webgl_loader_json_objconverter.html
http://threejs.org/examples/webgl_loader_ctm.html
- ããã·ãŒãžã£ã«ãã¯ã¹ãã£ã®çæïŒ
http://threejs.org/examples/webgl_terrain_dynamic.html
- ç¹å®ã®ã¿ã€ãã®ã¢ãŒãïŒã€ã³ã¿ã©ã¯ãã£ããã£ã«ã ãç人ã®ããåŠããŸãã¯æ°ããã¿ã€ãã®ã¢ãŒãïŒã«èµ·å ããããšããå°é£ãªã¢ãŒããããžã§ã¯ãïŒ
http://www.ro.me/ïŒChromeã®ã¿ïŒ
asm.jsïŒMozillaããïŒ+ Emscripten
å¥ã®è¡ã¯ããã©ãŠã¶ã®ãã¢ã»ã³ãã©ããšããŠJavaScriptã䜿çšãããšããèãã§ãã JavaScriptèªäœã¯èšèªã§ãããæ§ããã«èšã£ãŠãé«éã§ã¯ãããŸããïŒå°ãªããšããGoogle Chromeã®V8ã®éçºè ãæ¡çšãããŸã§ã¯ããã§ããïŒã
Asm.jséçºè ã¯èšèªã®ãµãã»ãããäœæããããããããŸããŸãªãæå¶ãã³ã³ããŒãã³ããé€å€ãããã匷åãªåä»ããè¿œå ãããããŸããã çµæãšããŠåŸãããæ¹èšã¯ãéåžžã®JavaScriptãããäœåãé«éã«åäœãããã©ãŠã¶ã¡ãŒã«ãŒã¯ãã®ããã®åå¥ã®ã³ã³ãã€ã©ãéçºãå§ããŠããŸãã çŸåšãasm.jsã䜿çšãããšãéåžžã®Cã¢ããªã±ãŒã·ã§ã³ã®50ïŒ ã®é床ãåŸãããŸãã ãããŠããã¯æ¬åœã«ãšãŠãã¯ãŒã«ã§ãã
ããããasm.jsã ãã§ã¯ãEmscriptenã³ã³ãã€ã©ãšã®çµã¿åããã»ã©æå³ããªããasm.jsã§C / C ++ã³ãŒãããè¿œãè¶ããããšãã§ããŸãã åœç¶ãçµæã®JavaScriptã¯å€èªã§ããŸããããããã¯å¿ é ã§ã¯ãããŸããã
äŸãšããŠãããã4æ¥ã§ãUnreal Engine 3ã®ãããªãããžã§ã¯ããWebã«è»¢éãããŸãããèŠãç®-ãã¢ãèŠã䟡å€ããããŸã ïŒ http : //www.unrealengine.com/html5/ ïŒç¹ã«ãITããã©ãŠã¶ã§æ©èœããããšãç解ããŠããå Žåã¯é åçã§ãïŒ ïŒ
ã³ãŒãå質管ç
ã°ã©ãã£ãã¯éšåããå°ãé¢ããŠãJSHintãJSLintãªã©ã®ã©ã€ãã©ãªã®éçºè ã«ããåºç¯ãªäœ¿çšã«æ³šæãåèµ·ããããšæããŸãã
JSLintã¯JavaScriptã³ãŒããã¹ãã£ã³ããŸãã åé¡ãèŠã€ãããšãã³ãŒãå ã®èª¬æãšå Žæãå«ãã¡ãã»ãŒãžãè¿ããŸãã å€ãã®å Žåãåé¡ã¯æ§æãšã©ãŒã§ã¯ãããŸããã JSLintã¯ãæ§é ã®ã³ãŒãã£ã³ã°èŠçŽãšåé¡ã«ã泚æãåããŸãã
ãã³ãŒããã³ãããããåã«ãJSLintãå®è¡ããŠãèŠèœãšãå¯èœæ§ã®ãããšã©ãŒããã§ãã¯ããŸããã
ã¡ã€ã³ãšãã£ã¿ãŒã«ã¯ã³ãŒãããã§ãã¯ããããã®ã¢ãžã¥ãŒã«ããããŸãããæãç°¡åãªã±ãŒã¹ã§ã¯ãªã³ã©ã€ã³æ€èšŒãµãŒãã¹ã圹ç«ã¡ãŸãã
ãŠã§ãã¯ãŒã«ãŒ
JavaScriptã·ã³ã°ã«ã¹ã¬ããåé¡ã®è§£æ±ºã åå¥ã«èµ·åãããããã¯ã°ã©ãŠã³ãããã»ã¹ïŒunixã·ã¹ãã ã®ãããŒã¢ã³ããªã©ïŒãããã§ãèšç®ããµãŒããŒãžã®èŠæ±ãªã©ãå®è¡ã§ããŸãã ã¡ã€ã³ããã»ã¹ããã¯ãŒã«ãŒã«é£çµ¡ããçµæã«ã€ããŠäœããã®åçãåŸãããšãã§ããŸãã
ã³ãŒãææž
JS Doc 3ã©ã€ãã©ãªã«èšåãããã®ã§ããããããžã§ã¯ãã³ãŒãã®ã³ã¡ã³ãããAPIããã¥ã¡ã³ããçæããŸãã
- http://usejsdoc.org/-ããã¥ã¡ã³ã
- https://github.com/jsdoc3/jsdoc
ãã¹ãäž
JavaScriptã ãã§ãªããã¢ããªã±ãŒã·ã§ã³ããã¹ãããããšããå§ãããŸãã ãããããã®äžã«ã¯ãã§ã«ãããããå³ãšè²ã®ããã®ãã¹ãçšã®ããªãå¹ åºããã¬ãŒã ã¯ãŒã¯ã®éžæè¢ããããŸãïŒ
- ã¢ã«ïŒ http : //visionmedia.github.com/mocha/
- qUnitïŒhttp://qunitjs.com-jQuery ãŠããããã¹ããã¬ãŒã ã¯ãŒã¯
- ãžã£ã¹ãã³ïŒ http : //pivotal.github.io/jasmine/
- Google JSãã¹ãïŒ http : //code.google.com/p/google-js-test/
- ã«ã«ãïŒ http : //karma-runner.github.io/0.8/index.html
GruntïŒJavaScriptã¿ã¹ã¯ã©ã³ããŒ
ãGruntã¯JavaScriptãããžã§ã¯ãçšã®ã¿ã¹ã¯ããŒã¹ã®ã³ãã³ãã©ã€ã³ãã«ãããŒã«ã§ããã
äžèšïŒãèªååãã ã¢ãžã¥ãŒã«ã¢ãŒããã¯ãã£ã®ãããžã§ã¯ãã§äœæ¥ããããã®JavaScriptããŒã«ããããããã«ãããJSHintã³ãŒãæ€èšŒãSASSãŸãã¯CoffeeScriptããã®ã³ã³ãã€ã«ãªã©ãããŸããŸãªã«ãŒãã³æäœã®èªååæ©èœãåŒãåããã³ãŒãã®æäœãç°¡åã«ãªããŸãã æ奜家ã«ãã£ãŠæžãããå€ãã®ãã©ã°ã€ã³ã®å©ããåããã¢ãžã¥ã©ãŒã¢ãŒããã¯ãã£ã®ãããã§ãéçºè ã®ç掻ã楜ã«ããå¹ åºãæ©èœãå®è£ ãããŠããŸãã
ç°¡åãªäŸãšããŠããããžã§ã¯ãããã«ããããšãã«ãã¢ã»ã³ããªããã³æå°ååŸã®ç¹å®ã®ã©ã€ãã©ãªã®ãµã€ãºãä»æ§ã§èšå®ãããå¶éããã倧ããããšãéç¥ããgrunt-microãã©ã°ã€ã³ãèããŠãã ããã
JSã·ã§ã«
å®éšçšã®ããŒãžãäœæããã«ã³ãŒããè©ŠãïŒãŸãã¯èšè¿°ããïŒããšãå¯èœã«ããããµã³ãããã¯ã¹ãã ã»ãã®æ°åã§ãæ°ããã¢ã€ãã¢ãè©ŠããããäŸãä»ã®éçºè ãšå ±æããããããŒãžã®äžéšã§å ±åäœæ¥ãããã§ããŸãã ãã©ã°ã€ã³JSãã¬ãŒã ã¯ãŒã¯ã®éžæãå€æŽã®å±¥æŽãã³ãŒãå質管çïŒJSLintïŒãããã³ãã®ä»ã®ãå©ç¹ãã
- http://jsbin.com
- http://jsfiddle.net/
- http://codepen.io/
- http://jsperf.com-ã³ãŒãããã©ãŒãã³ã¹ã®è©äŸ¡ã«ç¹å
JSãããªã³ãŒããã¯
ãMozillaã¯ããã©ã°ã€ã³ïŒORBX.jsïŒã®å¿ èŠæ§ãæé€ããæ°ããJavaScriptãããªã³ãŒããã¯ãéçºããŸããã JavaScriptããã³WebGLãããªã³ãŒããã¯ã ãããŠããã¯æ¬åœã«ã¯ãŒã«ã§ãã çŽç²ãªJSã§ãã³ãŒããã¯ããã©ãŠã¶ãŒãªãã§HDãããªã衚瀺ããŸãã ãã©ã°ã€ã³ã¯äžèŠããã©ãŒãããã®åé¡ã¯ãããŸããã é©å¿ãããã¬ãŒããH.264ãšæ¯èŒããŠ25ïŒ åªããå§çž®ãé·ããã©ã¹ã®ãªã¹ãã
JSãªãŒãã£ãªã³ãŒããã¯
ãªãŒãã£ãªã³ãŒããã¯ã ãããã®åœ¢åŒããµããŒãããŠããªããã©ãŠã¶ã§ããMP3ãApple LosslessãFLACãããã³AACãåçã§ããŸãã
é éšè¿œè·¡
ãããã-æåŸã«ã Webã«ã¡ã©ãä»ããŠãŠãŒã¶ãŒã®é ã®äœçœ®ãŸã§ã¹ã¯ãªããã远跡ã§ãããã¯ãããžãŒã é ã¯å€ãã®æ¹æ³ã§äœ¿çšããããšãã§ããŸã-ããã¯èããããšãã§ããé£ã¹ãããšãã§ããŸãã å¶åŸ¡ã«ã䜿çšã§ããŸãã äœã§ããç¿æ £ããéŠã¯å·ã€ããŸãã
é®®æãªäŸã¯ãã²ãŒã FaceKat ïŒChromeã§ãã¹ãæžã¿ïŒã§ãã ç§ãã¡ã¯ãåå§çãªæ®éçãªæ··chaosã貫ããæ¿ããé ã®æºãã«ãã£ãŠé¡ãé£ãã§ããåãé¿ããŸãã ã¡ãªã¿ã«ãéŠã®è¯ãéåã
ãã1ã€ã®èå³æ·±ãäŸã¯ãé ãå転ãããæ©èœã§ããé è¿æ³ãšåæ¯ãªããžã§ã¯ããèŠã-http://auduno.github.io/headtrackr/examples/targets.html ã ãã®å®æœåœ¢æ ã§ã¯ãã»ãšãã©åœ¹ã«ç«ããªãããåºèã®ã¢ã€ãã¢ãšããŠã¯å®å šã«ã
ãã®ãã¯ãããžãŒãGoogleã¹ããªãŒããã¥ãŒãšçµã¿åãããŠäœ¿çšââããæ¹æ³ã®äŸïŒ http : //alexhancock.github.io/street-facing/
ã¢ãžã¥ãŒã«èªäœã¯ãheadtrackrããšåŒã°ããŸã ïŒ https : //github.com/auduno/headtrackr
ãã®æè¡ã®ãããªãçºå±ã¯ãä»®æ³ãªããžã§ã¯ãã®ç®¡çã§ãã badassjs.com/post/44786596458/an-iron-man-like-3d-hologram-controlled-by-leap-motionã®äŸã¯ãJavaScriptãš80ãã«ã®LeapMotionããã€ã¹ã䜿çšããŠãæã§ä»®æ³å°çã®ããã°ã©ã ããããæ¹æ³ã瀺ããŠããŸãã ãããŒã»ã¹ã¿ãŒã¯ã®ããã«ã
ãããã«
ããã¯ç§ãç§ã®ä»äºãçµãããšããã§ããç§ã¯ããŸãç²ããŠããªãããšãé¡ã£ãŠããŸãã ãŸãããã®èšäºã«ã€ããŠããŸãèŠéããç¬éãäžæ£ç¢ºãªç¹ã«ã€ããŠæèŠãèããããšæããŸãã ãŸãã誰ããæ¬åœã«ãããããªããããªãã¯ãããããæœãããšãã§ããŸã-ãã