1. GoèšèªãšRustã®æŠèŠ
1.1 GoèšèªïŒèµ·æºãšç¹åŸŽ
Googleã«ãã£ãŠéçºãããGoèšèªã¯ããªãŒãã³ãœãŒã¹ã®ããã°ã©ãã³ã°èšèªã§ããåœåããããã°ã©ããŒã®çç£æ§åäžãçããã·ã³ãã«ãã€å¹ççãªèšèšãè©äŸ¡ãããŠããŸãããã®ã³ãŒãã¯èŠèªæ§é«ãçµç¹åå¯èœã§ãç¹ã«å€§èŠæš¡ãªã·ã¹ãã ã«ãããéçºã容æã«ãªããšãããŠããŸãã
Goèšèªã®ç¹åŸŽçãªç¹ã¯ãéçåä»ãããããŠãããªããæè»ãªæ§æãæããŠããããšã§ããããã«ããŽãåéæ©èœãæã€ããšã§ã¡ã¢ãªç®¡çã容æã«ãªã£ãŠããŸãããã®ä»ã«ããè±å¯ãªæšæºã©ã€ãã©ãªãåããŠãããå€ãã®æ©èœãããã«å©çšå¯èœãšãªã£ãŠããŸãã
ãŸããGoèšèªã¯ãã«ãã³ã¢æ§èœãæ倧éåŒãåºãããšãç®æããå¹³è¡åŠçã容æã«æžãããããªä»çµã¿ãæã€ãgoroutineãã®äœ¿çšãæšå¥šãããŠããŸãã
1.2 RustïŒèµ·æºãšç¹åŸŽ
Mozillaã«ããéçºãããŠããRustã¯ããã«ããã©ãã€ã ã®ã·ã¹ãã ããã°ã©ãã³ã°èšèªã§ããå®å šæ§ãé床ã䞊è¡æ§ã«ãã©ãŒã«ã¹ããŠéçºãããŠãããã·ã¹ãã ã¬ãã«ã§ã®ããã°ã©ãã³ã°ãå¯èœã«ããŠããŸãã
Rustã®æ倧ã®ç¹åŸŽã¯ãåã·ã¹ãã ãšæææš©ã¢ãã«ã«ãããªãœãŒã¹ç®¡çãè¡ããããã¡ã¢ãªå®å šæ§ããã«ãã¹ã¬ããç°å¢ã§ä¿èšŒããŸãããŸããéçåä»ããäŸå€å®å šãªã©ãå®å šãªã³ãŒãã®èšè¿°ã匷åããäžçŽè ããäžçŽè åãã®æ©èœãè±å¯ã«ååšããŠããŸãã
ãŸãããzero-cost abstractionsãã®ååã«åŸããé«ã¬ãã«ã®æœè±¡çãªè¡šçŸãè¡ã£ããšããŠãããã©ãŒãã³ã¹ãæãªãããããšã¯ãããŸãããããã«ãã£ãŠãRustã¯ã·ã³ã°ã«ã³ã¢ã®éçæ§èœãåŒãåºãèœåãæã€ãšãããŠããŸãã
1.3 GoèšèªãšRustã®äžŠè¡æ§ãšããã©ãŒãã³ã¹
GoèšèªãšRustã¯ãããããã®èšèªèšèšã«ããæ§èœå·®ãèŠãããŸããGoèšèªã¯èšèªèªäœã®æã€ããã掻ããã·ã¹ãã ã®çšŒåç¶æ³ã«å¿ãããã«ãã³ã¢æ§èœãçºæ®ããŸããäžæ¹ã®Rustã¯ããªãŒããŒãããã極åæé€ããåäžã³ã¢ã§ã®æ§èœè¿œæ±ã«æ³šåããŠããŸãã
Goèšèªã®äžŠè¡æ§ã¯ãgoroutineããšãã軜éã¹ã¬ãããçšããããšã§äžŠè¡åŠçãç°¡æœã«èšè¿°ã§ããŸããäžæ¹ãRustã®äžŠè¡æ§ã¯ãFearless Concurrencyããç®æããé£è§£ãªãã«ãã¹ã¬ããåŠçã§ãã¡ã¢ãªå®å šãä¿èšŒããããšã匷ãæèããèšèšã«ãªã£ãŠããŸãã
äžæ¹ãããã©ãŒãã³ã¹ã«ã€ããŠã¯ãGoèšèªãšRustã§ã¯ã¢ãããŒãã®å·®ãæããã§ããGoèšèªã¯éçºå¹çãšå®è¡é床ã®ãã©ã³ã¹ãéèŠããªããèšèšãããŠããŸããRustã¯ã·ã¹ãã ããã°ã©ãã³ã°ã«çŠç¹ãåœãŠãç¹ã«ãªãœãŒã¹å¶çŽã®å³ããç°å¢ã§ãå¹ççã«åäœããããšãéèŠããŠããŸãã
1.4 GoèšèªãšRustã®ããŒã¿åãšæ§æ
Goèšèªã®ããŒã¿åã¯ããªããã£ãã¿ã€ããšæ§é äœïŒstructïŒãäžå¿ã§ãç¶æ¿ãããåæãæšå¥šããŠããŸãããã®åæã«ãã£ãŠããœãããŠã§ã¢èšèšã®èªç±åºŠãå¢ããæè»æ§ãåäžããŸããäžæ¹ãRustã¯å€æ§ãªããŒã¿åãå«ãè±å¯ãªã¿ã€ãã·ã¹ãã ãæã¡ãé¢æ°åããã°ã©ãã³ã°ãšãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®è¯ããèåãããŠããŸãã
Goèšèªã®æ§æã¯ã·ã³ãã«ã§èªã¿ããããå°èŠæš¡ãã倧èŠæš¡ãããžã§ã¯ããŸã§å¯Ÿå¿ã§ããããèšèšãããŠããŸãããã®ã·ã³ãã«ãããã³ãŒãã®å¯èªæ§ãä¿å®æ§ãé«ããŠããŸããäžæ¹ãRustã®æ§æã¯è±å¯ãªæ©èœãšå®å šæ§ãããã«åŒ·åããããã«è€éåããŠãããäžéšã®éçºè ããã¯åŠç¿æ²ç·ã®æ¥ããææãããããšããããŸãã
ãããããã®ç¹æ§ã掻ããã°Rustã¯é«åºŠãªã·ã¹ãã ãå®å šã«èšèšããããšãå¯èœã«ãªã.å æ¬çãªåæšè«æ©èœããã¿ãŒã³ãããã³ã°ãªã©ããã©ãã€ã ãè¶ããæ©èœã®æäŸããã®ç¹åŸŽãšèšããã§ããããGoèšèªãšRustãããããã«ã¯ãã®ç¬èªæ§ãšç¹è²ããããããããã®ç¶æ³ãç®çã«é©ããèšèªãéžã¶ããšãéèŠã§ãã
2. GoèšèªãšRustã®ãã«ãã³ã¢æ§èœæ¯èŒ
çŸä»£ã®ã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã§ã¯ããã«ãã³ã¢ããã»ããµãŒãäžè¬çã§ãããã®ãããããã°ã©ãã³ã°èšèªããã«ãã³ã¢æ§èœãã©ã®çšåºŠåŒãåºãããããŸããããã©ã®ããã«ã³ãŒãã£ã³ã°ãããã¯ãããã©ãŒãã³ã¹ã®èŠ³ç¹ããéåžžã«éèŠãªèŠçŽ ãŒãšãªããŸããããã§ã¯ãGoèšèªãšRustãã©ã®ããã«ãã«ãã³ã¢æ§èœãåºãã®ããèŠãŠãããŸãããã
2.1 Goèšèªã®ãã«ãã³ã¢æ§èœãšgoroutine
ãŸãã¯ãGoogleãéçºããGoèšèªã§ããGoèšèªã®æ倧ã®ç¹é·ã¯ãªããšãã£ãŠãããã«ãã³ã¢æ§èœãã·ã³ãã«ã«æžãããšãã§ããç¹ã«ãããŸããGoèšèªã§ã¯ãå¹³è¡åŠçã¹ã¬ããã¢ãã«ã§ããgoroutineã®äœ¿çšãæšå¥šãããŠããŸããããã«ãããè€æ°ã®ã¿ã¹ã¯ã䞊è¡ããŠåŠçããããšã«ããããã©ãŒãã³ã¹ã®åäžãæåŸ ã§ããŸãã
ããã«ãgoroutineã¯è»œéã§ããããœãŒã¹ã³ãŒãå ã§ç°¡åã«çæãæäœããããšãå¯èœã§ããããã¯ããã°ã©ããŒãèœççã«ã³ãŒãã£ã³ã°ãé²ããããããšãæå³ããçµæçã«ã¯ããå¹ççãªãœãããŠã§ã¢ã®éçºãå¯èœã«ãªããŸãã
ããããã·ã³ãã«ãªããããããã·ãã¥ãšãŒã·ã§ã³ã§æé©ãªããã©ãŒãã³ã¹ãçºæ®ããããã§ã¯ãããŸãããç¹ã«ã现ããåŠçã®æé©åãå¿ èŠãªå Žé¢ã§ã®ããã©ãŒãã³ã¹ãæ±ããããå Žåããã®éçãèŠããŠããŸãã
2.2 Rustã®ãã«ãã³ã¢æ§èœãšäžŠè¡åŠçã¢ãããŒã
次ã«ãRustã®ãã«ãã³ã¢æ§èœã«ã€ããŠèŠãŠãããŸããããRustã§ã¯ããã詳现ãã€è€éãªèšè¿°ãéããŠãã«ãã³ã¢æ§èœãåºãããšãå¯èœã§ããããã«ãããé«åºŠãªæé©åãè¡ããã·ã³ã°ã«ã³ã¢ã®éçæ§èœãåŒãåºãããšãå¯èœãšãªããŸãã
ãŸããRustã䞊è¡åŠçã«å¯ŸããŠæ¡çšããŠããã¢ãããŒãã¯ãã¡ã¢ãªã®å®å šæ§ãä¿èšŒããªãã䞊è¡ã»äžŠåã¿ã¹ã¯ãå¹ççã«åŠçããããšãç®æããŠããŸããããã¯ãã·ã¹ãã ã¬ãã«ã®ããã°ã©ãã³ã°ããé«ããã©ãŒãã³ã¹ãæ±ããããé åã§ã®éçºã«ãããŠã倧ããªåãšãªããŸãã
ãããããã®è€éãããåŠç¿æ²ç·ãæ¥ã§ãããGoèšèªãšæ¯èŒãããšååŠè ãæãåºãã«ãããšããåŽé¢ãç¡èŠã§ããŸããã
2.3 GoãšRustã®ãã«ãã³ã¢ããã©ãŒãã³ã¹æ¯èŒ
䞊è¡åŠçææ³ã®éãããããGoèšèªãšRustã®ãã«ãã³ã¢æ§èœã®éãã¯æ確ã§ããGoèšèªã¯ãã·ã³ãã«ãªèšè¿°ã§æ°è»œã«ãã«ãã³ã¢æ§èœã享åã§ããç¹ãé åã§ããäžæ¹ã§ãRustã¯è©³çŽ°ãªå¶åŸ¡ãšãªãŒããŒãããã®æé€ã«ããæ§èœã®æ¥µéãè¿œæ±ã§ããŸãã
ããããå¿ èŠãªããã©ãŒãã³ã¹ãéæããããã«ã¯åã«èšèªã®ç¹æ§ãç解ããã ãã§ãªããå ·äœçãªãŠãŒã¹ã±ãŒã¹ãèŠä»¶ããªãœãŒã¹ãªã©ã«ãé æ ®ããå¿ èŠããããŸãããã®ãããã©ã¡ãã®èšèªãåªããŠããã決å®ã¥ããã®ã¯é£ããã§ãã
GoãšRustã®äž¡æ¹ãæäŸãããã«ãã³ã¢æ§èœã®ç¹é·ãç解ããããããã®çšéã«å¿ããé©åãªéžæãããããšãéèŠã§ãã
2.4 ããã©ãŒãã³ã¹ãã¬ãŒããªãïŒGo vs Rust
æçµçã«ãGoèšèªãšRustã®éã§éžæãããéã«ã¯ãåã ã®ç¹æ§ãšãã¬ãŒããªããç解ããããšãæ±ããããŸããGoèšèªã¯ã·ã³ãã«ãªèšèªèšèšãšå¹ççãªãã«ãã³ã¢æ§èœãé åã§ãããçµæãšããŠçŽ°ããå¶åŸ¡ãé£ãããšãããã¡ãªããããããŸãã
äžæ¹ãRustã¯ãã«ãã³ã¢æ§èœãæ倧éã«åŒãåºãèœåãšã¡ã¢ãªã»ãŒãã®äžŠè¡åŠçèšèšãç¹åŸŽã§ãããè€éãªèšèªèšèšã«ããåŠç¿ã³ã¹ããé«ããªããšãããã¬ãŒããªããæã¡ãŸãã
ãããããã¬ãŒããªããç解ããèªèº«ã®ãããžã§ã¯ãã«é©ããèšèªãéžæããããšããå¹ççãªéçºãé²ããäžã§éèŠãšãªããŸãããã®ãããäž¡èšèªã®ç解ãæ·±ããèªèº«ã®ããŒãºã«æãåã£ãéžæãããããšã匷ããå§ãããŸãã
3. ãšã©ãŒæ€åºã®è©³çŽ°æ¯èŒïŒGoèšèªãšRust
ããã§ã¯ãéçºè ããšã©ãŒãã³ããªã³ã°ãã©ã®ããã«è¡ããããŸãåèšèªãã©ã®ãããªã»ãŒããã£ãæäŸããŠããã®ããGoèšèªãšRustã®è©³çŽ°ãªæ¯èŒãè¡ããŸãã
èšèªãæäŸããåã·ã¹ãã ãã³ã³ãã€ã©ã®æ©èœã«ããã誀ã£ãã³ãŒãããšã©ãŒãåŒãèµ·ããããšãäºæž¬ããã®ã«åœ¹ç«ã¡ãŸãã ãããã®è©³çŽ°ã«ã€ããŠèŠãŠãããŸãããã
3.1 Goèšèªã®ã³ã³ãã€ã«æãšã©ãŒæ€åº
Goèšèªã¯ãã³ã³ãã€ã«æã«å šãŠã®ãšã©ãŒãæŽãåºãä»çµã¿ãæããŠããŸãã
Goã®ã³ã³ãã€ã©ã¯ãå®è¡åã«ãã«ãã«ããå¿ èŠãšãããã¹ãŠã®ãœãŒã¹ãã¡ã€ã«ãé 次èªã¿èŸŒãããããšã©ãŒãååšããã°ãã®æç¹ã§ã³ã³ãã€ã«ãåæ¢ããŸãã
ãã®æ©èœã«ããããããžã§ã¯ãã®åæ段éã§å€ãã®ãšã©ãŒãçºèŠããããšã§ãéçºè ã¯æ©æã«åé¡ã解決ã§ãããšã©ãŒæ€åºãšä¿®æ£ã®ããã»ã¹ãå¹çåããŸãã
3.2 Rustã®ã³ã³ãã€ã«æãšã©ãŒæ€åºãšå®å šæ§ä¿èšŒ
Rustã¯ãå®è¡æã®ãªãŒããŒããããªãã«ã³ã³ãã€ã«æã«å³æ Œãªå®å šæ§æ€æ»ãè¡ãããšãç¹åŸŽãšããŠããŸãã
Rustã®ã³ã³ãã€ã©ã¯ãæªåæåã®å€æ°ã空ãã€ã³ã¿åç §ããããã¡ãªãŒããŒãããŒãåçš®ã®ã¡ã¢ãªãšã©ãŒãå«ãå€æ°ã®åžžç¿çãªãã°ãé²ããªãã±ãŒã¹ããããŸããã
ãã®ãããªãã§ãã¯ã¯ãã¡ã¢ãªã»ãŒãã®ã·ã¹ãã èšèšã®äžéšã§ãããç¹å®ã®åã®ãšã©ãŒã¯èš±å®¹ãããŸããã
3.3 ãšã©ãŒãã³ããªã³ã°ïŒGoãšRustã®éã
Goã¯ããšã©ãŒãæ瀺çãªå€ãšããŠè¿ãèšèšãç¹åŸŽãšããŠããŸããããã«ãããããããã®é¢æ°ãã©ã®ãããªãšã©ãŒãè¿ãå¯èœæ§ãããããæ確ã«ãªãããšã©ãŒãã³ããªã³ã°ãäžè²«æ§ã®ãããã®ã«ã§ããŸãã
äžæ¹ãRustã§ã¯ãResultãåãçšããŠãšã©ãŒãã³ããªã³ã°ãè¡ããŸããããã«ãããé¢æ°ã¯æåæãšãšã©ãŒæã®äž¡æ¹ã®å¯èœæ§ãæ瀺çã«è¡šçŸããããšãã§ããŸãã
ããã«ãRustã®ãïŒãæŒç®åã䜿çšããããšã§ããšã©ãŒãã³ããªã³ã°ãç°¡åã«ããã³ãŒãããã£ãããããããšãå¯èœã§ãã
3.4 ã¡ã¢ãªã»ãŒããã£ïŒGo vs Rust
äž¡æ¹ã®èšèªãšãã«ç°ãªãã¢ãããŒãã§ã¡ã¢ãªã»ãŒããã£ãæäŸããŸããGoã¯ã¬ãŒããŒãžã³ã¬ã¯ã·ã§ã³ãåããŠãããéçºè ã¯ã¡ã¢ãªç®¡çã«ã€ããŠããŸãèããå¿ èŠããããŸããã
äžæ¹ãRustã§ã¯æææš©ãšã©ã€ãã¿ã€ã ãšããæŠå¿µãå°å ¥ããŠããŸããããã«ãããRustã¯éçºè ã«å¯ŸããŠå®å šãªã¡ã¢ãªç®¡çã®ã³ã³ãããŒã«ãæäŸããŸãã
ãã®çµæãRustã®ã¡ã¢ãªã»ãŒããã£ã¯éåžžã«åŒ·åã§ãããã·ã¹ãã ã¬ãã«ã®ããã°ã©ã ãå®å šã«å®è¡ããããšãå¯èœãªã®ã§ãã
4. GoèšèªãšRustã®é©çšã±ãŒã¹
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãGoèšèªãšRustã®ããããã®é©çšã±ãŒã¹ã«ã€ããŠè©³ããæ¢ããŸããéçºã®çŸå Žã§å ·äœçã«ã©ã®ãããªçšéã§ãããã®èšèªã掻çšãããŠããããããããã®é·æã掻ãããŠããã«äœ¿ãåããã¹ãããç解ããããšã§ãããªãèªèº«ã®ãããžã§ã¯ãã§ãæé©ãªéžæãã§ããããã«ãªãããšã§ãããã
4.1 DevOpsã«ãããGoèšèªã®å©çš
Goèšèªã¯DevOpsã«ãããéçºã«é©ããèšèªãšããŠãå€ãã®éçºçŸå Žã§æŽ»çšãããŠããŸããGoã®ç¹åŸŽã®äžã€ã§ããã·ã³ãã«ãªèšèªèšèšã¯ãéçºè ãããã°ã©ã ãå¹æçã«æžãããã«å¿ èŠãªæéãæžããããšãã§ããŸããããã¯DevOpsã®ç°å¢äžã§éåžžã«æçšã§ãããéçºè èªèº«ãéçšç°å¢ã管çããªããéçºãé²ããå¿ èŠãããããã§ãã
ãŸããã¹ã¯ãªããèšèªã§æ§ç¯ãããã·ã¹ãã ã®ããã«ããã¯åŠçãGoã§çœ®ãæããäºäŸãå¢ããŠããŸããããã¯ãGoãæã€é«ãå®è¡é床ãšã·ã³ãã«ãªèšè¿°æ³ããæ¢åã®ã·ã¹ãã ã«å¯Ÿããæ§èœæ¹åã«å¯äžããããã§ãã
ãã®ãããDevOpsç°å¢ã«ãããéçºã§ã¯Goã®æ¡çšãé©ããŠãããšèšããã§ãããã
4.2 ãµãŒã/ã¯ã©ã€ã¢ã³ãããã°ã©ã éçºã§ã®Rust
Rustã¯ã倧èŠæš¡ãªãµãŒãã»ã¯ã©ã€ã¢ã³ãããã°ã©ã ã®éçºã«ãããŠãã®åãçºæ®ããŸããã¡ã¢ãªå®å šæ§ã確ä¿ããªããé«ãæ§èœãçºæ®ããRustã¯ã倧èŠæš¡ãªããã°ã©ã ã®å®å šæ§ãšå¹çæ§ãäž¡ç«ãããããšãã§ããŸãã
Rustã®ã³ã³ãã€ã«æã®å®å šæ§æ€æ»æ©èœã¯ã倧èŠæš¡éçºã«ããããã°ã®æ©æçºèŠã»ä¿®æ£ã«å¯äžããŸããããã¯ããããžã§ã¯ãã®èŠæš¡ã倧ãããªãã»ã©éèŠãšãªãæ©èœã§ãRustã®æ¡çšãåŸæŒãããèŠå ãšãªã£ãŠããŸãã
ãããã£ãŠã倧èŠæš¡ãªãµãŒãã»ã¯ã©ã€ã¢ã³ãããã°ã©ã ã®éçºã«ã¯Rustã®å©çšãæšå¥šãããŸãã
4.3 GoãšRustã®ããã¯ãšã³ãéçºã«ãããéã
ããã¯ãšã³ãéçºã«ãããŠã¯ãGoãšRustã®èšèªç¹æ§ããèšãã°ãããããç°ãªãç¹æ§ãæã£ãŠããŸããGoã¯ã·ã³ãã«ããšé«ãçç£æ§ãé«åºŠãªäžŠè¡åŠçèœåãæã€äžæ¹ãRustã¯é«ãããã©ãŒãã³ã¹ãšå®å šæ§ãå ŒãåããŠããŸãã
ãããã£ãŠãéçºã®èŠæš¡ãèŠæ±ããæ§èœãã»ãã¥ãªãã£èŠä»¶çã«ãããããã¯ãšã³ãã®éçºèšèªãšããŠéžæãã¹ãèšèªã¯å€ããã§ãããã
ãã®éžæã¯ãããžã§ã¯ãã®ç¹æ§ãããŒã ã®ã¹ãã«ã»ããã«å€§ããå·Šå³ããã絶察çãªçãã¯ååšããªããããçšéã«å¿ããŠé©åãªèšèªãéžæããããšãéèŠã§ãã
4.4 äœã¬ã€ã€ãŒåãã®ããã°ã©ãã³ã°ïŒGo vs Rust
äœã¬ã€ã€ãŒåãã®ããã°ã©ãã³ã°ã«ãããŠãRustã¯ãã®é«ãããã©ãŒãã³ã¹ãšã¡ã¢ãªå®å šæ§ãããä»ã®èšèªãèŠæãšãããšãªã¢ã§ãåãçºæ®ããŸããäžæ¹ã§ãGoããã®ã·ã³ãã«ãªèšè¿°æ³ãããã·ã¹ãã ããã°ã©ãã³ã°ãªã©ã«ãããŠæŽ»çšãããŸãã
ããããRustã¯ã³ã³ãã€ã«æã®å³æ Œãªå®å šæ§æ€æ»ãäœã¬ã€ã€ãŒã§ã®ããã°ã©ãã³ã°ã«ãããŠæå©ãšãªãåŸãŸããããã¯ãã¡ã¢ãªç®¡çããã«ãã¹ã¬ããåŠçãšãã£ãè€éãªèª²é¡ã«å¯ŸããRustãæå¹ãªè§£æ±ºçãæäŸããããã§ãã
ãã®ãããäœã¬ã€ã€ãŒã§ã®ããã°ã©ãã³ã°ã«ãããŠã¯Rustã®äœ¿çšãæšå¥šãããŸããããããŸã§ç¶æ³ãããŒãºã«ãã£ãŠé©åãªèšèªãéžæããããšãéèŠã§ãã
5. GoèšèªãšRustã®ã³ãã¥ããã£ãšãšã³ã·ã¹ãã
ã¢ãã³ããã°ã©ãã³ã°èšèªã«å¿ èŠãªèŠçŽ ã®äžã€ã«ã掻çºãªã³ãã¥ããã£ãšè±å¯ãªãšã³ã·ã¹ãã ããããŸããéçºè ãäœããã®åé¡ã«ééããéã«ã¯ãå°éç¥èãå ±æããã³ãã¥ããã£ãšãæ¢åã®ãœãããŠã§ã¢ã³ã³ããŒãã³ãã掻çšã§ããå å®ãããšã³ã·ã¹ãã ããµããŒããšãªããŸããããã§ã¯GoèšèªãšRustã®ã³ãã¥ããã£ãšãšã³ã·ã¹ãã ã«ã€ããŠèŠãŠãããŸãããã
5.1 Goèšèªã®ãšã³ã·ã¹ãã ãšã³ãã¥ããã£ãµããŒã
Goèšèªã¯GoogleãèåŸã«ãããããéåžžã«æŽ»çºãªã³ãã¥ããã£ãååšããŸããGoèšèªã®ãšã³ã·ã¹ãã ã«ã¯ãWebãã¬ãŒã ã¯ãŒã¯ãããŒã¿ããŒã¹æ¥ç¶ãè€æ°ãã©ãããã©ãŒã 察å¿ãªã©ãæ§ã ãªã©ã€ãã©ãªãšããŒã«ãæã£ãŠããŸããããã«ãããåçš®éçºã¿ã¹ã¯ã®å¹çåãå³ãããŸãã
ãŸããGoèšèªã®ã³ãã¥ããã£ã¯ãçšèªéãFAQããã¥ãŒããªã¢ã«ã補åæ¡å ãªã©ãè±å¯ãªåŠç¿ãªãœãŒã¹ãæäŸããŠããŸããStackOverflowãGitHubãRedditãªã©ã®ãã©ãããã©ãŒã ã«ãããŠããGoèšèªã«é¢ããã¢ã¯ãã£ããªãã£ã¹ã«ãã·ã§ã³ãè¡ãããŠãããæ°ããªéçºè ãžã®ãµããŒãäœå¶ãæŽã£ãŠããŸãã
5.2 Rustã®ãšã³ã·ã¹ãã ãšã³ãã¥ããã£ãµããŒã
RustããŸãã掻çºãªã³ãã¥ããã£ã«æµãŸããŠããŸããRustã®ãšã³ã·ã¹ãã ã¯é次æé·ããŠãããã·ã¹ãã ããã°ã©ãã³ã°ã®ããã®å€æ©èœãªã©ã€ãã©ãªãããŒã«ãè±å¯ã«çšæãããŠããŸãã
ã³ãã¥ããã£é¢ã§ã¯ãRustã¯ãã®é«ãå®å šä¿éæ§ãšæé«ã®ããã©ãŒãã³ã¹ãæã€èšèªãšããŠãå€ãã®éçºè ããæ¯æãåããŠããŸããå ¬åŒããã¥ã¡ã³ããŒã·ã§ã³ã ãã§ãªããããã°èšäºããã¥ãŒããªã¢ã«ãã³ãŒãã£ã³ã°ã®ãã³ããªã©ãåŠç¿ãªãœãŒã¹ãå å®ããŠããŸãã
5.3 GoãšRustã®åŠç¿ãªãœãŒã¹ãšããã¥ã¡ã³ããŒã·ã§ã³
GoèšèªãšRustã¯ãå ¬åŒææžãå«ãè±å¯ãªåŠç¿ãªãœãŒã¹ãæäŸããŠããŸããããã«ãããåå¿è ããäžçŽè ãŸã§ãããã°ã©ãã³ã°èšèªãåŠã¶äžã§å¿ èŠãªè³æãå ¥æããããšãã§ããŸãã
ããããªãããGoèšèªãšRustã®ã¢ãããŒãã¯ç°ãªããŸããGoã¯èšèªã®ã·ã³ãã«ããéèŠããããã¥ã¡ã³ããŒã·ã§ã³ããããåæ ãã圢ã§æäŸãããŠããŸããRustã¯ãã詳现ãªæ å ±ãå®è£ ã®è§£èª¬ãéèŠãšããããã®æ å ±ãè©°ã蟌ãã è±å¯ãªããã¥ã¡ã³ããŒã·ã§ã³ãæäŸãããŠããŸãã
5.4 GoãšRustã®ãã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãªã®æ¯èŒ
æåŸã«ããšã³ã·ã¹ãã ãšåããéèŠãšèšãããã¬ãŒã ã¯ãŒã¯ãšã©ã€ãã©ãªã«ã€ããŠæ¯èŒããŸããWebéçºãããŒã¿ããŒã¹æ¥ç¶ããã¹ãããã°ããªã©ãç¹å®ã®ã¿ã¹ã¯ãå¹ççã«å®è¡ããããã®ã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ãååšããŸãã
Goã§ã¯ããRevelããšãGinã ã®ãããªè»œéã§ãã¯ãã«ãªWebãã¬ãŒã ã¯ãŒã¯ã人æ°ã§ããäžæ¹ãRustã§ã¯ãRocketãããActix-webããªã©ã®çŸä»£çãªWebãã¬ãŒã ã¯ãŒã¯ãå©çšã§ããŸãã
以äžã®èŠçŽ ã«ãããèšèªã®ç¹æ§ãå¿ èŠæ§ã«å¿ããŠãé©åãªèšèªãéžæããããšãå¯èœã§ãã
6. GoèšèªãšRustïŒæçµæ¯èŒãšèå¯
ãã®ç« ã§ã¯ãäž¡èšèªã®è©³çŽ°ãªæ¯èŒãšãããããã®é©åããã·ããªãªãéçºè 人æ°ãæ¡çšäºäŸãšåœ±é¿ããããŠæªæ¥ã®å±æã«ã€ããŠè§£èª¬ããŸãã
6.1 GoãšRustã®ã·ããªãªå¥æšå¥šã¬ã€ãã©ã€ã³
Goèšèªã¯ããã®æ¬è³ªçãªã·ã³ãã«ããšå¹çæ§ãããDevOpsãšwebã¢ããªã±ãŒã·ã§ã³ã®éçºã«åªããŠããŸãããŸãã䞊è¡åŠçã容æã«å®è£ ã§ãããããé«ããã©ãŒãã³ã¹ãå¿ èŠãšããã¢ããªã±ãŒã·ã§ã³éçºã«ãé©ããŠããŸãã
äžæ¹ãRustã¯ããã®é«åºŠãªåã·ã¹ãã ãšã¡ã¢ãªã»ãŒããã£ã«ãããã·ã¹ãã ã¬ãã«ã®ããã°ã©ãã³ã°ãå¯èœã§ããããã¯ã倧èŠæš¡ãªãµãŒããŒãã¯ã©ã€ã¢ã³ãããã°ã©ã éçºããŸãã¯çµã¿èŸŒã¿ã·ã¹ãã ãªã©ã®äœã¬ãã«èšèªã§ã®ããã°ã©ãã³ã°ã«éåžžã«é©ããŠããŸãã
6.2 GoãšRustã®éçºè 人æ°ãšæ¡çšã«ã€ããŠã®èå¯
éçºè ã³ãã¥ããã£ã«ãããGoèšèªãšRustã®äººæ°ã¯é«ãŸã£ãŠããŸããGoã¯æ¥åçšã¢ããªã±ãŒã·ã§ã³ã§ã®äººæ°ãæ¥éã«é«ãŸã£ãŠããããŸãRustã¯ã·ã¹ãã ã¬ãã«ã®ããã°ã©ãã³ã°ã§åºãæ¡çšãããŠããŸãã
ç¹ã«ãRustã¯ã¡ã¢ãªå®å šæ§ãšäžŠè¡æ§ã確ä¿ãã€ã€é«æ§èœãªã³ãŒããæžãããšã®ã§ããé©æ°çãªèšèªã§ãããå€ãã®éçºè ãã奜è©ãåŸãŠããŸãããã®äžæ¹ã§ãGoã¯ãã®ã·ã³ãã«ããšå®¹æãªåŠç¿æ²ç·ãããæ¢åã®å€§èŠæš¡ãªãããžã§ã¯ãã®ãªãã¡ã¯ã¿ãªã³ã°ãæ°èŠãããžã§ã¯ãã«ãããŠæå¹ãªéžæè¢ãšãªã£ãŠããŸãã
6.3 äŒæ¥ã«ããGoãšRustã®æ¡çšäºäŸãšåœ±é¿
å€ãã®å€§èŠæš¡äŒæ¥ãGoèšèªãRustãæ¡çšããŠæåãåããŠããŸããGoã¯ãã®ããã©ãŒãã³ã¹ãšçç£æ§ã®é«ããããUberãYouTubeãGoogleãªã©å€ãã®äŒæ¥ã«æ¡çšãããŠããŸãã
Rustã¯ããã®å®å šæ§ãšå¹çæ§ãããDropboxãCourseraãFirefoxãªã©ã®å€§èŠæš¡ãªã·ã¹ãã éçºã§æ¡çšãããŠããŸãããŸããMicrosoftã¯ãå®å šæ§ãšããã©ãŒãã³ã¹ã®åé¡ã«å¯ŸåŠããããã«Rustãæ¡çšããããšãæããã«ããŠããŸãã
6.4 GoãšRustïŒæªæ¥ã®å±æ
Goèšèªã¯ãã¯ã©ãŠããã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã®éçºãšDevOpsé åã§ã®å°äœã確åºãããã®ã«ããŠããããã®éèŠæ§ãšåœ±é¿åã¯ä»åŸãå¢ããšäºæ³ãããŸãã
Rustã¯ãã·ã¹ãã ããã°ã©ãã³ã°ã«ãããå®å šæ§ãšããã©ãŒãã³ã¹ã®é«ããæã£ãŠããŸããããã«ãããçµã¿èŸŒã¿ã·ã¹ãã ãIoTãã²ãŒã éçºãªã©å¹ åºãåéã§ã®æ¡çšãæåŸ ãããŸãã