ä»æ¥ãç§ãã¡ã®ä»®æ³ã¹ã¿ãžãªã§ã¯ã Alexandre Mutelã質åã«çããŸãã
Alexandre Mutelã¯ãUnity Technologiesã®ãªãŒããœãããŠã§ã¢ã¢ãŒããã¯ãã§ãã ããã«ãSharpDXãMarkdigãZioãªã©ã®ãããžã§ã¯ãã«è²¢ç®ããæåãªãªãŒãã³ãœãŒã¹éçºè ã§ããã2014幎以éã¯Visual Studioããã³éçºãã¯ãããžã«ããŽãªã®MVPã§ãã
Alexandreã¯ããªã¢ã«ã¿ã€ã ã°ã©ãã£ãã¯ã¹ã¬ã³ããªã³ã°ãGPGPUããµãŠã³ãåæããããŒãžèšèªã®å¹ççãªäœ¿çšãšã¢ãŒããã¯ãã£ãã³ãŒãçæãããã¥ã¡ã³ãã®åéã§ãããŸããŸãªäœã¬ãã«ããã³é«ã¬ãã«ã®åé¡ã«åãçµãã§ããŸãã
ãã€ãã®ããã«ãã€ã³ã¿ãã¥ãŒã¯JUG.ruã°ã«ãŒãã®Evgeny TrifonovïŒ phillennium ïŒãšOleg ChirukhinïŒ olegchir ïŒã«ãã£ãŠè¡ãããŸãã
æçš¿ã®æåŸã«ããã£ã©ã³ã»ããŒãã£ïŒå¥ã®æåãªãããŒïŒããã®é©ãããããŸã-ç§ãã¡ã¯ãããæåŸ ããŠããŸããã§ããã
EãïŒããªãã¯30幎ã®é·ããã£ãªã¢ãæã£ãŠããŸã-æå§ãã«ãããã«ã€ããŠç°¡åã«è©±ããŸããïŒ
ããã¯ãã¹ãŠå¹Œå°æã«å§ãŸããŸãããç§ã¯Amstrad PC 464ãæã«å ¥ããŸããããã®ã³ã³ãã¥ãŒã¿ãŒã§ããã°ã©ãã³ã°ãå§ãããšããç§ã¯11æ³ã12æ³ã§ãããæ£ç¢ºã«èŠããŠããŸããã ç§ã¯ããã«BASICããã°ã©ãã³ã°ãç¿åŸããã²ãŒã éçºã®æ¬ãè³Œå ¥ããŸããã ã³ãŒããéçºããŠæžãã»ããé¢çœãã²ãŒã ã¯ã»ãšãã©ãããŸããã§ããã ããããç§ã¯ã¢ã ã¹ãã©ããã®ã¢ã»ã³ãã©ãŒã³ãŒããæžãç¶ããŸããã
16æã«ãAmiga 500ãæã«å ¥ããŸããããã¢ãæžããŠãã人ã«äŒããŸãããä»ã¯ãŸã£ãããããŸããã§ããã ãããWebGLã§ãããããã¯ãŸã£ããç°ãªããã¢ã·ãŒã³ã§ãã ç§ã¯å€ãã®ãã¢ãæžãå§ããŸããããããã¯ãã€ãèŠããããã§ã¯ãããŸããããã¢ã»ã³ãã©ãŒã§æžãã®ã奜ãã§ããã ãããŠãããã¯ãšãŠãç°¡åã§ããã
ãããã圌ã¯é«çå°éåŠæ ¡ã«è¡ããããã§ã³ã³ãã¥ãŒã¿ãŒå·¥åŠãåŠã³ãŸããã ããã¯ãã§ã«ã²ãŒã ãã¢ã»ã³ãã©ãŒãšæ¯èŒããŠãŸã£ããç°ãªããã®ã§ããã 以åã¯ååšããŠããªãã£ããšããç¥ããªãã£ããã®ãåŠã¶ã®ã倧奜ãã§ããïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãUNIXãCèšèªã§ã®äœæ¥ïŒC / C ++ã³ã³ãã€ã©ãè³Œå ¥ãããéããªãã£ãã®ã§BASICãŸãã¯ã¢ã»ã³ãã©ãŒã®ã¿ã䜿çšããŠããŸããïŒã
圌ã¯å€§åŠãåæ¥ãããšããé貚åžå Žæ¥çã§åãå§ããŸããã ããã¯ãã¥ãŒãšãŒã¯ã®ãã©ã³ã¹äŒæ¥ã®ä»äºã§ããã 2幎åŸãç§ã¯æ»ã£ãŠéè¡ã«è¡ããŸããã å®éãéè¡ã§åããããªãã£ãã®ã§ãã²ãŒã éçºè ã§åãããã£ãã®ã§ãã ãããããã®çµæãããã«ãšã©ãŸããŸãã-æ°ããé åãåŠã¶ã¹ãå€ãã®ããšã ããã§ç§ã¯ããã§8ã9幎ãéãããŸãããäž»ã«Javaãæ±ããC ++ãå°ãæ±ããŸããã å€ãã®åæ£ãµãŒããŒãšSQLããŒã¿ããŒã¹ãããŒã¿ããŒã¹ã®ã³ããŒ...ç§ãä»ããŠããããšã¯ãŸã£ãããããŸããã
ããããç§ã¯åµé çãªäŒæãåããäžçäžã®èŠ³å æ è¡ã«è¡ããŸãããç§ã¯ã¢ããªã«ãåã¢ã¡ãªã«ãã¢ãžã¢ã§äžå¹ŽéãããŸããã æ ã¯ç§ãå€ããç§ãæºãã¶ããŸããã æ»ã£ããšããç§ã¯ãã¯ãã³ã³ãã¥ãŒã¿ãŒãæ±ãããšãã§ããŸããã§ãããITã®åéã§ã¯ãéè¡ã§åãããšãã§ããŸããã§ããã ç§ã¯ä»äºãèŸããåäŸãããŒã ã¬ã¹ãé害è ãé«éœ¢è ãšåãããã«ãœãŒã·ã£ã«ã¯ãŒã«ãŒã³ãŒã¹ã«4幎éãè²»ãããŸããã ç§ã¯ããã3幎éå匷ããŸããããéåžžã«èå³æ·±ãã£ãã§ãããªããªããç§ã®äººçã®ã»ãšãã©ã¯ãæ°åŠããããžã§ã¯ããæœè±¡åãšããæ£ç¢ºãªç§åŠã®åéã§åããŠããããã§ãã ãããŠã圌ã¯çªç¶ãéåžžã«äººéçãªå°åã«é£ããŠè¡ããŸããã ãã¬ãŒãã³ã°åŸã«ãã®åéã§ä»äºãããããšããããŸãããããã®æéäžã«ãåäŸã®é ã«ãã¢ãè¡ã£ãå人ãããããããäžåºŠã§ãããšã»ã®ããããŸããã
ç§ã¯èªç±ãªæéã«ãã¢ãç·Žç¿ãå§ããŸããããããã«è·¯äžã§åäŸãã¡ãšä»äºããã以äžã®æéããããå§ããŸããã ããã¯æªãã£ãã 人ã ã¯èšã£ãïŒãç§ãã¡ã¯ã²ãŒã éçºã§ä»äºãèŠã€ããããšããå¿ èŠããããã©ãããŠïŒ ã§ããŸããã ããããç§ã¯ãããäžå¯èœã ãšæã£ãããªããªãç§ã¯é·ãéã³ã³ãã¥ãŒã¿ãŒã䜿ã£ãŠããªãã£ãããå±¥æŽæžã§ITã®ä»äºãèŠã€ããã®ãé£ããããã ã
ç§ã¯ãªãŒãã³ãœãŒã¹ã¢ããªã±ãŒã·ã§ã³ã«åãçµã¿å§ããäŒæ¥ã䜿çšãå§ããããã€ãã®ãããžã§ã¯ãããªãªãŒã¹ããŸããã ãããã®äŒç€Ÿã®1ã€ããé£çµ¡ããã£ããšããSharpDXãšåŒã°ããææ°ã®ãããžã§ã¯ãã®1ã€ã䜿çšããŸããã ç§ã¯å®¶æãšäžç·ã«æ¥æ¬ã«è¡ããŸãã-ç§ã¯ãã§ã«2人ã®åäŸãããããã§ãã ç§ãã¡ã¯æ¥æ¬ã«5幎éäœãã§ããŸããã ãã®ãšããç§ã¯CïŒã§ãŒãããã²ãŒã ãšã³ãžã³ãäœæããããšã«åãçµãã§ããŸããã
çŽ2幎åãç§ã¯ãã©ã³ã¹ã«æ»ããUnityã§åãå§ããŸããã ããã¯ç§ãåã«ãã£ãããšã劚ããŸãããã圌ãã¯IL .NETã³ãŒããããã€ãã£ãã³ãŒããçæãããã€ãã£ãã³ã³ãã€ã©ãäœæãããšããéåžžã«è€éã§èå³æ·±ãã¿ã¹ã¯ãå®éã®ãã¹ãã§åãããšãç³ãåºãŸããã ããã¯ç§ããã€ãããããã£ãããšã§ããããã§ããŸããã§ããã ãããŠããã£ã³ã¹ãçŽ æŽããããã£ã³ã¹ããããŸããã ç§ã¯ãã®ãããžã§ã¯ãã«2幎éæºãããŸããã
ã¯ããç©èªã¯ããã»ã©çããªãã£ãããã§ãã
EãïŒäœããªãããã®ãããªãã£ãªã¢ã¯é·ã話ã®äŸ¡å€ãããã ããªãã®çµéšãããããããèãããããšæããŸãã ä»ã§ã¯ããã ãŒã¢ã®æ³åã¯ãã¯ãæ©èœãããã³ã³ãã¥ãŒã¿ãŒã¯éããªããªããç§ãã¡ã¯ãã¹ãŠéåœã ããšèšã人ãããŸãã ä»ã®äººã¯çããŸãïŒãããã圌ãã¯åãããŒã¹ã§å éããŠããŸãããããŸã æé·ããŠããã®ã§ããããã¯ããçç±ã¯ãããŸãããã çç£æ§ã®ãããã¯ã¯ããªãã«è¿ããåæã«ããªãã¯é·ãéæ¥çããã©ããŒããŠããã®ã§ãããªãã®ç«å Žã¯äœã§ããïŒ
ç§ã¯ãã®é»éã®æå³ã«åºå·ããŠããŸãã ïŒç¬ïŒç§ãã¡ãéçºããã¢ããªã±ãŒã·ã§ã³ã®ã»ãšãã©ã§ã¯ãªãã«ããŠããå€ãã®ã¢ããªã±ãŒã·ã§ã³ãæåããããã©ãŒãã³ã¹èŠä»¶ã«é©å¿ããŠãããããå¯èœãªéãæé«ã®å質ãåŸããããšæããŸãã
ç®ã®åã§ITæ¥çã§äœãèµ·ãã£ãã®ããã芧ãã ããã ããšãã°ãWindows Vistaãªã©ã®ããã«ãWindowsãæ°å¹ŽãããŠå°ãé ããªã£ããšã å®éãããã©ãŒãã³ã¹ãæ¹åããããã«èªç¶ãªäœæ¥ãè¡ãããŸãããäœå¹Žãããã«ã€ããŠç¹ã«å¿é ããŠããªãã£ãããã§ãã Windows 8ãç»å Žãããšããããã¯ããå°ãè¯ããªããŸããã ãã®åŸãWindows 10ãç»å Žããå°ãè¯ããªããŸããã ãã®çµæã以åãšæ¯èŒããŠéåžžã«ããŸãæ©èœããã·ã¹ãã ãã§ããŸããã ãããã®æé©åãè¡ãããšã¯åœŒãã«ãšã£ãŠæ¬åœã«éèŠã§ããããªããªãã人ã ã¯å¿ ç¶çã«ã圌ãã®æ段ãè¶ ããŠçããããããïŒ ãã®ãœãããŠã§ã¢ã¯æ©èœããªããªããŸãããLinuxã«åãæ¿ããŠããŸãããªããªããããã¯ããéããŠæãã§ã¯ãªãããã§ããã
ç§ãã¡ãéçºãããã¹ãŠã®ãœãããŠã§ã¢ã«ã€ããŠãåãããšãèšããŸãã ãããŠé©ãã¹ãããšïŒãã€ãã£ãã³ãŒãã䜿çšããåŸåãåžžã«ãããWindowsã§ãC ++ã«æ»ãããšã決ããæç¹ã§ããC ++ã¯è§£æ±ºçã§ãã ãã ãããŠåã³ãæ¯åœèªãé¢é£ããããã«ãªããŸããã
åæã«ãChromeã®V8ã¯JITã®ãããã§JavaScriptã䜿çšã§ããããã«ããŸããã JSã¯ã¹ã¯ãªããèšèªã§ãããè¶ é«éã§ã¯ãããŸããããC ++ã®2åã®é床ã§åäœããå ŽåããããŸãã Visual Studio Codeã§ã®ã³ãŒãã®äœæãªã©ã圌ãçãæ®ããä»ãã䜿çšããã®ã«ååã§ããã ããããããèŠããšãããã¯ãã¹ãŠãæåããããã©ãŒãã³ã¹èŠä»¶ãå®ããããŠããããã§ãã VSCodeã§ãããäžè¬ã«å€ãã®JavaScriptããã³ã¹ã¯ãªããã³ãŒãããããŸãããä»ã®ãã¹ãŠïŒV8ãã¬ã³ããªã³ã°ã¹ã¿ãã¯ãJITïŒã¯ãã¹ãŠãæé«ã®ããã©ãŒãã³ã¹ã®ããã«èšèšãããèšèªãã€ãŸãC ++ã§èšè¿°ãããŠããŸãã ãã¹ãŠãC ++ãšã¯éããªãå¥ã®èšèªã§æžãããšãã§ããŸãããå®éã«ã¯ããã®ãœãããŠã§ã¢ã¯ãã¹ãŠæåããããã©ãŒãã³ã¹ãèæ ®ããŠéçºããããã®ã§ãã
確ãã«ãå¹çã®æªãçç£çãªèšèªã䜿çšã§ããŸãããããã¯åºç€ãšãªããã¹ãŠã®ãã¯ãããžãŒãçŽ æŽããããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãç²åŸããããšãç®çãšããŠéçºãããŠããããã§ãã ããšãã°ãVisual Studio Codeã¯éçºè ã«ãšã£ãŠéåžžã«ããŸãæ©èœããåé¡ã解決ããçŽ æŽããããœãããŠã§ã¢ã§ãã å€ãã®äººã¯ããããå€ãã®ãã€ãã£ãã³ãŒããšãã£ã¿ãŒã䜿çšãããã®ã§ãããä»ã¯Visual Studio Codeã«åãæ¿ããŠããŸãããšèšã£ãŠããŸãã ããã©ãŒãã³ã¹ã¯ã©ãã«ã§ããããŸããã䜿çšãããã¹ãŠã®ãã®ã«æ¢ã«çµã¿èŸŒãŸããŠããããã«è¡šç€ºãããªãå ŽåããããŸãã
ç§ãã¡ã¯æãïŒããã¯JavaScriptã§æžãããŠããããªããªãããã¯ååã«éãããã ã ããããäœçŸäººãã®éçºãšã³ãžãã¢ãäœå¹ŽãJITãæé©åããããã«åããŠãããšããçç±ã ãã§ãJavaScriptã¯éåžžã«é«éã§ãã éåžžã«è€éãªã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåã§ããã¹ã¯ãªããèšèªã䜿çšã§ããããã«ãªããŸããã ãã®ãã¹ãŠã®æºåäœæ¥ããªããã°ãã¹ã¯ãªããèšèªã¯ã¯ããã«é ããªããŸãã ç§ãã¡ã¯å¥åŠãªæ代ã«çããŠããŸãã ç§ãã¡ã«ã¯éžæè¢ããããŸãããããã§ããã¹ãŠã®èšèªã§äœåºŠãç¹°ãè¿ãããããã©ãŒãã³ã¹ã®ç©èªããããŸãã
.NETã¯å žåçãªäŸã§ãã éå»3ã4幎ã«ããã£ãŠãèšå€§ãªäœæ¥ãè¡ãããŸããã ãã€ãASP.NET CoreãèŠãŠãCoreCLRã§è¡ããããã¹ãŠã®äœæ¥ãèŠããš...ããã©ãŒãã³ã¹ã¯å£²ãè¡ããè¯ãããéãããããããå€ããéæã§ããŸãã å³ããèŠä»¶ãæºããããšãããšãçç£æ§ãé«ããé»åãç¯çŽããææ«ã«ãéãç¯çŽã§ããŸããããã©ãŒãã³ã¹ã¯ãã¹ãŠã«åœ±é¿ããŸãã ããã¹ãŠãé 調ã§ããã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸããå¹³åçãªããã©ãŒãã³ã¹ããããŸããããããªããŸã...ããšäººã ãèšã£ââãŠããã®ãèãããšãã圌ãã¯äœãèããŠããŸããïŒ ã¢ããªã±ãŒã·ã§ã³ã®çç£æ§ãããå°ãé«ããããšãã§ãããã©ããã確èªããã«ã¯ãå°ãæéããããå¿ èŠããããŸãã ãªãœãŒã¹ãŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã©ã³ã¿ã€ã ã10åã®1ã§ãç¯çŽã§ããå Žåã¯ãããã§ååã§ãã
EãïŒå²åŠçãªè³ªåãéšåçã«ãããŸãã Slackã¯æè¡çãªè§£æ±ºçãšããŠæé©ãªå Žæã§ã¯ãªããšèããŠããŸããããµã€ãã§ã¯å€ãåŠæ ¡ã®RSSã賌èªããããšãææ¡ããŠããŸãã ã€ã³ã¹ã¿ã³ãã¡ãã»ãŒãžã³ã°ã®æ°ããæ代ãéçºè ã®çç£æ§ãäœäžãããŠãããšæããŸããïŒ
ããããããã¯æããŸããã ä»ãç§ã¯ãªã¢ãŒãã§äœæ¥ããŠããŸãã Unityã®è·å Žã§ã¯ããªã¢ãŒãã§äœæ¥ã§ãããããç§ã¯åžžã«Slackã䜿çšããŠååãšéä¿¡ããŠããŸãã ããã¯ç§ãé£çµ¡ãåãåããçç£æ§ãç¶æããããã®æè¯ã®æ¹æ³ã§ãã ãã£ã³ãã«ãªã©ã確èªããå¿ èŠããããããããã«ã¯ä»äºããå€ãã®æéãããããŸãããäžæçã«Slackããªãã«ããŠä»äºã«éäžããããšãã§ããŸãã ç§ã¯ãªãŒãã³ã¹ããŒã¹ã§äŒç€Ÿã«å€ããŠããŸããããéžæã®äœå°ã¯ãããŸããã§ããã誰ãã質åããããå Žåãããã«çããªããã°ãªããŸãããããã¯ã¯ããã«è€éã§ãã
Twitterãšã¡ãŒã«ã«ã€ããŠã¯ãããŸãé »ç¹ã«ãã§ãã¯ããŸããã Twitterã1æ¥ã«1ã2åèªãã®ã¯ãããŸããŸãªèŠå ã«äŸåããŸããè°è«ã«åå ãããã©ãããè°è«ããããšã§ãã Slackã®ãããªãã®ã䜿çšãããšã瀟å ã®ããŸããŸãªãã£ãã«ã«åå ããããåç¬ã§äœæ¥ããå Žåã«ã¯åŸãããšãã§ããªãå€ãã®ãããã¯ã«åŸãããšãã§ããŸãã 劥åç¹ãèŠã€ããå¿ èŠããããŸããç§ãã¡ã¯çãäŒç€Ÿã§èµ·ããå€ãã®ããšãå¿é ããŠããŸããããã¹ãŠã®è°è«ã«åæã«åå ããããšã¯ã§ããªãã®ã§ãéžæããå¿ èŠããããŸãã äœäººãã®äººã ã¯éåžžã«å€ãã®ãã£ã³ãã«ãèªãããšãã§ããã®ã§ãç§ã¯åœŒãã®èœåã«åã«é©ããŠããŸããç§èªèº«ã¯ããã§ã¯ãããŸããã ä»æ¥ãç§ã¯çŽ30ã®ãã£ã³ãã«ãèªã¿ãŸããããããã¯ããã»ã©å€ããããŸããã
EãïŒãªã¬ã°ã®è³ªåã®æéãããããšãïŒ
AãïŒç§ã®ãã£ãªã¢ã¯ããªãã®ãã£ãªã¢ãšãããã䌌ãŠããŸããç§ã¯éè¡ã§åããŠããŸããããçŸåšã¯ãŸã£ããç°ãªãåéã§äŒè°ãéå¬ããåæã«ã³ã³ãã€ã©ãŒã®æ§ç¯æ¹æ³ãèŠã€ããããšããŠããŸãã åçŽãªãšã³ã¿ãŒãã©ã€ãºWebéçºè ããã·ã¹ãã ããã°ã©ãã³ã°ã«åãæ¿ããããšããŠãã人ã«ãäœãã¢ããã€ã¹ã§ããŸããããã®ãããªç§»è¡ã«é¢ãããã³ãã¯ãããŸããã ããã«ã¯ãååãªæ°ã®äººã¯ããªããšæããŸãã
ãã®ãããªç§»è¡ã®ããã®æºåããããã¹ããããã©ããã¯ããããŸããã ãã®ãããªæè¡ã«èå³ããããªããæ®éã®å®¿é¡ãããŸãã èªå® ã§ã¯ãããŒãµãŒãã³ã³ãã€ã©ã«é¢é£ãããã®ãæžããŸãã æåããæåŸãŸã§ãã³ã³ãã€ã©ãŒå šäœããã·ã³ã³ãŒãã®çæãŸã§æžãå¿ èŠã¯ãããŸããã ã³ã³ãã€ã©ã€ã³ãã©ã¹ãã©ã¯ãã£ã®äœæã«èå³ãæã€ããã«ãªããŸãã ãããç§ãè¿å¹ŽUnityã§åããŠããããšã§ãã ããªããäœã¬ãã«ã®ãã®ã«æ ç±ãæã£ãŠãããªããããã¯ããããã¹ãŠå®éã«ã©ã®ããã«æ©èœããããç解ã§ããå Žæã®1ã€ã§ãã äœæ¥ãæ¹åããæ¹æ³ãããã©ãŒãã³ã¹ãæ¹åãã䟡å€ãããå Žæãããã³ããããŸã è¡ãããŠããªãå Žæã ããã©ãŒãã³ã¹ãå¿é ãªå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ãæçµçã«å®è¡ããããã®ãèªèããããšãéåžžã«éèŠã§ãã
ããã©ãŒãã³ã¹ã¯ç§ã®ããŒãã§ãããããã¯ãã¹ãŠç§ã«ãšã£ãŠçŽ æŽãããæ©äŒã«ãªããŸããã ç§ã¯ãã³ã¢ãã€ãŸãã³ã³ãã€ã©ã¬ãã«ã§åé¡ã®è§£æ±ºçã«ã¢ãããŒãããããšæããŸãã ãŠãŒã¶ãŒã«ãšã£ãŠå¿ èŠãªå Žæã§çç£æ§ãæ°ååã«é«ããããšãã§ããã®ã¯ããã§ãã ã²ãŒã ãã¢ããªã±ãŒã·ã§ã³ãæ ç»ãªã©ãå®è¡ããå Žåããã®ãããªçµæãéæããã®ã¯æ¯èŒçç°¡åãªå ŽåããããŸãã
äœã¬ãã«ã®ãã®ãšã³ã³ãã€ã©ãŒã³ã³ããŒãã³ãã«å¯Ÿããç§ã®æ ç±ã¯ãçŸåšã®ä»äºã«ç§ãå°ããŸããã ããããããã¯ç§ãç¹ã«ããããã£ãããšã§ã¯ãããŸããã§ããã æã«ã¯ãç°ãªãèšèªã§å€ãã®çµéšãç©ãã ããã¢ããªã±ãŒã·ã§ã³ãäœæããŸã-ããªãèªèº«ã®èšèªãèãåºããããããã®ã§ãã ç§ã¯ãããå§ããŸããããä»äºãå€ãããã®ã§ãããŸããã ããããããªãã¯ãæ ¹ã«ãæ»ãããã¹ãŠãç解ããããã«èªåã§äœããããããšããæœåšæèã®æ¬²æ±ãæã£ãŠããŸãã ãã¡ãããã³ã³ãã€ã©ãŒãã©ã®ããã«æ©èœãããã¯ç解ããŠããŸããããèŠä»¶ã®è€éãã¯ç解ããŠããŸããã§ããã ããšãã°ãã¡ã¢ãªç®¡çã®åéã§å¯ŸåŠããè€éãªãã¬ãŒããªãã ã¢ããªã±ãŒã·ã§ã³éçºè ã®çç£æ§ãé«ããå¹æçãªãã®ãåæã«éžæããããšã¯éåžžã«å°é£ã§ãã ãã®åé¡ã¯ãŸã æåŸãŸã§è§£æ±ºãããŠããŸããã RustãŸãã¯.NETã¯ããã決ããŠè§£æ±ºããŸããã Rustã¯çŽ æŽããããé©ãã¹ããã®ã§ãããç¹ã«JavaScriptã®ãããªãã®ã§åãæ¿ããå Žåã¯ãäœæ¥ãå°é£ã§ãã ãã ããRustã«ç§»è¡ããŠããPythonãŸãã¯JavaScriptéçºè ã®äŸããããŸãããããã¯å€å°é©ãã¹ãããšã§ãã
AãïŒéå»10幎éCïŒã§ããã°ã©ãã³ã°ãããšãã£ããããŸããããCïŒã§ã¯äœãè¯ãã®ã§ããããïŒ ããšãã°ããªãC ++ã§ã¯ãªãã®ã§ããïŒ C ++ã¯ããäœç³»çãªèšèªã®ããã§ãã
æ£çŽã«èšããšãç§ã¯C ++ãå«ãã§ãCã¯å«ãã§ãããç§ã¯åœŒããšäžç·ã«åããŠããŸãã ç§ã¯ããããå€ãã®ãã°ã巚倧ãªéçºã®éå¹çæ§ã«ã€ãªãããšå¿ããä¿¡ããŠããŸãã å€ãã®äººã¯ãCã§ããã°ã©ãã³ã°ããŠããã®ã§ãããã°ã©ã ãããã©ãŒãã³ã¹æåã§ãããšããäºå®äžã®ã³ãŒãããã§ã«äºå®äžæžããŠãããšèããŠããŸãã ããã¯çå®ã§ã¯ãããŸããã mallocãªã©ã®ããŒããã¹ã«ã«ãããããšã.NETã§èšè¿°ããããã®ãšæ¯èŒããŠãé ããªããŸãã åªããC / C ++éçºè ã¯ã ãªãŒãžã§ã³ã¡ã¢ãªã¢ãã±ãŒã¿ãŒã®ãããªããªãã¯ã䜿çšããããåŸãŸããã 誰ãèããããšã®ãªãããããã®å¥åŠãªããšã«èªåèªèº«ãåããªããã°ãªããŸããã ããã§ã¯ãã²ãŒã éçºè ã¯éåžžãã®ãããªããšãç¥ã£ãŠããŸãã å°ãªããšããAAAéçºè ãŸãã¯C / C ++ãã¬ãŒã ã¯ãŒã¯ã§ã²ãŒã ãäœæãã人ã ã åé¡ã®äžéšã¯ãèšèªèªäœã®è€éãã«èµ·å ããŠããŸãã 以åã¯ãC ++ã®æ¬ããŸã£ããèªãã§ããŸããã§ããããã»ãã®3ã4幎åã«ãèšèªãæããããã ãã«C ++ã®æ¬ã ããèªã¿å§ããŸããã ç§ã¯ãããããã°ã©ã ããŸããããäœç³»çã§æ£åŒãªã¢ãããŒãããããŸããã§ããããã®è€éãããã¹ãŠãæ£ããæžããªããšç Žæ» ããããšã®ãããã®ã®æ°ã«é©ããããŸããã
æ°ãæåã«Unityã«ãã°ããããŸãããã誰ããC ++ã³ãŒãã§ãã¹ãç¯ããŸãããããã¯ã³ã³ã¹ãã©ã¯ã¿ãŒã«ãããäœããå€ã§æž¡ãããããããã®å€ããã¢ãã¬ã¹ãååŸããŠãã£ãã·ã¥ã§æ¢ããŸããã å®éãã¡ã¢ãªã«ãªããªã£ãå€ãåç §ããŸããã ããã¯ãã¹ãŠããã€ã³ã¿ãŒãéã€ã³ãžã±ãŒã¿ãŒãšæ··åããããã®ãªãã¡ã¯ã¿ãªã³ã°ãè¡ã£ã人ããã¹ãŠã®äœ¿çšå Žæããã§ãã¯ããªãã£ãããã§ãã å®å šã«æ©èœãããŸã£ããç°ãªãã³ãŒããçªç¶æ©èœããªããªããŸããã ããã¯å°ããªééãã®ããã§ããããã¹ãŠãå£ããŸããã å®éãããã¯ã¡ã¢ãªã®æäœã«ãããééãã§ãã ããã§ãããããããã®ãèŠããšããç§ã¯CãšC ++ã§ã®äœæ¥ãžã®ã¢ã¯ã»ã¹ãå¶éãããããã®äœ¿çšãæå°éã«ããªããã°ãªããªããšç¢ºä¿¡ããŠããŸãã .NETã®éšåã§ã¯ã䜿çšããã©ãããã©ãŒã åºæã®ãã®ã«ã®ã¿å¶éããŸããã ãããããã¹ãŠãCïŒã§æžãã®ã¯ããªãé¢åã§ãã APIã«ã¢ã¯ã»ã¹ããã«ã¯ãããããã®dlopenãå®è¡ããå¿ èŠããããŸãã ãã ããããšãã°ãããããã¹ãŠãCã®ã©ãããŒã«ã«ãã»ã«åãã1ã€ã®é¢æ°ã ãã§ã¢ã¯ã»ã¹ãæŽçããããšãã§ããŸãã ãã®ãããªãã®ãåé¢ããCããã³C ++ã§ããã«éçºããããšæããŸãã ããããããã¯çžäºéçšæ§ã«é¢ããéåžžã«çããããã¯ã§ããããã®åŸãéåžžã®å¶åŸ¡èšèªã«ãšã©ãŸããã»ãšãã©ã®å Žåããã䜿çšããããé«éãªã³ã³ãã€ã«ãã楜ãã¿ãã ããã
C ++ã³ã³ãã€ã©ãšãªã³ã«ã®ãšã©ãŒãå«ãã§ããç°ãªããã©ãããã©ãŒã ã§äœæ¥ããå¿ èŠãå«ãã§ããããã¯ãã¹ãŠéåžžã«é£ããããšã§ãã MSVCã§ã³ã³ãã€ã«ãéå§ããããClangã«åãæ¿ããŠããGCCã«åãæ¿ããå¿ èŠããããŸãã LinuxãMacãWindowsãAndroidãiOSãªã©ã§ã C ++ã§ã®äœæ¥ã¯æªå€¢ã§ãïŒ
ãšãã£ã¿ãŒãã¡ã€ã«ã.hãã¡ã€ã«ãããã³cppããã¡ã€ã«ã®åé¢ã¯å«ãã§ãã 人ã ã¯èšèªã«å®å šã«æ··ä¹±ãããã¯ãã§ããã°ã©ã ãéå§ããŸãã ç§ã¯ã¡ã¿ããã°ã©ãã³ã°ã倧奜ãã§ãããçŸä»£ã®C ++ã§ã¯å®å šã«çæ°ã«é¥ããŸãã ãããã®ããšèªäœã¯çŽ æŽãããã§ãããå®éã«ã¯ãã§ã«å€ãããŸãã
èŠçŽãããšãã¯ããCïŒã§å¹æçãªãœãããŠã§ã¢ãéçºã§ãããšæããŸãã C ++ã»ã©é«éã§ã¯ãªããããããŸããããå¯èœã§ãã ããã¯ãŸãã«Unityã§ããããšããŠããããšã§ã-ããšãã°ãC ++ã®å Žåãããããã«å€ãã®å Žæã§æ倧ã®ããã©ãŒãã³ã¹ãéæããããã«ãCïŒã®ç¹å®ã®ãµãã»ãããã³ã³ãã€ã«ããããŒã¹ãã³ã³ãã€ã©ãå®è¡ããŠããŸãããCïŒã«æ®ããŸãã ããã¯å®å šã«å®å šã§ãã ãã€ã³ã¿ãŒã«ã€ããŠã¯ãå®å šã§ãªããšå®£èšããäŸå€ãã¹ããŒããããã¹ãŠãæ瀺çã«è¡ãå¿ èŠããããŸãã ãããŠãããã¯èŠãçµéšã§ãã ãã ããC ++ãšåããããé«éãªã³ãŒããäœæã§ããŸãã ããã¯ãŸãã«.NETãé²ã䟡å€ã®ããæ¹åã§ãããç§ãã¡ãé²ãã¹ãæ¹åã ãšæããŸãã
AãïŒããšãã°ããªãŒãã³ãœãŒã¹ã³ãŒãã«ã€ããŠè©±ããšãéåžžã«å€§ãããŠæãããCãã¡ã€ã«ã§ãã.NET Coreã«ã¬ããŒãžã³ã¬ã¯ã¿ãŒããããŸãã ãããããããçš®ã®Lispããçæããã2ã¡ã¬ãã€ãã®ãŽãã§ãïŒæäœæ¥ã§æžã䟡å€ã®ããæåã¯ã»ãšãã©ãããŸããã§ããïŒã ããããããã§ãã¹ãŠãCïŒã§æžãçŽãã®ãçã«ããªã£ãŠããŸããïŒ
ã¯ãïŒ ç§ã¯ãMicrosoftãšã³ãã¥ããã£ã®äž¡æ¹ã§JITã«æºãã£ãŠãã人ã ãšãã£ããããŠããŸãã ç§ãæ¬åœã«ä¿¡ããŠãããã®ããããŸãã ããªãã®èšèªãããæçããåºæ¬çã«ãªã£ãç¬éããããšä¿¡ããŠããŸãããããŠãããªãã¯ããã«ææŠãã匷ãããã¹ãããªããã°ãªããŸããã åºç€ãšããŠäœ¿çšã§ããå¿ èŠããããŸãã ããã©ãŒãã³ã¹ãéåžžã«èŠæ±ãããã®ãäœæããããã«ã䜿çšã§ããããšã蚌æããŠãã ããã ãããã¬ããŒãžã³ã¬ã¯ã¿ãŒãšJITã®ç©èªã§ãã JITãGCãªã©ãéåžžã«å€§ããªå²åã®.NETã©ã³ã¿ã€ã ãµãã·ã¹ãã ãCïŒã§å®è¡ã§ããŸãã C ++ã§åºæ¬ãã©ãããã©ãŒã ã®æœè±¡åããèšè¿°ã§ããªããšããã«ãŒã«ãäœæãããšãã»ãšãã©ã®ã©ã³ã¿ã€ã ãã©ãããã©ãŒã ãç¬ç«ããŸãã ãããèµ·ãã£ãããšãŠãããããã§ãã ããããããã¯å€§ããªä»äºã§ãã
ç§ããã®ã¢ã€ãã¢ãç¹ã«å¥œããªçç±ã1ã€ãããŸãã , C/C++ , - . , . - , IDE , , â . C#, . , , . . , , , CoreRT C# C++. .
, .NET GC C#. . , , .NET GC, -. GC, , - GC. Java- Jikes RVM â Java. , Golang C, Golang. Golang-, , . , , , . , . LLVM, .NET JIT.
, , .
.: , . â . , AST- . Golang , . , ? ?
, , ! , . : . : -, .
: , , , , . , : « ! !». . , .
LLVM, â , . , , , , , . . , , . , . , , , , ? , , , . , - : «, , , - » â , , , .
, . , , , , , , - . , : , , . , , . , , . , . , â .
â . -. , -, API, . . , SharpDX . . , , , . DirectX C++ API, C++. , . , - , . : , . , SharpDX. , PR, . pull request ( ). - . - , SharpDX - . : « ?» ( , ) , . 90- â . , , .
, , , , : , , .
.: â , ? . , , ?
, â , SIMD. , , SIMD , . ( LLVM, , ). , , . , , , . - , . , . . - Intel LLVM. , , LLVM. , , . LLVM â , , , .NET. SIMD, CPU â . , , .NET â SIMD- . , , .
: « ». . . LLVM : -, , . , , Roslyn C#, . , , . , , , . SIMD â . GPU, CPU, â . 6, 8, 16, 42 . - , , .
.: Markdown Markdig, ? , Markdown? , ?
, Markdown â , . , , Word - . . ? , , . . , RFC â , , , . , , . , ASCII-art. Word, PDF . Word. - â . , . Markdown, , - â , HTML. , . HTML, Markdown . , Github, Markdown- . . â . , Microsoft Markdown, GitHub, PR â , .
Markdown, CommonMark, , Markdown. , CommonMark â . , , . , Github CommonMark . â . . Microsoft CommonMark, Markdig. , Markdig , Markdown-, . , , , CommonMark, Markdig. , . Markdig , , , . , Microsoft .
.: , ? ?
, . â , . . , . , , , . , . « , , ». , ? , , , , , - . , Google « X» « ». , â . , , , . , , - â , . « , - ?»
, , . . , , . , - . , , , . â , , ? , ? ãããããªãã
, . . ? ? , , . , ⊠- , . . , , , .
. . ! , . â . , â - . , , , . , , , . , . , . . , - : « !». -, , , . , . .
, , , , , , , - , .
«Behind the burst compiler, converting .NET IL to highly optimized native code by using LLVM» DotNext 2018 Moscow . 22-23 , , DotNext . , , , â :