ä¸äºç ã¨ä¸å¤§ç¾å¾³ã¨ããããã°ã©ã
ããã°ã©ãã«åã£ã¦éè¦ãªè½åã¨ãããæ°è³ªã¨ãã¦ãä¸äºç ã¨ããã®ãããããããªãããªã¼ã¨ããµã¨æã£ãã®ã ã£ãã
ãªããã¡ãã£ã¨ãããã¨ãéæããæã«ãããããªãã¦ãã£ããªã¬ããã¼ï¼ï¼ãã°ããªã¬æ°ä¸çã®ç¥ã ï¼ï¼ï¼ãã¿ãããªãã¨ãæã£ããã¨ããã人ã¯çµæ§ããã¨æãããã§ããã¾ãæ°å¹´ãä¸å¹´ãä¸ã¶æãæã«ã¯ä¸æ¥ã§å®ã¯ãããªã«ãããããã¨ã§ããªãã£ããã¨ã«æ°ä»ãã¦ãæ¥ããããæãããããããããã§ããã ããèªåã®éå»ã®æ¥è¨ã¨ãè¦ãã®ã¯é¢ç½ãããã§ãã
ã§ã¾ããã®æ°è³ªã£ã¦ãå¾ã§èããã¨æ¥ãããããã¨ã ã£ãããããã ãã©ãããããã®åã³ãå³ãã£ãç¬éã¨ããã®ã¯ãªããªãå¿«æãªããã§ãããã°ã©ãã®äººã ã¨çµæ§ããããçµé¨ããã人ã¯å¤ãããããªããã¨æãã¾ããããã°ã©ããããªãã¦ãç 究è·ã¨ãã§ãçµæ§ããããã§ããã
ã§ãããããæ°è³ªãç¡ã人ã£ã¦ãããã£ãã Hello, world! ã£ã¦åºããããã£ãããããªã¹ä½ãããããã£ãã concurrent parallel 㪠GC æ¸ãããããããããããããã°ã©ã æ¸ããããã ããããã ããï¼ãã¿ãããªæãã«ãªã£ã¦ãã¾ã£ã¦ãããã§å¿«æãå³ãããªã人ã¯ãªããªãããã°ã©ã ã«èå³ãæã¡ç¶ããããªãããããªãããªã¼ãã¨ã
ä»ã®ä¾ã¨ãã¦ã¯ããªããæ°ãããã¨ãç¥ãã¨ããã®ç¥èãã²ãããããããªã£ããããªã«ãèªåãå大ãªãã¨ãç¥ã£ã¦ããããªæ°ã«ãªã£ããããã®ãã¨ãç¥ããªã人ããã«ã«ããããªã£ããã C++ ã®å®ææ¸èªã㧠C++ ãµã¤ã³ã¼ã¿ãããªæ°å㧠algorithm ã¨ã functional ãå¤ç¨ããä»äººã«ã¯èªããªãã³ã¼ããæ¸ããããä»äºã§ Haskell 使ãããï¼ã¨ãè¨ã£ã¦ã¿ããâ¦ã¨ããããããã¨ãããã¨æãã¾ãã
ã§ã¾ãåããã¦ã¶ãããã§ããã©ããããããã£ã¦å¥½å¥å¿ãåä¸å¿ã®è£è¿ãã§ããããªã¼ã¨æããã§ãããèªåã®å¦ãã ãã¨ã«æåã§ããªã人ã£ã¦ã®ã¯ããã¯ãããã°ã©ãã«ã¯ã¡ãã£ã¨ä¸åããããããªããã¢ããã¼ã·ã§ã³ç¶æãã«ããã§ãããããã
ãããã¡ãã£ã¨ããã§æ¸ããä¸äºç ã¯ãä¸äºç ã®å義ããã¯å°ããºã¬ã¦ãããã§ãããä¸å¿ä¸äºç ã®èª¬æãµã¤ããèªãã§ã¿ã¦ããæ°ä¸çã®ç¥ãã¨ããªã«ãã«ã¤ãã¦å ¨ç¥ã§ããããã«åããã®é¨åãæèãã¦æ¸ãã¦ã¯ã¿ãã®ã§ããã©ã
http://bangin.wordpress.com/2008/12/21/%E4%B8%AD%E4%BA%8C%E7%97%85chunibyo/
ã§ã次ã«æãåºããã®ã Larry Wall ã®èªãããã°ã©ãã®ä¸å¤§ç¾å¾³ã§ã dankogai ããã®ç¿»è¨³ãå¼ç¨ããã¦ãããã¨ã
å ¨ä½ã®å´åãæ¸ããããã«æéãæãã¾ãªãæ°è³ªããã®æ°è³ªã®æã¡ä¸»ã¯ãå½¹ç«ã¤ ããã°ã©ã ãæ¸ãã¦ã¿ããªã®è¦å´ãæ¸ãããããåã質åã«ä½åº¦ãçããªãã¦ã ããããã«ææ¸ãæ¸ãããããããã£ã¦ãããã°ã©ãã¼ã®ç¬¬ä¸ã®ç¾å¾³ã§ããã
ã³ã³ãã¥ã¼ã¿ã¼ãæ æ ¢ãªæã«æããæãããã®æãã®æã¡ä¸»ã¯ãä»ããåé¡ã«å¯¾å¿ ããããã°ã©ã ã«ã¨ã©ã¾ãããä»å¾èµ·ããããåé¡ãæ³å®ããããã°ã©ã ãæ¸ãã å°ãªãã¨ããããããã¨ããããã£ã¦ãããã°ã©ãã¼ã®ç¬¬äºã®ç¾å¾³ã§ããã
ç¥ç½°ãä¸ãã»ã©ã®éå°ãªèªå°å¿ãã¾ãã¯äººæ§ã«å¯¾ãã¦æ¥ãããããªãããã°ã©ã ãæ¸ããã¾ãä¿å®ãããã¨ããæ°è³ªããã£ã¦ãããã°ã©ãã¼ã®ç¬¬ä¸ã®ç¾å¾³ã§ããã
ã®ä¸ã¤ãç§ã¯åè äºã¤ã¯ãããåæã§ãåªç§ãªããã°ã©ãã£ã¦ã®ã¯ããã¦ããã®æå³ã§æ æ°ã§çæ°ã ã¨æããã§ããããã å²æ ¢ã¯ã©ãããã£ããæ¥ãªãã¦ãä»åãããä¸ã¤ç®ã£ã¦ãªãã ã£ãâ¦ã¨æãåºããªãã£ãã§ããè¬èã§åªç§ãªããã°ã©ãã£ã¦çµæ§ããæ°ããããã ããããåã£æã£ã¦ä¸äºç å ¥ãããããããããâ¦ã¨ããããããã¨ãæ¼ ç¶ã¨æã£ãã®ã§ããã
ããã§ãä¸äºç ã£ã¦ãã種å²æ ¢ã§ã¯ããããã¾ããã®ã¸ãããããããã®ã§é©å½ã§ã
ã ãã¶è©±ãå¤ãããã§ããã©ãè·æ¥ããã°ã©ãã£ã¦ããã®ã¯ãæ æ°ã»çæ°ã»ä¸äºç ãæã«ã¯ããããå¿ è¦ãããã¨æãã®ã§ãã
æã«ã¯ã©ãæ¸ãã¦ãåé·ã«ãªã£ã¦ãã¾ãã³ã¼ããæ¸ããªãã¨ãããªããã¨ããããã客ããä¸ããããã¯ã½ã©ã¤ãã©ãªä½¿ãããã¦ãããä¿®æ£ã§ããªãã¦ãææ ¢ããªãã¨ãããªããã¨ãããããä¸äºç ç漫ãªåã®çæ³ã®ã³ã¼ãã¯ä»äººããè¦ãã¨æå·ã§ãããªããããããªããããã°ã©ãã«å¿ è¦ãªæ°è³ªãåãã¤ã¤ãããããä»äºã®éæã®ããã«ãããé©åº¦ã«æãããã¨ãã§ãããã£ã¦ã®ã¯è¶£å³ããã°ã©ãã¨è·æ¥ããã°ã©ãã®å¢ç®ãããªã¼ã¨å°ãæãããã§ãã
ãªããããã°ã©ã ã®ãã¤ãã¨ããã¦ãæãæãã¨ãç¹ã«æåã®é ã¯ããã¾ãã«ãã³ã¼ãéæ¸ããããã«æ æ°ãæããã« eval ã¨ã使ãã¯ãããã(ããã¯ä¸äºç ã§ããããªã¼)ãããã£ã¡ã ããããå ¨é¨æ¸ãç´ãã¡ããã¾ããããçãªãã¨è¨ã£ã¦ãæ°ããããã algorithm ã¨ã functional ã©ããªæãã ã£ãæ°ãããããã§ããä»ã¯ã©ãã ããâ¦ã¾ããããªãã«æ§ãã¦ãæ°ããã¾ãã unit test ã¯æ æ°ãæãã¦ãã¾ãã«ã¼ã使ããæ¸ããæ¹ãè¯ãã¨æã£ã¦ã¿ããããã¾ãããã§ãã¦ãªãã©ã¤ãã©ãªããã¼ã«ãé å¼µã£ã¦ä½¿ã£ã¦ã¿ããã Google 㧠boost 使ããªãã®ã¯ãããç´ æ´ãããã¨ãè¨ã£ã¦ã¿ããâ¦ããèªåã§æ¸ãã¦ã¦ä¿ºè·æ¥ããã°ã©ãã½ãã¨æãã¦ããã
ã¾ã話ãå°ãå¤ãã£ã¦ããããã©ãã§ãããæç« ãå¾ææ°ã«æ¸ãã®ããã¶ãä¸äºç ã®çºé²ã§ããµã¨æãã¤ããã©ãã§ããããã¨ã大çºè¦ããããã®ããã«å¬ã ã¨ãã¦æ¸ãã¦ãã¾ãã¨ããããããåªç§ãªããã°ã©ãã«å¿ è¦ãªè½åã§ããã¨ãè¨ã£ã¦ã¦ãããã«èªåãä¸äºç ã ã¨æ¸ãã®ã¯éæ¥çã«èªåãåªç§ã ã¨æ¸ãã¦ããããªããã ããä¸äºç ã¨ããä¸è¬çã«è¨ã£ã¦æªããã¨ã§ããèªåãæã£ã¦ãæ°è³ªãèªå·±è¯å®çã«æããã®ããªããä¸äºç ã½ãããæããããã§ããã¼ãã¨ãã話ã
ã¾ãã¿ããªä¸äºç ã«ãªãã¾ãããã