åºç瀟ã¯ãããã¬ã¿ãªã¢ã®å³æžé€šãã
ãã®å°èª¬ã®äžã§ãèè ã¯éçºæ¥çã®åŽåè éçŽã®å°é£ãªéåœã«ã€ããŠèªããŸãã
åèªè·å¡ãšèšæ¶åªå€±ã«çŽé¢ãããšãã®äººéé¢ä¿ã®çºå±ã«ã€ããŠã
ãå§ãããŸãã /*è©è«å®¶*/
ãã¹ãŠã®å¶ç¶ã¯å¶ç¶ã§ã¯ãããŸããã
C++ ã¯å°é£ãªå¹Œå°æãéããããããè€éãªæ§æ Œãæã£ãŠããŸãã圌ã¯é£¢ãã 80 幎代ã«è²ã¡ãã·ã³ãã«ã眮ãã®ã«ååãªã¹ããŒã¹ããªãããšããããã£ãããšãèŠããŠããŸããããã«ãã圌ã¯æ°ãåŒãç· ããããæ§æãå³å¯ã«ãªããŸãããé
ã«é
ãããšãå€ããã»ã°ãã¡ãŠã«ãæããããçªã¬ã©ã¹ãå²ã£ãããéè¡äººã®è¶³ãæã£ããããã®ã奜ãã ã£ãã圌ã®ç¥ç¶ã§ããå°æ¬ããã K&R C ã¯ãããã ã§å€§ããªã·ã§ãã¯ãåããå«ã®åš¯æ¥œã«ããåå ããŠããããã圌ã«åè«ãã人ã¯èª°ãããªãã£ãã
C++ ã¯ç¶èŠªã®ããšãã»ãšãã©èŠããŠããŸãããååããC with Classesãã ã£ãããšãšãéå°æåã§äº¡ããªã£ãããšã ããèŠããŠããŸããç¥ç¶ã¯èªåã®äžäººæ¯åã«ã€ããŠãããã®ãŸãŸã®ããšãèšã£ãã圌ã¯å«ã®è³ªåã«æ°ä¹ããããã«çããããããªãã¯ãããç解ããŸããããããã€ãã®ã¯ã©ã¹...ãããŠããªããããã«ãã...ç§ã®é ã¯615ã€ã§XNUMXãã€ãã ã£ããšèŠããŠããŸã...ã æ¯èŠªã«ã€ããŠãããã«ç¥ãããŠããŸããã§ããããç§ãã¡ã®ããŒããŒã®æ§æ³ã«ã¯ç¹å®ã®ã·ãã¥ã©ããªãã£ãããã§ã¯ãªããšèšã人ãããŸãã
ææ¥ãžã®ç±æãæ¯åãå«ã«éé£ããã«ãããããããç¿ç¥ç¶èªèº«ã¯é·ãéçæ¿ã®äžã«ãã£ãããšåº§ã£ãŠããã圌ã¯ãããããã€ã³ã¿ãŒç®è¡ããšåŒã³ãããã¯ãã¹ãŠèªåã®å²åŠã®äžéšã§ãããåšå²ã®äžçã®ç©äºã®æ¬è³ªã«è¿ã¥ãããšãã§ãããšäž»åŒµããŸããã圌ã¯æè¿å ¬ã®å Žã«å§¿ãçŸãããšãã»ãšãã©ãªããªã£ããè人ã¯ãã£ãšåã«æ»ãã ã®ã§ã¯ãªãããšããèšã人ãããããããã§ã¯ãªããå Žæã«ãã£ãŠã¯å€ã«ãªããšãã®çè·¡ãç®ç«ã£ããå£ããã©ã³ãããããéè¡äººã«è¶³ãæããããããã¡ãªãŒããŒãããŒãçºçããŠããŸã...
ããããç§ã¯åç¶ã® Classical C ãåŸåŠ¹ã® C-99..11ãC++ ãããèŠãŸããã家æå šå¡ããäºãã奜ãã§ã¯ãããŸããã§ãããããããäžç·ã«åããç掻ããããã«ã圌ã㯠API å¥çŽã®æ çµã¿å ã«ãšã©ãŸããããåŸãŸããã§ãããç¿å åŒãšç¶èŠªã¯ãããŸããŸãªéçŽã®æ人ãã¡ãšã¯ç°ãªããéè¡äººã®è¶³å ãæãæ©ãæã€ããšãã§ããã®ã¯èªåãã¡ã ãšäž»åŒµããã C++ ã¯åæããŸããã§ããããããã圌ã¯èªåãææªã®å°æã§ã¯ãªãã£ããšèšããªããããå å¿ã§ã¯OOPãªã©ã®ç©è³ªã®äœ¿çšã¯ç¡é§ã§ã¯ãªããšç解ããŠããã圌ã¯åžžã«å£çæã«æ©ãŸãããŠããããããææããããã«ã圌ã¯ãã³ãããŒã¯ã«åå ãå§ããŸãããæã ãã·ã§ããã¬ã³ããªããŒãããåã« C++ ã®é床ãäœäžãããã®åŸå®¶æã®ä»ã®ã¡ã³ããŒãåæ ã®ç®ã§ãäºããèŠã€ãããã®åŸé°ã§ç¬ããŸããã
圌ã®èŠªæã¯ãC++ ã亡ããªã£ãç¶èŠªãããããã«é²åããããšã«ãªããšã¯æã£ãŠããŸããã§ããã OOP ã«å ããŠã圌ã¯ãã³ãã¬ãŒãã«ãèå³ãæã€ããã«ãªããŸããããã³ãã¬ãŒããé·ãé䜿çšããåŸã圌ã¯ãã©ããªå°æ競æã§ããéå§åã«å¯©æ»å¡ã®èãæãŠã°åªåã§ããããšã«æ°ã¥ããŸããã C++ ã¯ã¡ã¿ããã°ã©ãã³ã°ã®ãã£ã³ããªã³ãšããŠæºå ŽäžèŽã§èªãããã競äºããããšã¯èš±å¯ãããªããªããŸãããããããããã§ã圌ã¯æ¢ãŸããªãã£ãã圌ã¯å°å ã®ç¥è人ãå²åŠè ã®ãã£ã¹ã«ãã·ã§ã³ã¯ã©ãã«ãªã ã蟌ã¿ãæ©èœçãªPLãšããŠèªåèªèº«ãèªããŠãããããèŠæ±ããã Hasclell ãš Lisp ã¯ããã€ã³ã¿ãšç·©ãéçåä»ãã§æŠè£ ãããã®å¶æªç¯ããææã®ããŸãéããŸãããããããè¡ãå ŽããããŸããã§ããããã³ãã¬ãŒããš OOP ãçµã¿åãããŠäœ¿çšââãã足ãæã¡æãã®ã奜ããªäººãšã¯è°è«ã®äœå°ããããŸãããããããŠç§ãã¡ã®ããŒããŒã¯ãã«ããã©ãã€ã ã«ãªã£ãã®ã§ãã
ããããC++ ãåžå æé«ã®ã·ã¥ãŒãã£ã³ã° ã²ãŒã ã®å声ã®é ç¹ã«çãŸãã®ã«é·ãã¯ããããŸããã§ãããæéãçµã€ã«ã€ããŠãPLOã¯å²ç¬ã®å¯Ÿè±¡ã§ã¯ãªããªããè人ãã¡ã®äžå¹³äžæºã¯ãã¯ã泚ç®ãããªããªããŸãããããããã«ããªããŸãããå€ãã®äººã¯æã ææ¥ã«ç±äžããã®ã奜ãã§ãã...ãããŠæ°ããäžä»£ã¯ãŸã£ããç°ãªã£ãŠæé·ããŸãã...
Java ã¯æåã«èªããçºè¡šããŸããã圌ã¯èãçŽ æ©ãæã€å¿ èŠæ§ãé ãªã«æåŠããäž»ãªäŸ¡å€ã¯æçãâŠãããŠç©äœâŠç©äœã«ä»ãªããªããšäž»åŒµããã確ãã«ãå®éã圌ã¯ãªããžã§ã¯ããšã¯ã©ã¹ãæ··åãããã®ã«ã¯ãã«ã«ããªããã£ããè¿œå ããŸããããããã§ã圌ã¯èªåèªèº«ããæåã®å®å šãªãªããžã§ã¯ãæåããšçŽ¹ä»ããããšã«åŠšããããŸããã§ããã Java 㯠C ãããããšæªç¥ã® OOP å°å¥³ã®é ãåã§ãããšããåããããŸããããããŠãããã«ã¯ C++ ãé¢äžããŠããå¯èœæ§ãæãé«ããšäž»åŒµãã人ãããŸããå®éã«ã©ã®ããã«ããŠèªçããã®ãã¯å®ãã§ã¯ãããŸããããJava 㯠Oracle Corporation ã®ä¿è·äžã§è²ã¡ãŸãããæ°ããèšèªãã²ã©ãããšãããŠåœŒã®è¶³ãæã€ãšããéãæ©ãã®ãé²ãããã«ããªã©ã¯ã«ã®ãšã³ãžãã¢ã¯ãŸã é¿é£æã«ããéã«åœŒã«ãããããŒæè¡ãæœãã人差ãæãåæããŸãããèµ€ã¡ãããå°ãæé·ãããšãæãããã®ããä¿è·è ã¯åœŒã倧人ã®äžçãå åã«äžæ©ãè¿ã¥ãããä»®æ³ãã·ã³ã®å¥¥æ·±ãã«æ³šææ·±ãé ããŸãããããã«ããžã£ã¯ã¯ã誰ã«å¯ŸããŠãçºç ²ããã®ã¯è¯ããªãããšãæŠåšã¯äžè¬çã«çŠæ¢ãããã¹ãã§ããããšã泚ææ·±ãæããããŸããã幌å°æããã®å ±ç£äž»çŸ©ãšã®èŠªå¯ãªç¥ãåã㯠Java ã«è¯ã圱é¿ãäžãã圌ã¯ããã«äŒæ¥éçºã«ããããã¹ãŠã®åèªè·ãç²åŸããŸãããå¶åŸ¡äžèœãªç¡æ¿åºç¶æ ã®æ代ã¯çµããããã調æŽãããããŒã éçºã®æ代ãå°æ¥ããé£äººã®è¶³ãæã€ããšã¯æªããããŒã«ãªã£ããã®ããã«èŠããŸããã
圱ãèããªã£ã C++ ã¯ãåè£ æ£åŒŸéã«ã¬ãŒã¶ãŒç §æºåšããã«ãã§åãä»ãããã€ã³ã¿ãŒã«ã€ã³ããªãžã§ã³ã¹ãæ³šå ¥ããããšããŠãåãåãããŠæ代ã«åãããŠé²ãããšããŸãããããã¯ããŸã圹ã«ç«ããªãã£ãã®ã§ãå€ãã®äººã«å¿ãããã圌ã¯ç¶ç¶çãªé£²é ãšé·ãç¡ç ã«èœã£ãŠããŸããã
ãããŠçªã®å€ã§ã¯ããžã£ã¯ã¯ãã§ã«æ°ããªåŒ·åãªæµãšã®æŠããç¹°ãåºããŠããã C# ã¯ãC++ ãš Java ã®éºäŒçæ··åã®ææã§ãããã®å®éšã®ããã« Java éºäŒåãããŸãæ£çŽã§ã¯ãªãæ¹æ³ã§å ¥æããããšããåãä»ã§ããããåœæãããã«é¢ããŠå°ããªã¹ãã£ã³ãã«ãåçºããŸãããããããå¥ã®åŒ·åãªäŒæ¥ã®ãšã³ãžãã¢ã«ãã£ãŠäœæããããçã«å®å šã«ãªããžã§ã¯ãæåã§ãããC++ ã®å€ãã®æ©èœãç¶æ¿ãã C# ã¯ãJava ã«ææŠããããã«çãŸããäŒæ¥ã®å³ããäžçã«ååšããæš©å©ãå®ãããšã«æåããŸããã圌ã Java ãåãããšãã§ããããã«ãäœæè ã¯åœŒã«ãã³ãã¬ãŒããOOPãããã³ãã€ã³ã¿ãŒãæž¡ããŸãã (ãã ãããããã䜿çšããéã¯æ³šæããŠãã ãããšéºèŽãããŸãã)ã
è¥ãããã¯ã³ã¯ãããããŒæè¡ãåããå»äººãšã®æŠãã«åå ãã2020 幎ãŸã§ã«åœŒãååè¿ããŸã§æŒãè¿ããŸãã...
æéã¯æ¢ãŸã£ãŠããããèªç¶çæ®ã¯æ代é ãã«ãªã£ãŠããŸããä»ã§ã¯ãäŒæ¥ã®ç 究宀ã§äœãããªããã°æåã¯æ±ºããŠéæã§ããªããšä¿¡ããããŠããŸãããããããJavaScriptãGoãRustããã®ä»å€ãã®ãã®ãç»å Žããæ¹æ³ã§ããããã§æåã®äººç©ã®äŒèšã玹ä»ããã®ã¯æ¥ããããããšã§ãããèªè ãç¥ã£ãŠããã¹ãããšã¯ã圌ãçãŸãã€ãç²ããè ã§çµ±å倱調çã ã£ãããäœäººãã®äººã ã®æã®ãããã§ããããã¹ãŠãå æã§ãããšããäºå®ã«éå®ããŸããæ¬ ç¹ãæ±ããŠãã©ã³ã¹ãžã§ã³ããŒåæ§æè ã«ãªãã圌ã¯ã·ã¥ãŒãã®ä»æ¹ãç¥ããŸããã§ããããã©ãã«é£ããŠè¡ãããŠããã©ããªä»äºã§ãããžãã£ããªã¹ããŒããŠã³ã®ç¬éãããããããšã«åªããŠããŸããã JS ã¯æé·ããã«ã€ããŠãã«ã©ãŒãã¿ã³ããã¹ã¿ãŒã®ãã¶ã€ããŒãšããŠã®èªåã®å€©è·ã«æ°ã¥ããŸããããã以æ¥ãå€ã«åºãã®ãæããªããåšå²ã¯é žæ§ã®æšªæå¹ãšç¬ã®é³ã®ãã¿ã³ã®å±±ã§åãå°œããããŸããããã®ããšã«ã€ããŠå€ãåŸæ¥å¡ã圌ãå±è²¬ãããšãJS ã¯ãŸãéªæªãªç°æ§æè ã«ãã£ãŠæå§ãããŠãããšå€§å£°ã§å«ã³å§ããŸãããããããããã¯ãã¹ãŠã®åé¡ã®äžéšã«ãããŸããã JS ã¯å人ãéçºã®äžçã«é£ããŠè¡ããŸãããç·ã®ã²ããçããã髪ãæããã¹ã¯ãŒã¿ãŒã«ä¹ã£ãŠãã...圌èªèº«ãåžžã«å©çšå¯èœãªã¹ããŒã¹ãšã¡ã¢ãªããã¹ãŠå æããŠããŸããããããã¯21äžçŽã®ç¶æ³ã§ããã誰ãããšãã®æã«ãããååã«æã£ãŠããã¯ãã ã£ãããã«æãããŸãïŒ
ããããããã§ããŸã 誰ã圌ãéé£ããããšãã§ããŸãããããã«å¯ŸããŠJSã¯ã誰ãããšã£ãã®æã«ããã£ã»ããžãã£ãã§å¹³çã«ãªãã¹ãã§ãã©ãã ãã®ã¡ã¢ãªãé£ã¹ãã©ãã ãã®ã¹ããŒã¹ãå ãããã¯é¢ä¿ãªããšèšãå§ããã ããã¹ãŠã®åŽåè ã¯äŸ¡å€ãããããã¹ãŠã®åŽåè ã¯éèŠã§ããããã¹ãŠã®åŽåè ã¯å¹³çã§ãããšJSæ°ã¯èšããŸããã JS ã«é¢ãããã 5 ã€ã®æ³šç®ãã¹ãéçºã¯ããšã³ããªã®ãããå€ããŒãã«åŒãäžããããããšã§ãããã®åŸãç¿ç¥ç¶ã¯æ²ãã¿ã®ããŸããã¯ããŒãŒããã®äžã§5ÃXNUMXãããã€ãã®è·ç©ãæã£ãŠéŠãåã£ãŠèªæ®ºãããšèšãããŠããããã ããJS ã¯ãŸã éè¯ãªã®ã§ã泚æããŠãã ããã
Go ã®äœæè 㯠Java ã®äœæè ãè¶ ããããšã決æããŸãããåå®®ã®äžã§ããã圌ãã¯èªåã®åäŸã®ããã«DNAéã®äžéšããã ã¹ã¿ãŒã®ãã®ã«çœ®ãæããŸãã...ãããŠã圌ãã¯å人ã®ç¹åŸŽãå¿ èŠãªããšããå£å®ã®äžã§ãæã ãã§ãªã錻ãšäžç·ã«è³ãåãèœãšããŸããããããŠããã®åæ§ã«ãã£ãŠæ··ä¹±ããªãããã«ã誰ããäºãã«äŒŒãŠããã¹ãã§ãã OOP ã®æµè¡ã¯å»ããGo ã¯ã¯ã©ã¹ããã³ãã¬ãŒããåãåããŸããã§ããããããã圌ãã¯åœŒã«ãŽã«ãŒãã³ãäžããŸãããããããŠåœŒã¯ä»æ¥ãŸã§ããŸããŸãªå ¬çäºæ¥ããµããŒãããªããçããŠããŸãã
é·ãéãäžéšã®æ奜家ã¯ãã€ã³ã¹ãã¬ãŒã·ã§ã³ã圌ããè¿œãè¶ããŸã§ãé²è¡äžã®ããã«ããªã¢ã®æ§è³ªã«ã€ããŠçæ³ããŠããŸããããã®åŸã圌ãã¯æææš©ã®æŠå¿µãšåŒã°ããäžè²«ããå®æçããã³å²åŠçã·ã¹ãã ãéçºããRust ãèªçãããŸããã Rust ã¯ãåäŸã®é ããå®ããããååã«å¯Ÿããèª å®ããšå¿ å®ãã«ãã£ãŠéç«ã£ãŠããŸãããäœããããããã«å²ãåœãŠãããå Žåã圌ã¯çµ¶å¯Ÿã«èª°ãå·ã€ããªããšç¢ºä¿¡ãããŸã§ã¯ãããããŸããã§ãããããããRust ã«æå°ããã«ã¯ãããŒãã·ã§ã³ãšåçšãã§ãã«ãŒã®æŠå¿µãç解ããå¿ èŠããããŸããããã®åŸãåå ¥åºæºã¯15,37ïŒ äžæãããšããã
æ°ããèšèªãéšåŸã®çã®ããã«å¢æ®ããäžæ¹ã§ãå€ãèšèªãå¢åãæ¡å€§ããŸããã Java ã¯ããã®åããšã£ãå²åŠã¯ã©ãããçãŸãããžã§ããªãã¯å»è¬åãšã©ã ãã®åœ¢ã§è£ç¶Žç©ãåãåããŸãããææãã¹ã±ã«ãç§ã¯ C# ã§åæ§ã®ã©ã ããèªåçšã«ååŸããåæã« Linq ãšããååã®æ人ãèŠã€ããŸããã Java ãé ãããšãããšãªããStream API ãå°å ¥ããŸãããããããC# ã¯äºæ³å€ã®åããããasync/await æããã€ããåãåºããéã null ãããââã¯ãæãæšãŠãŸããããžã£ã¯ã¯ãè¥ãã©ã€ãã«ãè¿œããããéçšã§ãããŸããŸãªçŽ æã®ããŸããŸãªãããã¯ã§æ§æãããå€åœ¢ããããã®ããã«ãªããŸãããããã€ãã®ç©ãèœã¡ãŠããŸããããã®ç¶æ ã§ãçªç¶ç®èŠãã C++ ãäžçãçºèŠããŸããã圌ã¯ããã«ç¬èªã®ã©ã ããšèªååæšè«ãäœæããŸãããä»ãC# ãš Java ã¯ãã®ãããªå æ¯ã«ææãæããŠåŸãããããŸããã圌ã®æ£åŒŸéã«ã¬ãŒã¶ãŒç §æºåšãéãããŒãã§è²Œãä»ãããããªã¬ã³ãžè²ã®åžœåã«é»ãçŒé¡ããããããæ§ãã·ã§ã«ããŒã¹ãã©ããããã¶ãäžãã£ãŠãã姿ã§ãC++ ã¯åœŒãèŠããã¹ãŠã®äººã«çã®ææãåŒãèµ·ãããŸãããå€ãèšæ¶ãããæããèãæ±ãã人ããã...
ã¿ãªãããè¯ãäžæ¥ããæ°ã«å
¥ã£ãŠããã ããã°ãç§åŠããã³å²åŠæ¥çã®åŽåè
ã«ã€ããŠã®ç¶ç·šãæžããŸãã
åºæïŒ habr.com