æè¿ãGoã®æ°é®®ãªã¬ããŒãžã³ã¬ã¯ã¿ãŒãç§ã«ãšã£ãŠæãæåããæ¹æ³ã宣äŒããŠããªããšããèšäºãããããç®ã«ããŸããã äžéšã®èšäºã¯ãèšèªèªäœã®éçºè ã«ãã£ãŠæžããããã®ã§ããããã®å£°æã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãã¯ãããžãŒã®æ ¹æ¬çãªé²æ©ã瀺åããŠããŸãã
以äžã¯ã2015幎8æä»ãã®æ°ããã³ã¬ã¯ã¿ãŒã®å°å ¥ã«é¢ããæåã®çºè¡šã§ãã
ã¬ããŒãžã³ã¬ã¯ã¿ãŒïŒGCïŒã¯ã2015幎ã ãã§ãªãã2025幎以éã Goã§äœæãããŠããŸã... Go 1.5ã®ã³ã¬ã¯ã¿ãŒã¯ãã¢ã»ã³ããªã®äžæåæ¢ãå®å šãªèšèªãžã®åãæ¿ãã®éå£ã§ã¯ãªããªã£ãæªæ¥ã®å°æ¥ãçºè¡šããŸãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ãããŒããŠã§ã¢ã§ç°¡åã«æ¡åŒµã§ããæªæ¥ã§ãããããŒããŠã§ã¢ãæé·ããã«ã€ããŠãã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ãããåªãããããã¹ã±ãŒã©ãã«ãªãœãããŠã§ã¢ãäœæããéã®ææ¢åã§ã¯ãªããªããŸãã Goã¯ãå°ãªããšãä»åŸ10幎éã¯ââ䜿çšããã®ã«é©ããèšèªã§ãã
äœæè ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®äžæåæ¢ã®åé¡ã解決ããã ãã§ãªããããã«é²ãã ãšäž»åŒµããŠããŸãã
ããã©ãŒãã³ã¹ã®åé¡ã解決ããããã®é«åºŠãªæ¹æ³ã®1ã€ã¯ãååé¡ã«1ã€ãã€ãGCèšå®ïŒããïŒãè¿œå ããããšã§ãã ããã°ã©ãã¯ãã¢ããªã±ãŒã·ã§ã³ã«æé©ãªçµã¿åãããéžæããŠãããããå€æŽã§ããŸãã ãã®ã¢ãããŒãã®æ¬ ç¹ã¯ãæ¯å¹Ž1ã€ãŸãã¯2ã€ã®æ°ããèšå®ãå°å ¥ããããšã10幎åŸã«ãããã®èšå®ãå€æŽãã人ã ã®äœæ¥ãæ³çã«èŠå¶ããå¿ èŠãããããšã§ãã Goã¯ãã®ã«ãŒãã«è¡ããŸããã§ããã ããããã®èšå®ã®ä»£ããã«ãèšå®ãGOGCãšåä»ããŸããã
ããã«ãéçºè ã¯å€æ°ã®èšå®ããµããŒãããè² æ ãã解æŸãããã¢ããªã±ãŒã·ã§ã³ã®å®è¡æéã®æ¹åã«éäžã§ããŸãã
å€ãã®GoãŠãŒã¶ãŒãGoã®ã©ã³ã¿ã€ã ã«å¯Ÿããæ°ããã¢ãããŒããåãã§åãå ¥ããããšã¯ééããããŸããã ããããç§ã¯ãããã®äž»åŒµã«ã€ããŠäžæºãæã£ãŠããŸãããããã¯ä¿¡é Œã§ããªãããŒã±ãã£ã³ã°ã®åŒŸäžžã®ããã«èŠããŸãã ãããŠããããã¯ã€ã³ã¿ãŒãããäžã§äœåºŠãç¹°ãè¿ãåçãããŠããã®ã§ããããã詳现ã«æ±ãæãæ¥ãŸããã
çŸå®ã«ã¯ãGoã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒã«ã¯æ°ããã¢ã€ãã¢ãç 究çµæãå®è£ ãããŠããŸããã èè èªèº«ãèªããŠããããã«ãããã¯1970幎代ã®ã¢ã€ãã¢ã«åºã¥ããã䞊è¡ããŒãã³ã°ãšã¯ãªãŒãã³ã°ãåããåãªãã³ã¬ã¯ã¿ãŒã§ãã ã³ã¬ã¯ã¿ãŒã¯ãã³ã¬ã¯ã¿ãŒã®ä»ã®ãã¹ãŠã®éèŠãªç¹æ§ã«ãããäžæåæ¢ã®æéãæé©åããããã«èšèšãããŠãããããããã¯æ³šç®ã«å€ããŸãã Goã®æè¡è³æããã³ããŒã±ãã£ã³ã°è³æã§ã¯ããããã®å¯äœçšã®ãã¹ãŠã«èšåããŠããããã§ã¯ãªããããå€ãã®ããã°ã©ããŒã¯ãã®ååšãèªèããŠããŸããã ãã®çµæã競åããèšèªã¯ã¹ã©ã°ã®èšèšãäžååã§ãã ãããŠãGoã®èè ã¯ãããã®èãã«ã®ã¿çæãäŸçµŠããŠããŸãã
次ã®10幎ã®ã³ã¬ã¯ã¿ãŒãäœæããããã«ãéå»æ°å幎ã®ã¢ã«ãŽãªãºã ã䜿çšããŸããã ã³ã¬ã¯ã¿ãŒã¯ã1978幎ã«ãã€ã¯ã¹ãã©ãææ¡ãã3è²ïŒ3è²ïŒã®äžŠåããŒãã³ã°ããã³ã¯ãªãŒãã³ã°ã¢ã«ãŽãªãºã ãå®è£ ããŠããŸãã ããã¯ããäŒæ¥ãã¯ã©ã¹ã®ã»ãšãã©ã®ææ°ã³ã¬ã¯ã¿ãŒãšã®æå³çãªéãã§ãããç§ãã¡ã®æèŠã§ã¯ãææ°æ©åšã®æ©èœãšææ°ãœãããŠã§ã¢ã®é 延ã¬ãã«ã®èŠä»¶ã«æé©ã§ãã
ããããã¹ãŠèªãã§ãã ãããéå»40幎ã«ããã£ãŠããäŒæ¥ãã¬ããŒãžã³ã¬ã¯ã¿ãŒã®åéã§ãã以äžè¯ããã®ã¯ææ¡ãããŠããŸããã
ã¬ããŒãžã³ã¬ã¯ã·ã§ã³çè«ã®æŠèŠ
ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ãéçºããå Žåãããã€ãã®èŠçŽ ãèæ ®ããå¿ èŠããããŸãã
- ããã°ã©ã ã®ã¹ã«ãŒãããïŒã¢ã«ãŽãªãºã ã¯ããã°ã©ã ã®é床ãã©ãã ãé ãããŸããïŒ ããã¯ãããŒã»ã³ããŒãžã§è¡šãããããšããããŸããã€ãŸããã¢ã»ã³ããªã«è²»ããããããã»ããµæéãšæçšãªäœæ¥ã«è²»ããããæéã®æ¯çã§ãã
- ã³ã¬ã¯ã¿ãŒã®ã¹ã«ãŒãããïŒã³ã¬ã¯ã¿ãŒã¯ãç¹å®ã®ããã»ããµãŒæéã§ã©ããããã®ã¬ããŒãžãæ¶å»ã§ããŸããïŒ
- ããŒãã®åé·æ§ïŒã³ã¬ã¯ã¿ãŒãçè«äžã®æå°å€ãè¶ ããŠå¿ èŠãšããã¡ã¢ãªéã¯ïŒ ã¢ã»ã³ããªäžã«äžææ§é ãã¡ã¢ãªã«é 眮ãããšãããã°ã©ã ã«ããã¡ã¢ãªæ¶è²»ãæ¥æ¿ã«å¢å ããããšã¯ãããŸãããïŒ
- äžæåæ¢ã®æéïŒã³ã¬ã¯ã¿ãŒãããã°ã©ã ãåæ¢ããæé
- äžæåæ¢ã®é »åºŠïŒã³ã¬ã¯ã¿ãŒãããã°ã©ã ãåæ¢ããé »åºŠ ã
- äžæåæ¢ã®åæ£ïŒã»ãšãã©ã®äžæåæ¢ã¯éåžžã«çããããå°æ°ã®éåžžã«é·ãã§ããïŒ ãããšããããŒãºã®ç¶ç¶æéãããåäžã«ãããã§ããïŒ
- ã¡ã¢ãªå²ãåœãŠã®ããã©ãŒãã³ã¹ïŒã¡ã¢ãªå²ãåœãŠã¯é«éãäœéããŸãã¯äºæž¬äžèœã§ããïŒ
- ã·ãŒãªã³ã°ïŒã³ã¬ã¯ã¿ãŒã¯ãèŠæ±ãæºããã®ã«ååãªã¹ããŒã¹ããã£ãŠããã¡ã¢ãªãŒäžè¶³ïŒOOMïŒã¡ãã»ãŒãžãåºããŸãããå°ããªãã£ã³ã¯ã®åœ¢ã§ããŒãå šäœã«æ£ãã°ã£ãŠããŸããïŒ ããã§ãªãå Žåã¯ãäœæ¥ãç¶è¡ããã®ã«ååãªã¡ã¢ãªãããå Žåã§ããããã°ã©ã ã®é床ãäœäžãå§ããæçµçã«ã¯ç«ã¡äžãããŸãã
- ãã«ãã¹ã¬ããïŒã³ã¬ã¯ã¿ãŒã¯ã©ã®ãããå¹ççã«ãã«ãã³ã¢ãã·ã³ã䜿çšããŸããïŒ
- ã¹ã±ãŒãªã³ã°ïŒããŒããµã€ãºã倧ãããªããšãã³ã¬ã¯ã¿ãŒã¯ã©ã®çšåºŠå¹ççã«æ©èœããŸããïŒ
- ãã¥ãŒãã³ã°ïŒç®±ããåºããŠããã«ã³ã¬ã¯ã¿ãŒããã¥ãŒãã³ã°ããã®ã¯ã©ããããé£ããã§ããïŒãŸããæé©ãªããã©ãŒãã³ã¹ã®ããã«ïŒ
- ãŠã©ãŒã ã¢ããæéïŒã¢ã«ãŽãªãºã ã¯ãç¬èªã®åäœã®æž¬å®ã«åºã¥ããŠèªå·±èª¿æŽãããŸããïŒ ãããããªããã©ã®ãããã®æéæé©ãªåäœã«ãªã£ãŠããŸããïŒ
- ããŒãžç©ºãïŒã¢ã«ãŽãªãºã ã¯æªäœ¿çšã®ã¡ã¢ãªããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã«è¿ããŸããïŒ ãããããªãããã€ïŒ
- 移æ€æ§ïŒã³ã¬ã¯ã¿ãŒã¯ãx86ãšæ¯èŒããŠã¡ã¢ãªãŒã®äžè²«æ§ã®ä¿èšŒã匱ãããã»ããµãŒã¢ãŒããã¯ãã£ã§åäœããŸããïŒ
- äºææ§ïŒã³ã¬ã¯ã¿ãŒã¯ã©ã®èšèªãšã³ã³ãã€ã©ãŒã§åäœããŸããïŒ ã¢ã»ã³ãã©ã®äœ¿çšãèæ ®ããã«äœæãããèšèªãããšãã°C ++ã§å®è¡ããããšã¯å¯èœã§ããïŒ ã³ã³ãã€ã©ãå€æŽããå¿ èŠããããŸããïŒ ãã®å Žåãã³ã¬ã¯ã¿ãŒã¢ã«ãŽãªãºã ãå€æŽãããšãã«ãããã°ã©ã å šäœãšäŸåé¢ä¿ãåã³ã³ãã€ã«ããå¿ èŠããããŸããïŒ
ã芧ã®ããã«ãã³ã¬ã¯ã¿ãŒãèšèšããéã«èæ ®ãã¹ãå€ãã®ç°ãªãèŠå ãããããããã®ããã€ãã¯ããã©ãããã©ãŒã ã«é¢é£ããããåºããšã³ã·ã¹ãã ã®ã¢ãŒããã¯ãã£ã«åœ±é¿ãäžããŸãã ãããŠããã¹ãŠã®èŠå ããªã¹ããããã©ããã¯ããããŸããã
èšèšãã©ã¡ãŒã¿ã®ã¹ããŒã¹ãè€éã§ãããããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¯ã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ã®ãµããšãªã¢ã§ãããç 究è«æã§è©³ãã説æãããŠããŸãã ã¢ã«ãããã¯ç°å¢ãšåçšç°å¢ã®äž¡æ¹ã§ãæ°ããã¢ã«ãŽãªãºã ãå®æçã«ææ¡ããã³å®è£ ãããŠããŸãã ããããæ®å¿µãªããããã¹ãŠã®å Žé¢ã«é©ããã¢ã«ãŽãªãºã ãäœæãã人ã¯ããŸããã
ãã£ãããã劥åç¹ããããŸã
ããã«ã€ããŠè©³ãã説æããŸãã
æåã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ã¯ãã·ã³ã°ã«ããã»ããµã³ã³ãã¥ãŒã¿ãŒãšå°ããªããŒããæã€ããã°ã©ã çšã«éçºãããŸããã ããã»ããµãšã¡ã¢ãªã®ãªãœãŒã¹ã¯é«äŸ¡ã§ããããŠãŒã¶ãŒã¯èŠæ±ãå³ãããªãã£ããããããã°ã©ã ã®äœæ¥ã®äžæåæ¢ã¯å¿ å®ã§ããã åœæäœæãããã¢ã«ãŽãªãºã ã¯ãããã»ããµã®äœ¿çšéãæžãããããŒãäžã®éå°ãªã¡ã¢ãªæ¶è²»ãæå°éã«ããããšããŸããã ããã¯ãããã°ã©ã ãããŒã¿ãã¡ã¢ãªã«é 眮ã§ããããã«ãªããŸã§ãã³ã¬ã¯ã¿ãŒã¯äœãããªãã£ãããšãæå³ããŸãã ãã®åŸãããŒããå®å šã«ã¿ã°ä»ããããŠã¯ãªã¢ããããŸã§äžæåæ¢ããã§ããã ãæ©ãã¡ã¢ãªã®äžéšã解æŸããŸããã
å€ãã³ã¬ã¯ã¿ãŒã«ã¯å©ç¹ããããŸããã·ã³ãã«ã§ãã 圌ããä»äºãããŠããªãå Žåãããã°ã©ã ãé ãããªãã§ãã ããã é床ã®ã¡ã¢ãªæ¶è²»ã«ã€ãªãããªãã§ãã ããã Boehm GCãªã©ã®ä¿å®çãªãã«ããŒã¯ãã³ã³ãã€ã©ãŒãããã°ã©ãã³ã°èšèªã®å€æŽããå¿ èŠãšããŸããïŒ ããã«ããã AAAã«ããŽãªã®ãããªã²ãŒã ãªã©ããã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ïŒéåžžã¯å°ããªããŒãïŒã«é©ããŠããŸãã ãã®äžã§ãã»ãšãã©ã®ã¡ã¢ãªã¯ã¹ãã£ã³ããå¿ èŠã®ãªãããŒã¿ãã¡ã€ã«ã§å ããããŠããŸãã
ããŒãã³ã°ãšã¯ãªãŒãã³ã°ã®ãã«ã¹ãããããŒãºïŒStop-the-worldãSTWïŒãç¹åŸŽãšããã¢ã«ãŽãªãºã ã¯ãã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ã³ãŒã¹ã§æãããç ââ究ãããŠããŸãã ã€ã³ã¿ãã¥ãŒã®éã«ãåè£è ã«ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ã€ããŠå°ã話ãããââã«é ŒãããšããããŸãã ãããŠã»ãšãã©ã®å Žåã圌ãã¯ã³ã¬ã¯ã¿ãŒããã©ãã¯ããã¯ã¹ãšããŠæ瀺ããŸããããã®å éšã§ã¯äœãèµ·ãã£ãŠããã®ããåãããªãããéåžžã«å€ãæè¡ã䜿çšããŠãããšèããŠããŸãã
åé¡ã¯ããã®ãããªåçŽãªããŒãã³ã°ãšã¯ãªãŒãã³ã°ã®äžæåæ¢ãéåžžã«äžååã«ã¹ã±ãŒãªã³ã°ãããŠããããšã§ãã ã«ãŒãã«ãè¿œå ããã¡ã¢ãªå ã®ããŒãããªã¥ãŒã ãšå²ãåœãŠã®æ¯çãäžãããšãã¢ã«ãŽãªãºã ã¯ããŸãæ©èœããªããªããŸãã ãã ããå°ããªããŒãã䜿çšããããšãåçŽãªã¢ã«ãŽãªãºã ã§ãããååã«ã¿ã¹ã¯ãå®è¡ã§ããå ŽåããããŸãïŒ ãã®ãããªç¶æ³ã§ã¯ãåæ§ã®ã³ã¬ã¯ã¿ãŒã䜿çšããŠãã¡ã¢ãªãŒã®ãªãŒããŒããããæå°éã«æããããšãã§ããŸãã
ãã1ã€ã®æ¥µç«¯ãªäŸã¯ãæ°åã®ã³ã¢ãæã€ãã·ã³ã§æ°çŸã®ã¬ãã€ãã®ãµã€ãºã®ããŒãã䜿çšããããšã§ãã ããšãã°ã亀æãã©ã³ã¶ã¯ã·ã§ã³ãŸãã¯æ€çŽ¢ã¯ãšãªãåŠçãããµãŒããŒäžã ãã®ãããªç¶æ³ã§ã¯ãã§ããã ãçãäžæåæ¢ããå¿ èŠããããŸãã ãããŠãã¢ã«ãŽãªãºã ãæãŸããå ŽåããããŸããããã¯ãäžè¬ã«ããã¯ã°ã©ãŠã³ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ããã«ããã°ã©ã ã®åäœãé ãããŸãããéåžžã«çãäŒæ¢ã§ãã
匷åãªã·ã¹ãã ã§ã¯ã倧èŠæš¡ãªããããžã§ããå®è¡ã§ããŸãã 圌ãã«ãšã£ãŠãäžæåæ¢ã¯éèŠã§ã¯ãªããç·å®è¡æéã®ã¿ãéèŠã§ãã ãã®ãããªå Žåã ã¹ã«ãŒããããæ倧åããã¢ã«ãŽãªãºã ãã€ãŸããå®è¡ãããæçšãªäœæ¥ãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«è²»ããããæéã®æ¯çã䜿çšããããšããå§ãããŸã ã
æ®å¿µãªãããå®å šã«å®ç§ãªåäžã®ã¢ã«ãŽãªãºã ã¯ãããŸããã ãŸããèšèªã®ãªãã©ã³ã¿ã€ã ã¯ãããã°ã©ã ãããããžã§ãã§ããããé 延ã®åœ±é¿ãåãããã察話åããã°ã©ã ã§ããããå€æã§ããŸãã ããã¯ãã©ã³ã¿ã€ã éçºè ã®æããã§ã¯ãªãããã¬ããŒãžã³ã¬ã¯ã¿ãŒèšå®ãã®åºçŸã«ã€ãªãããŸããã ããã¯ãã³ã³ãã¥ãŒã¿ãŒãµã€ãšã³ã¹ã®åºæ¬çãªå¶éã®çµæã§ãã
äžä»£ä»®èª¬
1984幎ã«ãã¡ã¢ãªå ã®é 眮ã®ã»ãšãã©ããæ»ãã ããã€ãŸãé 眮åŸéåžžã«çãæéã§ãŽãã«ãªãããšãããããŸããã äžä»£ä»®èª¬ãšåŒã°ãããã®èŠ³å¯ã¯ãããã°ã©ãã³ã°èšèªã®éçºã«ãããæã匷åãªçµéšç芳å¯ã®1ã€ã§ãã ãã®ä»®èª¬ã¯ãæ°å幎ã«ããããé¢æ°åãåœä»€åãããŒã¿åã®æç¡ã«ããããããããŸããŸãªèšèªã§ç¢ºèªãããŠããŸãã
äžä»£å¥ä»®èª¬ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ããã®å©ç¹ã掻çšãå§ãããšããæå³ã§æçã§ãã ãã®ãããå€ãã¹ããããã£ãã¯ã¯ãªã¢ã¢ã«ãŽãªãºã ãšæ¯èŒããŠå€ãã®å©ç¹ããã£ãäžä»£å¥ã³ã¬ã¯ã¿ãŒããããŸããã
- ã³ã¬ã¯ã¿ãŒã®ã¹ã«ãŒãããïŒããå€ãã®ãŽââããåéããããé«éã«åŠçã§ããŸãã
- ã¡ã¢ãªå²ãåœãŠããã©ãŒãã³ã¹ïŒæ°ããã¡ã¢ãªãé 眮ãããšãã«ãããŒãäžã®ç©ºãã¹ããããæ¢ãå¿ èŠããªããªããŸããã å®éãé 眮ã¯ç¡æã«ãªããŸããã
- ããã°ã©ã ã®ã¹ã«ãŒãããïŒã¡ã¢ãªãã©ã°ã¡ã³ãããã¡ããšé£ãåããã«é 眮ãããããã«ãªãã ãã£ãã·ã¥ã®äœ¿çšçãå€§å¹ ã«åäžããŸãã ã äžä»£ã«åºã¥ãããžã§ãã¬ãŒã¿ãŒã¯ãããã°ã©ã ãé²è¡ããã«ã€ããŠäœããã®äœæ¥ãè¡ãå¿ èŠããããŸãããå®éã«ã¯ãããã¯ãã£ãã·ã¥ãžã®å€æŽã®å©ç¹ãããéèŠã§ãã
- äžæåæ¢ã®æéïŒã»ãšãã©ã®äžæåæ¢ïŒãã¹ãŠã§ã¯ãªãïŒãçããªããŸãã
ãããããã®ãããªã³ã¬ã¯ã¿ãŒã«ã¯æ¬ ç¹ããããŸãã
- äºææ§ïŒã¢ã«ãŽãªãºã ã¯ã¡ã¢ãªå ã®ããŒã¿ã移åããããã°ã©ã ããã€ã³ã¿ãŒã«æžã蟌ãå Žåã«è¿œå ã®æäœãè¡ããŸãã ããã¯ãã³ã¬ã¯ã¿ãŒãã³ã³ãã€ã©ãŒãšç·å¯ã«çµ±åãããŠããå¿ èŠãããããšãæå³ããŸãã C ++ã®å Žåãäžä»£ããŒã¹ã®ã³ã¬ã¯ã¿ãŒã¯ãããŸããã
- ããŒãã®åé·æ§ïŒãã®ãããªã³ã¬ã¯ã¿ãŒã¯ãç°ãªããã¹ããŒã¹ãéã§ã¡ã¢ãªãŒã®äžéšãã³ããŒããŸãã ã³ããŒããã®ã«ååãªã¹ããŒã¹ãããã¯ããªã®ã§ãããŒããµã€ãºã«ã¯ããçšåºŠã®åé·æ§ããããŸãã ããã«ããã®ãããªã³ã¬ã¯ã¿ãŒã«ã¯ãããŸããŸãªãã€ã³ã¿ãŒãããïŒèšæ¶ãããŠããã»ããïŒã®ãµããŒããå¿ èŠã§ããããã«ãããåé·æ§ãããã«åäžããŸãã
- äžæåæ¢ã®åæ£ïŒå€ãã®äžæåæ¢ã¯éåžžã«çãã§ãããããŒãå šäœãããŒã¯ããŠã¯ãªã¢ããã«ã¯å®å šãªåæ¢ãå¿ èŠã«ãªãå ŽåããããŸãã
- ã«ã¹ã¿ãã€ãºïŒäžä»£ã«åºã¥ããžã§ãã¬ãŒã¿ãŒã¯ããè¥ãäžä»£ããŸãã¯ã楜å空éãïŒãšãã³ã¹ããŒã¹ïŒã®æŠå¿µãå°å ¥ããããã°ã©ã ã®ããã©ãŒãã³ã¹ã¯ãã®ãµã€ãºã«å€§ããäŸåããŸãã
- ãŠã©ãŒã ã¢ããã®æéïŒãã¥ãŒãã³ã°ã®åé¡ã«å¯Ÿå¿ããŠãäžéšã®ã³ã¬ã¯ã¿ãŒã¯ãå®è¡äžã®ããã°ã©ã ã®åäœã«é¢ããããŒã¿ã«åºã¥ããŠãè¥ãäžä»£ã®ãµã€ãºãåçã«èª¿æŽããŸãã ãããä»ã§ã¯ãäžæåæ¢ã¯ããã°ã©ã ã®æéã«äŸåãå§ããŸããã éåžžãããã¯ãã³ãããŒã¯çµæã®å Žåã«ã®ã¿éèŠã§ãã
ããã«ãããããããäžä»£ããŒã¹ã®ã³ã¬ã¯ã¿ãŒã䜿çšããå©ç¹ã¯éåžžã«å€§ãããããä»æ¥ã§ã¯ãã®ã¿ã€ãã絶察çã«æ¯é çã§ãã ããªããæ¬ ç¹ãåãå ¥ããæºåãã§ããŠãããªããããªãã¯ç¢ºãã«ãã®ãããªã³ã¬ã¯ã¿ãŒã奜ãã«ãªãã§ãããã ãããã®ã¢ã«ãŽãªãºã ã¯ãããããçš®é¡ã®æ©èœã§æ¡åŒµã§ããŸããå žåçãªææ°ã®ã³ã¬ã¯ã¿ãŒã¯ããã«ãã¹ã¬ããåã䞊ååãå§çž®ã1人ã§ã®äžä»£ã®äœ¿çšãå¯èœã§ãã
Goã®äžŠåã³ã¬ã¯ã¿ãŒ
Goã¯ãå€åãæã€ããªãæ®éã®åœä»€åèšèªã§ãã ããããã圌ã®ã¡ã¢ãªã¢ã¯ã»ã¹ãã¿ãŒã³ã¯ãçæ仮説ã䜿çšããCïŒãšæ¯èŒã§ããããã.NETã³ã¬ã¯ã¿ãŒã䜿çšãããŸãã
å®éãGoããã°ã©ã ã«ã¯éåžžãHTTPãµãŒããŒã®ãããªèŠæ±/å¿çãã³ãã©ãŒãå¿ èŠã§ãã ã€ãŸããäžä»£ã«åŒ·ãçµã³ä»ããããåäœã瀺ããŠããŸãã Goã®ã¯ãªãšãŒã¿ãŒã¯ãã ãªã¯ãšã¹ãæåã®ã³ã¬ã¯ã¿ãŒ ããªã©ããããå°æ¥ã©ã®ããã«äœ¿çšã§ããããèããŠããŸãã æ¢ã«è¿°ã¹ãããã«ããã㯠ãæ§ææžã¿ã®ä¿æããªã·ãŒãæã€ã åã«ååãå€æŽãããäžä»£ããŒã¹ã®ã³ã¬ã¯ã¿ãŒã§ãã
ãã®ãããªã³ã¬ã¯ã¿ãŒã¯ãèŠæ±/å¿çãã³ãã©ãŒã®ä»ã®ã©ã³ã¿ã€ã ã§ãšãã¥ã¬ãŒãã§ããŸãã ãããè¡ãã«ã¯ãè¥ãäžä»£ãããªã¯ãšã¹ãã®åŠçäžã«çæããããã¹ãŠã®ã¬ãŒãããžã«é©åããã®ã«ååãªå€§ããã§ããããšã確èªããå¿ èŠããããŸãã
ããã«ãããããããGoã§çŸåšäœ¿çšãããŠããã³ã¬ã¯ã¿ãŒã¯äžä»£å¥ã³ã¬ã¯ã¿ãŒã§ã¯ãããŸãã ã 圌ã¯ãããã¯ã°ã©ãŠã³ãã§å€ãè¯ãã¿ã°ä»ããšã¯ãªãŒãã³ã°ã®æé ãå®è¡ããã ãã§ãã
ãã®ã¢ãããŒãã«ã¯1ã€ã®å©ç¹ããããŸããéåžžã«çãäŒæ¢ãåŸãããšãã§ããŸãã ããããä»ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã¯æªåããŸãã äŸïŒ
- ã³ã¬ã¯ã¿ãŒã®ã¹ã«ãŒãããïŒãããªã®ããŒããã¯ãªã¢ããã®ã«å¿ èŠãªæéã¯ãããŒãã®ãµã€ãºãšãšãã«å¢å ããŸãã ããã°ã©ã ã䜿çšããã¡ã¢ãªãå€ãã»ã©ããã®ã¡ã¢ãªã®è§£æŸãé ããªããæçšãªäœæ¥ã«æ¯ã¹ãŠã³ã³ãã¥ãŒã¿ãã¢ã»ã³ããªã«è²»ããæéãé·ããªããŸãã ããã°ã©ã ããã®å®è¡ããŸã£ãã䞊ååããªãå Žåã«ã®ã¿ãããããã¹ãŠåé¿ã§ããŸãããå¶éãªãã§ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ã«ãŒãã«ã䜿çšãç¶ããããšãã§ããŸãã
- çµ±åïŒå®è¡ãããŠããªããããããã°ã©ã ã¯çµæãšããŠããŒãå šäœãæçåããå ŽåããããŸãã ããã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã ãŸãããã£ãã·ã¥ãæ éã«äœ¿çšããå©ç¹ã¯åŸãããŸããã
- ããã°ã©ã ã®ã¹ã«ãŒãããïŒåãµã€ã¯ã«ã§ãã³ã¬ã¯ã¿ãŒã¯å€ãã®äœæ¥ãè¡ãå¿ èŠããããŸãã ããã«ã¯ãããã°ã©ã èªäœã«äžããããå¯èœæ§ã®ãããããå€ãã®ããã»ããµæéããããããã®ãããå®è¡ãé ããªããŸãã
- é ä¿¡ã®äžæåæ¢ïŒããã°ã©ã ãšåæã«å®è¡ãããŠããã³ã¬ã¯ã¿ãŒã¯ãJavaã®äžçã§ã¯ã³ã³ã«ã¬ã³ãã¢ãŒãé害ãšåŒã°ãããã®ã«ã€ãªããå¯èœæ§ããããŸãã ãã®å Žåãã©ã³ã¿ã€ã ã¯ããã°ã©ã ãå®å šã«åæ¢ããã¯ãªãŒã³ã¢ãããµã€ã¯ã«ãå®äºãããŸã§åŸ æ©ããå¿ èŠããããŸãã ãããã£ãŠãGoã®äœæè ãäžæåæ¢ãéåžžã«çããšäž»åŒµããå Žåãããã¯ã³ã¬ã¯ã¿ãŒãããã°ã©ã ã«å¯Ÿå¿ããã®ã«ååãªããã»ããµãŒæéãæã£ãŠããå Žåã«ã®ã¿é©çšãããŸãã ããã«ã Goã³ã³ãã€ã©ã«ã¯ãã¹ã¬ããã確å®ãã€è¿ éã«äžæåæ¢ããæ©èœããããŸãã ã ã€ãŸããäžæåæ¢ã®æéã¯å®è¡äžã®ã³ãŒãã«å€§ããäŸåããŸãïŒããšãã°ãåäžãŽã«ãŒãã³ã§å€§ããªblobãbase64ã§ãã³ãŒããããšãäžæåæ¢ãå¢å ããå¯èœæ§ããããŸãïŒã
- ããŒãã®åé·æ§ïŒããŒãã³ã°ãšã¯ãªãŒãã³ã°ã®å©ããåããŠããŒãå ã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®é床ãèæ ®ãããšããžã§ã€ã³ãå®è¡ã¢ãŒãã®é害ã«ééããªãããã«ããªã¶ãŒãã«å€ãã®ã¹ããŒã¹ãå¿ èŠã§ãã ããã©ã«ãã§ã¯ãGoã¯100ïŒ ã®åé·æ§ãæäŸããŸããã€ãŸããããã°ã©ã ã«å¿ èŠãªã¡ã¢ãªéã2åã«ãªããŸãã
äžèšã®æ¬ ç¹ã«ã€ããŠè©±ããŠãã1ã€ã®æçš¿ããã®æç²ã次ã«ç€ºããŸãã
ãµãŒãã¹1ã¯ãµãŒãã¹2ãããå€ãã®ã¡ã¢ãªãå²ãåœãŠããããå®å šåæ¢ã®äžæåæ¢ã¯é·ããªããŸãã ãã ããäž¡æ¹ã®ãµãŒãã¹ã«ã€ããŠãåæ¢äžæåæ¢ã®çµ¶å¯Ÿæéã¯æ¡éãã«ççž®ãããŸãã äž¡æ¹ã®ãµãŒãã¹ããªã³ã«ããåŸãã³ã¬ã¯ã¿ãŒã«ããããã»ããµãŒæéã®æ¶è²»ãçŽ20ïŒ å¢å ããã®ã芳å¯ããŸããã
ãã®å ŽåãGoã§ã®äžæåæ¢ã®é·ãã¯æ¡éãã«æžå°ããŸããããã³ã¬ã¯ã¿ãŒã®ã¹ããŒããŠã³ãåå ã§ãã ããã¯æ£åœãªåŠ¥åæ¡ãšèŠãªãããšãã§ããŸããããããšãäžæåæ¢æéã¯ãã§ã«éåžžã«çãã£ãã®ã§ããããïŒ èè ã¯èšããªãã£ãã
ãã ããäžæåæ¢ãæžããããã«éã®èœåãé«ããããšã¯ãã¯ãæå³ããªããªãç¹ããããŸãã ãµãŒããŒã®äžæåæ¢ã10ããªç§ãã1ããªç§ã«ççž®ãããå ŽåããŠãŒã¶ãŒã¯ããã«æ°ä»ããŸããïŒ ãããŠããã®ãããªåæžã®ããã«ããŒããŠã§ã¢ãªãœãŒã¹ã2åã«ããå¿ èŠãããå Žåã¯ã©ããªããŸããïŒ
Goã¯ã垯åå¹ ã®ããã«äžæåæ¢ã®æéãæé©åããŸãããã®ãããäžæåæ¢ãå°ãæžããããã«ãããã°ã©ã ã1æ¡é ããããããã«èŠããŸãã
Javaãšã®æ¯èŒ
HotSpot Javaä»®æ³ãã·ã³ã«ã¯ãããã€ãã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¢ã«ãŽãªãºã ããããŸãã ã³ãã³ãã©ã€ã³ããéžæã§ããŸãã ãã©ã³ã¹ãç¶æããããšãããããGoã»ã©äŒæ¢æéãçãããããšãããã®ã¯ããŸããã 劥åã®åœ±é¿ãæããããã«ãç°ãªãã³ã¬ã¯ã¿ãŒãåãæ¿ããŠãã¢ã«ãŽãªãºã ãäºãã«æ¯èŒã§ããŸãã ã©ããã£ãŠïŒ ã³ã³ãã€ã«ã¯å®è¡æã«å®è¡ããããããããã°ã©ã ã®åçŽãªåèµ·åã䜿çšããŸããããã«ãããããŸããŸãªã¢ã«ãŽãªãºã ã«å¿ èŠãªããŸããŸãªéå£ãã³ã³ãã€ã«ããå¿ èŠã«å¿ããŠã³ãŒãå ã§æé©åã§ããŸãã
ææ°ã®ã³ã³ãã¥ãŒã¿ãŒã§ã¯ãããã©ã«ãã®äžä»£ããŒã¹ã®ã³ã¬ã¯ã¿ãŒã䜿çšãããŸãã ãããã¿ã¹ã¯çšã«äœæãããæåã¯äžæåæ¢ã®é·ãã«æ³šæãæã£ãŠããŸããïŒã³ãã³ãã©ã€ã³ã§èšå®ã§ããŸãïŒã ããã©ã«ãã®ã³ã¬ã¯ã¿ãŒãéžæã§ãããããå€ãã®äººã ã¯Javaãç²æ«ãªã¬ããŒãžã³ã¬ã¯ã¿ãŒã ãšèããŠããŸãïŒJavaã¯ãããã«äœ¿çšã§ããããã«ãã¡ã¢ãªã®åé·æ§ãæå°éã«æããŠãã§ããã ãéãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããšããäžæåæ¢ã«ã€ããŠæ°ã«ããŸããã
äžæåæ¢ã®æéãççž®ããå¿ èŠãããå Žåã¯ã䞊è¡ããŒãã³ã°ããã³ã¯ãªãŒãã³ã°ã䜿çšããã³ã¬ã¯ã¿ãŒïŒåæããŒã¯/ã¹ã€ãŒãã³ã¬ã¯ã¿ãŒãCMSïŒã«åãæ¿ããããšãã§ããŸãã ããã¯Goã䜿çšãããã®ã«æãè¿ããã®ã§ãã ãã ããããã¯äžä»£ããŒã¹ã®ã¢ã«ãŽãªãºã ã§ãããããäžæåæ¢ã¯Goãããé·ããªããŸãããªããžã§ã¯ãã移åããŠãããããè¥ãäžä»£ã¯äžæåæ¢äžã«å§çž®ãããŸãã CMSã«ã¯2çš®é¡ã®äžæåæ¢ããããŸãïŒçãçŽ2ã5ããªç§ãšããã確å®ãªçŽ20ããªç§ã§ãã CMSã¯é©å¿çã«åäœããŸããåæã«ïŒåæïŒå®è¡ããããããïŒGoã®ããã«ïŒãã€éå§ããããæ³å®ããå¿ èŠããããŸãã Goã¯ããŒãã®åé·æ§ãæ§æããããã«èŠæ±ããŸãããCMSã¯å®è¡æã«èªå·±é©å¿ããåæå®è¡ãšã©ãŒãåé¿ããããšããŸãã ããŒãã®ã»ãšãã©ã¯éåžžã®ã¿ã°ä»ããšã¯ãªãŒãã³ã°ã䜿çšããŠåŠçããããããããŒãã®æçåã«ããåé¡ãšãã¬ãŒããçºçããå¯èœæ§ããããŸãã
Javaã®ã³ã¬ã¯ã¿ãŒã®ææ°äžä»£ã¯ãG1ãšåŒã°ããŸãïŒã¬ããŒãžãã¡ãŒã¹ãããïŒã ããã©ã«ãã§ã¯ãJava 9以éã§åäœããŸããäœæè ã¯ãã§ããéãæ±çšçã«ããããšããŸããã ã»ãšãã©ã®å Žåãåæã«å®è¡ãããäžä»£ã«åºã¥ããŠïŒäžä»£å¥ïŒæå šäœãå§çž®ããŸãã äž»ã«èªå·±èª¿æŽã ãããã圌ã¯ããªããæããã®ïŒãã¹ãŠã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒïŒãç¥ããªãããã劥åç¹ã調æŽããããšãã§ããŸãïŒå²ãåœãŠãã¡ã¢ãªã®æ倧éãšäžæåæ¢ã®ãµã€ãºãããªç§ã§æå®ããã ãã§ãæ®ãã®ã¢ã«ãŽãªãºã ã¯èŠä»¶ã«åãããŠèª¿æŽãããŸãã ããã©ã«ãã§ã¯ãäžæåæ¢æéã¯çŽ100ããªç§ã§ãããããã£ãŠãäžæåæ¢æéãèªåã§åæžããªãå Žåãã¢ã«ãŽãªãºã ããããè¡ãããšãæåŸ ããªãã§ãã ãããG1ã¯ã¢ããªã±ãŒã·ã§ã³ã®é床ãåªå ããŸãã
äžæåæ¢ã¯å®å šã«äžè²«ããŠããããã§ã¯ãããŸããïŒã»ãšãã©ã¯éåžžã«çãïŒ1ããªç§æªæºïŒããããŒãã®å§çž®ã«é¢é£ããããã€ãã®é·ãïŒ50ããªç§ä»¥äžïŒããããŸãã G1ã¯éåžžã«ããã¹ã±ãŒãªã³ã°ããŸãã ãã©ãã€ããµã€ãºã®ããŒãã§äœ¿çšãã人ã®ã¬ãã¥ãŒããããŸãã G1ã«ã¯ãããŒãäžã®æååã®éè€æé€ãªã©ã®åªããæ©èœããããŸãã
æåŸã«ãShenandoahãšåŒã°ããå¥ã®æ°ããã¢ã«ãŽãªãºã ãéçºãããŸããã OpenJDKã«å«ãŸããŠããŸãããRed HatïŒãããžã§ã¯ãã¹ãã³ãµãŒïŒããã®ç¹å¥ãªJavaãã«ãã®äœ¿çšãéå§ãããŸã§ãJava 9ã«ã¯è¡šç€ºãããŸããã ãã®ã¢ã«ãŽãªãºã ã¯ãããŒãã®ãµã€ãºã«é¢ä¿ãªãäžæåæ¢ã®æéãæå°éã«æããããã«èšèšãããŠãããåæã«å§çž®ãããŸãã çæã«ã¯ãé«ãããŒãåé·æ§ãšããã€ãã®éå£ããããŸããã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«ãªããžã§ã¯ãã移åããã«ã¯ããã€ã³ã¿ãŒãåæã«èªã¿åããã¬ããŒãžã³ã¬ã¯ã¿ãŒãšå¯Ÿè©±ããå¿ èŠããããŸãã ãã®æå³ã§ãã¢ã«ãŽãªãºã ã¯Azulã®ããã³ã¹ããããã³ã¬ã¯ã¿ãŒã«äŒŒãŠããŸãã
ãããã«
ãã®èšäºã®ç®çã¯ãä»ã®èšèªãããŒã«ã䜿çšããããã«èª¬åŸããããšã§ã¯ãããŸããã ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¯ãäœå幎ãç§åŠè ãããã°ã©ããŒã®è»éã«ãã£ãŠç 究ãããŠããã éåžžã«é£ããé£ããåé¡ã§ãã ãããã£ãŠã誰ãæ°ä»ããŠããªãç»æçãªæ±ºå®ãçã£ãŠãã ããã ã»ãšãã©ã®å Žåããããã¯ãåŸã§æããã«ãªãçç±ã®ããã«ä»äººã«ãã£ãŠåé¿ããããåã«å¥åŠãŸãã¯ç°åžžãªåœè£ 劥åã§ãã
ãŸããä»ã®ãã¹ãŠã®ãã©ã¡ãŒã¿ãŒã«ããäžæåæ¢ã®æéãæå°éã«æãããå Žåã¯ãGoã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒã«é£çµ¡ããŠãã ããã