æçµæŽæ°:
RustãšGoã®éãã¯ïŒæææš©ã»GCã»äžŠè¡åŠçããçšéã§éžã¶
RustãšGoïŒã¡ã¢ãªãšäžŠè¡åŠç
RustãšGoã£ãŠã©ã£ã¡ããéãèšèªãã£ãŠèããã©ãäœãéãã®ïŒ
ã¡ã¢ãªç®¡çãšäžŠè¡åŠçã®èšèšã«éããããããRustã¯æææš©ãåçšã®æ€æ»ã§ã¡ã¢ãªå®å
šæ§ãæ¯ããGoã¯GCãšgoroutineãåããŠãããã ãã©ã¡ããéããã¯åŠçå
容ãå®è£
ã«ãããããèšèªåã ãã§ã¯æ±ºããããªããã
æææš©ã£ãŠãå
·äœçã«ã¯ã©ãããããšãªã®ïŒ
å€ãèª°ãææãããã€ãŸã§äœ¿ããããã³ã³ãã€ã©ãæ€æ»ããä»çµã¿ã ããããšãã°æææš©ãç§»ããåŸã®å€ãå
ã®å€æ°ãã䜿ãããšãããšãšã©ãŒã«ãªããäžè¬çãªã¡ã¢ãªç®¡çã«GCãå¿
èŠãšããªãããã©ãã¡ã¢ãªã®ç¢ºä¿ãè§£æŸãã®ãã®ã®åŠçã¯å®è¡æã«è¡ããããã ã
ãããããŒãã³ã¹ãæœè±¡åããªã®ïŒ
GCããªãããšãšã¯å¥ã®è©±ã ããã€ãã¬ãŒã¿ãªã©ã®æœè±¡åã䜿ã£ãŠããåçã®äœæ°Žæºã³ãŒãã«æ¯ã¹ãŠäœåãªå®è¡æã³ã¹ããå¢ãããªããšããèãæ¹ãªãã ãããã°ã©ã å
šäœã®ã³ã¹ãããŒãã«ãªãæå³ã§ããåžžã«Cããéããšããä¿èšŒã§ããªããã
Goã®GCã¯ããã°ã©ã ãæ¢ããŠããŸãã®ïŒ
Goã®GCã¯å€§éšåãã¢ããªãšäžŠè¡ããŠåŠçããããã©ãçã忢ã远å ã®CPUè² è·ã¯ãããã圱é¿ã¯ã¡ã¢ãªå²ãåœãŠã®éãèšå®ãè² è·ã«ãã£ãŠå€ãããGCããªãRustã§ãã¡ã¢ãªç¢ºä¿ãOSã®ã¹ã±ãžã¥ãŒãªã³ã°ãªã©ã§åŸ
ã€ããšã¯ããã®ã§ãããã ãã§å¿çæéãä¿èšŒã§ããããã§ã¯ãªããã ã
䞊è¡åŠçã¯ã©ãæžãã®ïŒ
Goã§ã¯goroutineã䜿ããã©ã³ã¿ã€ã ãè€æ°ã®OSã¹ã¬ãããžåŠçãå²ãåœãŠãããRustã«ã¯ã¹ã¬ãããasync/awaitããããéåæåŠçã§ã¯å®è¡ã管çããã©ã³ã¿ã€ã ãçšéã«åãããŠéžã¶ãã ãããããã®åŠçãåŸ
æ©ãããããšãšããã¹ãŠãCPUäžã§åæã«å®è¡ããããšã¯å¥ã ãã
ããããã©ããªçšéãåŠã³æ¹ã§éžã¹ã°ããïŒ
Goã¯DockerãKubernetesãªã©ã®ã¯ã©ãŠãåºç€ã§ã䜿ãããŠããããRustã¯äœã¬ãã«ã®ã¡ã¢ãªãè³æºã®æ±ããå¶åŸ¡ãããå Žåã®åè£ã«ãªãããRustã§ã¯æææš©ã»åçšãåŠã³ãGoã§ã䞊è¡åŠçã®åæãåŠã¶å¿
èŠããããç¿åŸæ¥æ°ã¯çµéšã課é¡ã§éããããå°ããªåã顿ãäœã£ãŠæ¯èŒãããšå€æãããããã
Rustã®ãunsafeãã£ãŠäœãªã®ïŒ
çãã€ã³ã¿ã®åç
§å
ãžã®ã¢ã¯ã»ã¹ãªã©ãã³ã³ãã€ã©ã ãã§ã¯å®å
šã確èªã§ããªãæäœãèš±å¯ããä»çµã¿ã ããåçšæ€æ»ããã¹ãŠç¡å¹ã«ãªãããã§ã¯ãªãããã®æäœã®å®å
šæ¡ä»¶ãéçºè
ãå®ã責任ãæã€ãã ãç¯å²ãå°ããããŠå®å
šãªAPIã«å
ãããšã倧åã ãã
GoããCãåŒã¶cgoãšãRustã®å€éšé¢æ°åŒã³åºãã¯ã©ãèããã°ããïŒ
cgoã¯GoããCã®ã©ã€ãã©ãªã䜿ãããã®ä»çµã¿ã ããRustã§ãå€éšé¢æ°ãåŒã¹ãããã©ãã©ã¡ããèšèªã®å¢çã§åŒã³åºãèŠçŽãã¡ã¢ãªã®æ±ãã«æ³šæãå¿
èŠãªãã ãç§»æ€ããã°å¿
ãéããªããšã¯éããªãã®ã§ãå¿
èŠãªã©ã€ãã©ãªãšå®å
šæ§ã確èªããå®éã®è² è·ã§æž¬ã£ãŠéžãŒãã
æåã«éžã³æ¹ãæŽçãã
| ããããããšã»å¶çŽ | æ€èšã®åºçºç¹ |
|---|---|
| ã¡ã¢ãªãè³æºã®å¯¿åœã现ããå¶åŸ¡ããã | Rustã®æææš©ã»åçšãå«ããå¿ èŠãªã©ã€ãã©ãªãšå®è£ æ¹æ³ãç¢ºèª |
| goroutineã䜿ã£ãŠãããã¯ãŒã¯åŸ ã¡ãªã©ã®åŠçãåããã | Goã®æšæºã©ã€ãã©ãªã»äžŠè¡åŠçã詊ããå ±æããŒã¿ã®åæãèšèš |
| æ¢åããŒã ã®ãµãŒãã¹ãä¿å®ããã | èšèªã®æ°ãããããããŒã ã®çµéšã»éçšç°å¢ã»äŸåã©ã€ãã©ãªãšã®é©åãç¢ºèª |
| å¿çæéã䜿çšã¡ã¢ãªã«å³ããæ¡ä»¶ããã | åãå ¥åã»è² è·ã»å®è¡ç°å¢ã§æž¬ããGC以å€ã®èŠå ãå«ããŠæ¯èŒ |
Goã§ãåŠçã®å®è¡é åºãå ±æããŒã¿ã®æ±ãã誀ãã°äžå ·åã«ãªããŸããRustã§ãããžãã¯ã®èª€ããpanicã¯èµ·ããããŸãããå®å šãªèšèªãéžãã ãããã¹ãã¯äžèŠããšã¯èããŸããã
åãå°ããªé¡æã§è©Šã
ãã¡ã€ã«ããè¡ãèªã¿ãä»¶æ°ãæ°ããCLIãªã©ãåãå ¥åãšæåŸ çµæãæ±ºããŠæ¯èŒããŸãããŸãå®è£ ããããã»ãšã©ãŒåŠçã»é åžå ãžã®ãã«ãã確èªããæ§èœãéžå®æ¡ä»¶ãªãå®éã®è² è·ã«è¿ã¥ããŠæž¬ããŸããèšèªã®äžè¬è«ããåå¥ã¢ããªã®ãã³ãããŒã¯çµæãšããŠæ±ããªãããšã倧åã§ãã
æåã®å®è¡ã«ã¯Rustå ¥éãšGoå ¥éã䜿ããŸãã