PSïŒãã®èšäºã¯ãç§ã®æèŠã§ã¯ãã»ãšãã©ã®èšäºãšåæ§ã«ãèè ã®çµéšãšæèŠãåæ ããŠããŸãããããã¯ããªãã®æèŠãšäžèŽããªãå ŽåããããŸãã
kirael-art.deviantart.com/art/Go-lang-Mascot-458285682ããæ®åœ±ããç»å
ãGoã¯æªæ¥ã®ãµãŒããŒèšèªã«ãªããŸããã-TobiasLÃŒtkeãShopify
éå»æ°å¹Žã«ããã£ãŠãæ°ããããã°ã©ãã³ã°èšèªã§ããGoãŸãã¯Golangã倧ããæé·ããŸããã åæããŠãæ°ããããã°ã©ãã³ã°èšèªã®ããã«éçºè ãçããããã®ã¯äœããããŸããã ãããã£ãŠã4ã5ãæåã«Goã®åŠç¿ãéå§ããŸããããããããã®æ°ããèšèªãåŠç¿ããçç±ã«ã€ããŠèª¬æã§ããããšã§ãã
ãã®èšäºã§ã¯ããHello world !!ãã®æžãæ¹ãæããŸããã ããã«é¢ããä»ã®å€ãã®èšäºããããŸãã ã³ã³ãã¥ãŒã¿ãŒã®ããŒããŠã§ã¢ãšãœãããŠã§ã¢ã®çŸç¶ãšãGoã®ãããªæ°ããèšèªãå¿ èŠãªçç±ãæ確ã«ããŸãã çµå±ã®ãšãããåé¡ããªããã°ã解決çã¯å¿ èŠãããŸããããïŒ
éã®å¶éïŒ
ã ãŒã¢ã®æ³åã¯æ©èœããŸããã
3.0 GHzã®ã¯ããã¯åšæ³¢æ°ãåããæåã®Pentium 4ããã»ããµã¯ã 2004幎ã«Intelã«ãã£ãŠå°å ¥ãããŸããã ä»æ¥ãç§ã®Macbook Pro 2016ã®ã¯ããã¯é床ã¯2.9 GHzã§ãã ãããã£ãŠãçŽ10幎éãçŽç²ãªã³ã³ãã¥ãŒãã£ã³ã°èœåã®é²æ©ã¯ã»ãšãã©ãããŸããã§ããã äžã®ã°ã©ãã§ã¯ãæéã®çµéã«äŒŽãèšç®èœåã®å¢å ã®æ¯èŒã°ã©ããèŠãããšãã§ããŸãã
ã°ã©ããããã·ã³ã°ã«ã¹ã¬ããã®ããã©ãŒãã³ã¹ãšããã»ããµåšæ³¢æ°ãã»ãŒ10幎éå®å®ããŠããããšãããããŸãã ãã©ã³ãžã¹ã¿ãè¿œå ããããšãè¯ã解決çã ãšæããªããããªãã¯ééã£ãŠããŸãã ããã¯ãããå°ããªã¹ã±ãŒã«ã§ãªããžã§ã¯ãã®éåç¹æ§ãçŸããããã«ãªãããã§ãïŒãã³ããªã³ã°ã[ ãŸãã¯ãã³ãã«å¹æã-ãããTranslã ]ãªã©ïŒ ã 1ãã«ã§è¿œå ã§ããé¡ã¯æ¥éã«æžå°ãå§ããŠããŸãã
ãããã£ãŠãäžèšã®åé¡ã解決ããã«ã¯ã
- ã¡ãŒã«ãŒã¯ãããã»ããµã«ã³ã¢ãè¿œå ãå§ããŸããã çŸåšã4ã³ã¢ããã»ããµãš8ã³ã¢ããã»ããµãå©çšå¯èœã§ãã
- ãã€ããŒã¹ã¬ããã£ã³ã°ãéå§ãããŸããã
- ããã©ãŒãã³ã¹ãåäžãããããã«ãããã»ããµã«ãã£ãã·ã¥ãè¿œå ããŸããã
ãã ããäžèšã®ãœãªã¥ãŒã·ã§ã³ã«ãå¶éããããŸãã ãã£ãã·ã¥ã«ã¯ç©ççãªå¶éããããããããã»ããµã«ããã«ãã£ãã·ã¥ãè¿œå ããããšã¯ã§ããŸããããã£ãã·ã¥ã倧ããã»ã©é ããªããŸãã ããã»ããµã«ã³ã¢ãè¿œå ããããšã«ã代åã䌎ããŸãã ããã«ããããç¡æéã«è¡ãããšã¯ã§ããŸããã ãããã®ãã«ãã³ã¢ããã»ããµã¯ãã¹ãŠãåæã«è€æ°ã®ã¹ã¬ãããå®è¡ã§ããããã«ãããç»åã®ãã«ãã¿ã¹ã¯åŠçãå¯èœã«ãªããŸãã ããã«ã€ããŠã¯åŸã§èª¬æããŸãã
ãããã£ãŠãããŒããŠã§ã¢ã®æ¹åã«é Œãããšã¯ã§ããªãããããã®ç¶æ³ããæãåºãå¯äžã®æ¹æ³ã¯ãããå¹ççãªãœãããŠã§ã¢ã䜿çšããããšã§ãã ããããæ®å¿µãªãããçŸä»£ã®ããã°ã©ãã³ã°èšèªã¯ããã»ã©å¹æçã§ã¯ãããŸããã
ãææ°ã®ããã»ããµã¯ããããã§æºãããã楜ããè»ã®ããã«èŠããŸã-ååã®äžãã€ã«ã®ã¬ãŒã¹ã§ã¯çŽ æŽãããã§ãã æ®å¿µãªãããã¢ã³ãã«ã«ããã©ãã¯ã®ãããªææ°ã®ããã°ã©ãã³ã°èšèªã¯ãtwistäœæ²æã«æºã¡ãŠããŸããã-David Ungar
Goã«ã¯ãŽã«ãŒãã³ããããŸã!!
åè¿°ã®ããã«ãããŒããŠã§ã¢ã¡ãŒã«ãŒã¯ãããã©ãŒãã³ã¹ãåäžãããããã«ãããã»ããµã«ã³ã¢ãè¿œå ããŠããŸãã ãã¹ãŠã®ããŒã¿ã»ã³ã¿ãŒã¯ãããã®ããã»ããµãŒã§çšŒåããŠãããä»åŸæ°å¹Žã§ã³ã¢ã®æ°ãå¢ãããšäºæ³ãããŸãã ããã«ãææ°ã®ã¢ããªã±ãŒã·ã§ã³ã¯å€ãã®ãã€ã¯ããµãŒãã¹ã䜿çšããŠãããŒã¿ããŒã¹æ¥ç¶ãã¡ãã»ãŒãžãã¥ãŒãããã³ãã£ãã·ã¥ããµããŒãããŠããŸãã ãããã£ãŠãç§ãã¡ãéçºãããœãããŠã§ã¢ãšããã°ã©ãã³ã°èšèªã¯ããã«ãã¿ã¹ã¯ïŒ åæå®è¡æ§-ãããTranslã ïŒãç°¡åã«ãµããŒãããå¿ èŠããããã³ã¢æ°ã®å¢å ã«åãããŠã¹ã±ãŒã©ãã«ã§ãªããã°ãªããŸããã
ããããã»ãšãã©ã®ææ°ã®ããã°ã©ãã³ã°èšèªïŒJavaãPythonãªã©ïŒã¯ã90幎代ã®ã·ã³ã°ã«ã¹ã¬ããéçºç°å¢ã«ç±æ¥ããŠããŸããã ãããã®èšèªã®ã»ãšãã©ã¯ãã«ãã¹ã¬ããããµããŒãããŠããŸãããå®éã®åé¡ã¯åæå®è¡ãã¹ã¬ããããããã³ã°ã競åç¶æ ãããã³ãããããã¯ã§ãã ãããã®ããšãããäžèšã®èšèªã§ãã«ãã¹ã¬ããã¢ããªã±ãŒã·ã§ã³ãäœæããããšã¯å°é£ã§ãã
ããšãã°ãJavaã§æ°ããã¹ã¬ãããäœæãããšãã¡ã¢ãªã®äœ¿çšå¹çãäœäžããŸãã åã¹ã¬ããã¯ããŒãããçŽ1MBã®ã¡ã¢ãªãæ¶è²»ããããïŒ åçã«å²ãåœãŠãããã¡ã¢ãªã-çŽTranslã ïŒããã®çµæãæ°åã®ã¹ã¬ãããå®è¡ãããšãã¡ã¢ãªã«å€§ããªå§åããããããã®äžè¶³ã«ããã¢ããªã±ãŒã·ã§ã³ãã·ã£ããããŠã³ããå¯èœæ§ããããŸã ããã«ã2ã€ä»¥äžã®ã¹ã¬ãããäºãã«éä¿¡ããããã«ãããå Žåããããè¡ãã®ã¯éåžžã«å°é£ã§ãã
äžæ¹ãGoã¯ããã«ãã³ã¢ããã»ããµãæ¢ã«å©çšå¯èœã§ãã£ã2009幎ã«ãªãªãŒã¹ãããŸããã ããããGoããã«ãã¿ã¹ã¯ã念é ã«çœ®ããŠäœæãããçç±ã§ã ïŒ åæå®è¡æ§-ãããTranslã ïŒã Goã¯ã¹ã¬ããã®ä»£ããã«ãŽã«ãŒãã³ã䜿çšããŸãã ããŒãããã»ãŒ2KBã®ã¡ã¢ãªãæ¶è²»ããŸãã ãããã£ãŠãå°ãªããšãäœçŸäžãã®ãŽã«ãŒãã³ããã€ã§ãã¹ã¯ããŒã«ã§ããŸãã
ãŽã«ãŒãã³ã¯ã©ã®ããã«æ©èœããŸããïŒ è©³çŽ°ïŒ golangtutorials.blogspot.in/2011/06/goroutines.html
ãã®ä»ã®å©ç¹ïŒ
- ãŽã«ãŒãã³ã«ã¯ãæ¡åŒµå¯èœãªã»ã°ã¡ã³ãåãããã¹ã¿ãã¯ããããŸãã ããã¯ãå¿ èŠãªå Žåã«ã®ã¿ã¡ã¢ãªã䜿çšããããšãæå³ããŸãã
- ãŽã«ãŒãã³ã¯ãã¹ã¬ãããããèµ·åæéãé«éã§ãã
- ãŽã«ãŒãã³ã«ã¯ãèªèº«ïŒãã£ãã«ïŒéã®å®å šãªããŒã¿äº€æã®ããã®çµã¿èŸŒã¿ããªããã£ããä»å±ããŠããŸãã
- ãŽã«ãŒãã³ã¯ãããŒã¿æ§é ãå ±æãããšãã«ãã¥ãŒããã¯ã¹ããããã¯ããå¿ èŠæ§ãåé¿ããŸãã
- ãŸãããŽã«ãŒãã³ãšOSã¹ã¬ããã«ã¯1察1ã®ãããã³ã°ããããŸããã 1ã€ã®ãŽã«ãŒãã³ã¯è€æ°ã®ã¹ã¬ããã§å®è¡ã§ããŸãã ãŽã«ãŒãã³ã¯ãå°æ°ã®OSã¹ã¬ããã«çµåïŒ å€éå-çŽTranslã ïŒãããŸãã
Rob Pikeã®åªããããã©ãŒãã³ã¹ãèŠãããšãã§ããŸããããã®ãããã¯ãããæ·±ãç解ããããã«ã ãã«ãã¿ã¹ã¯ã¯äžŠè¡åŠçã§ã¯ãããŸãã ã
äžèšã®ãã¹ãŠã®ç¹ã«ãããGoã¯JavaãCãC ++ãšåãããã«ãã«ãã¿ã¹ã¯ã«éåžžã«åŒ·åã§ãããšåæã«ãErlangã®ããã«ã³ãŒãã®çŸãããšèªç¶ããä¿ã¡ãŸãã
Goã«ã¯ãäž¡æ¹ã®é·æãçµã¿èŸŒãŸããŠããŸãã æžããããããã«ãã¿ã¹ã¯ã§å¹æç
Goã¯ããŒããŠã§ã¢ã§çŽæ¥å®è¡ãããŸãã
Java / Pythonã®ãããªææ°ã®èšèªã®ä»£ããã«C / C ++ã䜿çšããæãéèŠãªå©ç¹ã®1ã€ã¯ããã®ããã©ãŒãã³ã¹ã§ãã C / C ++ã¯ã³ã³ãã€ã«ãããŠããããã解éãããŸããã
ããã»ããµã¯ãã€ããªã³ãŒãã®ã¿ãç解ããŸãã ååãšããŠãJavaãŸãã¯ä»ã®JVMããŒã¹ã®èšèªã§ã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåããããžã§ã¯ããã³ã³ãã€ã«ãããšãã人éãèªã¿åããã³ãŒããããã€ãã³ãŒãã«ã³ã³ãã€ã«ãããŸããããã¯ãJVMãŸãã¯OSäžã§å®è¡ãããä»ã®ä»®æ³ãã·ã³ã§ç解ã§ããŸãã å®è¡ããããšãVMã¯ãã®ãã€ãã³ãŒãã解éããããã»ããµãç解ã§ãããã€ããªã³ãŒãã«å€æããŸãã
JVMããŒã¹ã®ã³ãŒãã¹ããŒãž
äžæ¹ãä»®æ³ãã·ã³ã䜿çšããªãC / C ++ããããããäžèšã®å³ãã1ã€ã®ã¹ããããåé€ããªãããçç£æ§ãé«ããããšãã§ããŸãã 人éãèªããã³ãŒãããã€ããªã«çŽæ¥ã³ã³ãã€ã«ããŸãã
ãããããããã®èšèªã®å€æ°ãã¯ãªãŒã³ã¢ããããŠé åžããã®ã¯ãŸã èŠçã§ãã åæã«ãã»ãšãã©ã®ããã°ã©ãã³ã°èšèªã¯ãã¬ããŒãžã³ã¬ã¯ã¿ãŒãšåç §ã«ãŠã³ãã¢ã«ãŽãªãºã ã䜿çšããŠãªããžã§ã¯ãã®é åžãšåé€ãåŠçããŸãã
Goã¯äž¡æ¹ã®é·æãåžåããŸããã C / C ++ãªã©ã®äœã¬ãã«èšèªã®ããã«ãGoã¯ã³ã³ãã€ã«ãããèšèªã§ãã ããã¯ãäœã¬ãã«èšèªãšåæ§ã®ããã©ãŒãã³ã¹ãæå³ããŸãã ãŸãããªããžã§ã¯ããé åžããã³åé€ããããã®ç¬èªã®ã¬ããŒãžã³ã¬ã¯ã¿ããããŸãã ããã«mallocïŒïŒããã³freeïŒïŒ ïŒ ãã£ãããïŒ
Goã§èšè¿°ãããã³ãŒãã¯ä¿å®ãç°¡åã§ãã
äžã€ã話ãããŸãããã Goã«ã¯ãä»ã®èšèªã®ãããªçã£ãæ§æã¯ãããŸãã-ãã¹ãŠãéåžžã«ãããã§ãããã§ãã
Googleã®Googleéçºè ã¯ãäœææã«ããã念é ã«çœ®ããŠããŸããã Googleã«ã¯å·šå€§ãªã³ãŒãããŒã¹ããããæ°å人ã®éçºè ãäœæ¥ããŠãããšããäºå®ã«ãããã³ãŒãã¯ä»ã®éçºè ãç解ããããã1ã€ã®ã³ãŒããä»ã®ãµã€ãã«æå°éã®å¯äœçšãããããã¯ãã§ãã ããã«ãããã³ãŒãã®ä¿å®ãšå€æŽã容æã«ãªããŸãã
Goã«ã¯ãæå³çã«OOPèšèªã®å€ãã®æ©èœãå«ãŸããŠããŸããã
- ã¯ã©ã¹ã¯ãããŸããã åãã®ã¯ããã±ãŒãžã®ã¿ã«åå²ãããŸãã ã¯ã©ã¹ã®ä»£ããã«ãGoã¯æ§é ïŒ æ§é äœ-ãããTranslã ïŒã®ã¿ã䜿çšããŸãã
- ç¶æ¿ããµããŒãããŠããŸããã ããã«ãããã³ãŒãã®å€æŽãç°¡åã«ãªããŸãã Java / Pythonãªã©ã®ä»ã®èšèªã§ã¯ãABCã¯ã©ã¹ãXYZã¯ã©ã¹ãç¶æ¿ããåæã«XYZã¯ã©ã¹ã«ããã€ãã®å€æŽãå ãããšãããããç¶æ¿ããããã¹ãŠã®ã¯ã©ã¹ã«è¿œå ã®å€æŽãå ããããŸãã ããã«ãç¶æ¿ããªããã°ãGoã³ãŒãã¯ç解ãããããªããŸãïŒ ã³ãŒãã»ã¯ã·ã§ã³ãåŠç¿ãããšãã«æ³šæããå¿ èŠãããã¹ãŒããŒã¯ã©ã¹ããªããã ïŒã
- ã³ã³ã¹ãã©ã¯ã¿ãŒã¯ãããŸããã
- 泚éãªãã
- ãžã§ããªãã¯ã¯ãããŸããïŒ æ±çšãã³ãã¬ãŒã-çŽTranslã ïŒã
- äŸå€ã¯ãããŸããã
äžèšã®å€æŽã«ãããGoã¯ä»ã®èšèªãšåºå¥ããããããä»ã®èšèªã§ã®ããã°ã©ãã³ã°ãšã¯ç°ãªããGoã§ã®ããã°ã©ãã³ã°ãå¯èœã«ãªããŸãã äžèšã®ãã€ã³ãã®ããã€ããæ°ã«å ¥ããªããããããŸããã ããããããã¯ããããã®æ©èœãªãã§ã¯ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããªããšããæå³ã§ã¯ãããŸããã ããªããããªããã°ãªããªãã®ã¯ã2ã3è¡ã ãæžãããšã§ãã ãã ãããã®äžæ¹ã§ãã³ãŒãããããããããããªããç解ãããããªããŸãã
ã³ãŒãã®èªã¿ããããšããã©ãŒãã³ã¹ã
äžèšã®ã°ã©ãã¯ãGoãC / C ++ãšã»ãŒåããããå¹ççã§ãããRubyãPythonãããã³ä»ã®èšèªãšåãåçŽãªæ§æãæã£ãŠããããšã瀺ããŠããŸãã ããã¯win-winãªãã·ã§ã³ã§ãïŒ win-winã-ãããRemã ïŒäººã«ãšã£ãŠãã³ã³ãã¥ãŒã¿ãŒã«ãšã£ãŠãïŒ
Goã®æ§æã¯éåžžã«å®å®ããŠããŸããã ä»ã®æ°ããSwiftèšèªã§ã¯ããã»ã©å®å®ããŠããŸããã 2012幎ã®ããŒãžã§ã³1.0ã®å ¬éãªãªãŒã¹ä»¥éãæ§æã¯å€æŽãããŠããŸããã ããã«ãããäžäœäºææ§ãåŸãããŸãã
Goã¯Googleã«ãã£ãŠãµããŒããããŠããŸãã
- ããã¯æè¡çãªå©ç¹ã§ã¯ãªãããšãç¥ã£ãŠããŸãã ãã ããGoã¯Googleã«ãã£ãŠèšèšããã³ç®¡çãããŠããŸãã Googleã¯äžçæ倧ã®ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãæã¡ãçŸåšãæ¡å€§ããŠããŸãã Googleã¯GoãäœæããŠãã¹ã±ãŒã©ããªãã£ãšå¹çæ§ããµããŒãããŠç¬èªã®åé¡ã解決ããŸããã ç¬èªã®ãµãŒããŒãäœæãããšãã«ãåãåé¡ã«çŽé¢ããå¿ èŠããããŸãã
- ããã«ãGoã¯AbodeãBBCãIBMãIntelã Mediumãªã©ã®äŒæ¥ã§ã䜿çšãããŠããŸãã ïŒãœãŒã¹ïŒ github.com/golang/go/wiki/GoUsers ïŒ
çµè«ïŒ
- Goã¯ä»ã®OOPèšèªãšã¯ç°ãªããŸãããäŸç¶ãšããŠåãç£ã§ãã Goã¯ãC / C ++ãšåãé«ãããã©ãŒãã³ã¹ãJavaãšåæ§ã®éåžžã«å¹ççãªãã«ãã¿ã¹ã¯åŠçãããã³Python / Perlãšåãã³ãŒãèšè¿°ã®å®¹æããæäŸããŸãã
- GoãåŠç¿ããäºå®ããªãå Žåã¯ãããŒããŠã§ã¢ã®å¶éã«ãããéåžžã«å¹ççãªã³ãŒããèšè¿°ããããœãããŠã§ã¢éçºè ã«ãã¬ãã·ã£ãŒãããããšæããŸãã éçºè ã¯ããŒããŠã§ã¢ãç解ããããã«å¿ããŠããã°ã©ã ãæé©åããå¿ èŠããããŸãã æé©åããããœãããŠã§ã¢ã¯ãå®äŸ¡ã§äœéãªããã€ã¹ïŒ IOTãªã©ïŒã§å®è¡ã§ããŸããããã¯ãäžè¬çã«ãšã³ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«åœ±é¿ãäžããŸã ïŒ UXã-çŽTranslã ïŒã