![](https://habrastorage.org/files/d41/0e5/717/d410e571775842ca9047e1d568171552.jpg)
ããããŠã圌ã¯ãŸã æ»ãã§ããŸãããïŒãã圌ãã¯åããã³ããšã³ãäŒè°ã§ããŒãã«ã€ããŠå°ããŸãã ããããŠãGoogleã¯ã©ã®ããã«èšèªããµããŒãããŠããŸããïŒãããéçºè ãããŒã ã«ã©ã®ããã«éããŸããïŒãããã¿ã€ãã³ã°ãå¿ èŠãªå ŽåãTypeScriptã¯ãªãã§ããïŒã
æãäžè¬çãªè³ªåãçµã¿åãããŠã WrikeéçºãããŒãžã£ãŒã®Igor Demyanovãšã®ã€ã³ã¿ãã¥ãŒã§è³ªåããããšã«ããŸããã
2幎以äžåã«200äžè¡ã®ã³ãŒããæ±ããŠããWrikeãJavaScriptããDartã«åãæ¿ããããšãæããªãã£ãçç±ã移è¡ã®çµç·¯ã補åã®æé·ãšéçºããŒã ã®å¢å ãä»æ¥ã®èšèªã®éçºã«ã€ããŠè©±ããŸããåæ»ãŸãã¯æ»ãããã
ã€ãŽãŒã«ããã®è£œåã¯10幎以äžåã®ãã®ã§ãããDartã䜿çšããŠWrikeããã³ããšã³ãã®éçºãéå§ããåã«äœããããŸãããïŒ
Dartã®åã«ãExtJS 3ãšäžéšExtJS 4ã«ã€ããŠæžããŸãããããã«ãå åŸæ¥å¡ã®1人ã«ãã£ãŠæžãããå°ããªèªå®¶è£œã®ãã¬ãŒã ã¯ãŒã¯ããããŸããã ãã®ãèªè»¢è»ãã¯ä»ãç§ãã¡ãæ©ãŸããŠããå¯èœæ§ãé«ããç§ãã¡ã¯ãããåŸã ã«åãé€ããŠããŸãã çŸåšããããžã§ã¯ãã«ã¯250äžè¡ä»¥äžã®ã¯ã©ã€ã¢ã³ãã³ãŒãããããŸãããããŒãã§2幎éæ°ããæ©èœãèšè¿°ããŠãããExtJSã®ã¬ã¬ã·ãŒãåŸã ã«åé€ããŠããŸãã
ã©ã®æç¹ã§ããªãJSã§æžãã®ããããã¹ãã ãšæ°ã¥ããã®ã§ããïŒ
Wrikeãæ¥éã«æé·ãå§ãããšããããã¯æ¥ãŸããã ããŒã ã«11人ãããšããJavaScriptã䜿çšããŠãã ããã©ã®ã³ãŒããæžããã®ããããçšåºŠç解ããå€ãã³ãŒãã®ãã¥ã¢ã³ã¹ããã¹ãŠèŠããããšãã§ããŸããã ããããçŸåšãããã³ããšã³ãããŒã ã«ã¯çŽ50人ããããéçºè ã¯10ãè¶ ããã¹ã¯ã©ã ããŒã ã«åæ£ããŠãããå人å¥çŽã®ã«ãŒã«ã¯æ©èœããŸããã å€ãã®ã¿ã¹ã¯ãå€ãã®éçºè ãå€ãã®ã³ãŒãããããŸãã
倧éã®ã³ãŒã-ãããã§ããïŒ
çŸæç¹ã§ã¯ãçŽ10ã¡ã¬ãã€ãã®å§çž®ã³ãŒããã¯ã©ã€ã¢ã³ãã«ããŒãããŠããŸãããããã¯5ãŸãã¯6ã§ããããããŠããã®æ°åãæãèŠããåã«ãä»ã§ã¯ãã以äžã§ãã ããããããã§ã¯äœãã§ããŸããã補åã¯æ©èœçã«æŽ»çºã«æé·ããŠããŸãã ãã¡ãããåã ã®ã³ãŒãããªã³ããã³ãã§ããŒããããããã«åªããŠããŸãããå Žåã«ãã£ãŠã¯ããã¹ãŠã®ã³ãŒããäžåºŠã«ããŒãããå¿ èŠããããŸããããã«ããããã¹ãŠã®Wrikeæ©èœãã¯ã©ã€ã¢ã³ãã§å³åº§ã«å©çšå¯èœã«ãªããŸãã
ãªãããŒããªã®ãïŒ
Dartã¯ãã³ãŒãã®æªäœ¿çšéšåãç Žæ£ã§ãããšããç¹ã§ãä»ã®ãã¹ãŠã®ãã®ãšæ¯èŒããŠå¥œæçã§ããããã«ããããã®ãããªå·šå€§ãªéºç£ã«èããããšãã§ããŸãã ãããžã§ã¯ãã倧ãããå€ãã®éçºè ãããå Žåã䜿çšãããã®ãšããã§ãªããã®ãå¶åŸ¡ããããšã¯éåžžã«å°é£ã§ãã ã³ãŒãããŒã¹ã«ããã³ãŒãããããŸã-誰ããäžè¬çãªã¢ã»ã³ããªãããããæšãŠãã®ãå¿ããã ããããããŸãã-ãããŠåœŒã¯ãŸã ç§ãã¡ãšäžç·ã«äœãã§ããŸãã ãããŠãJSããã«ããŒã§äœ¿çšãããšããã®ã³ãŒãã¯ééããªãã¯ã©ã€ã¢ã³ãã«å±ããŸãã ãŸããDartã䜿çšãããšãäžèŠãªã³ãŒããæé©åããŠã«ããã§ããŸãã ããã«ãç§ãã¡ã¯çµ¶ããå€åããã³æŽæ°ããŠããJSæšæºã«äŸåããŠããŸããã ãšã³ã¿ãŒãã©ã€ãºè£œåãäœæãããšããããæšæºããå¥ã®æšæºã«ç§»è¡ããããžãã¹æéã確ä¿ããããšã¯éåžžã«å°é£ã§ãã
DartãéžæããŠã移è¡ã®é床ãé ãããŸãããæåã«ã«ãŒãéšåãæžãæããŠãããæ®ãã®æ©èœãæžãæããŸããã çŸåšãå€ãã³ãŒããããæ°ããã³ãŒãããã§ã«ããŒãããŠããŸãã åæã«ã補åã¯ç©æ¥µçã«éçºãããŠãããæ°ããæ©èœãéåžžã«è¿ éã«å®è¡ããå¿ èŠããããŸãã
ããŒã ã®èŠ³ç¹ããèŠããšãããã»ã¹ãå€æŽãããŸãããéçºè ã¯ãã©ã®ãã©ã¡ãŒã¿ãŒãæž¡ãããããšããæç¶ãã«è²»ããæéãå°ãªããªããŸãã
ã¯ããçŸåšTypescriptãŸãã¯JS + Flowã®æ©èœã¯ã»ãŒåãã§ãããDartãæ°ã«å ¥ã£ãŠããŸãã ãã®èšèªã«ã¯ã·ã³ãã«ã§æ確ãªæ§æããããæãéèŠãªã®ã¯ãã¢ã€ãã¢ã«éäžãããªãã¡ã¯ã¿ãªã³ã°ã«è²»ããæéãç¯çŽã§ããããã«ããããšã§ããããšãã°ãES5ããES6ãžã®ç§»è¡ããã¬ãŒã ã¯ãŒã¯ãªã©ã§ãã
![](https://habrastorage.org/web/669/015/25f/66901525fa1544d6a51b09ebede22fad.jpg)
çŸåšãJSã§è£œåã³ã³ããŒãã³ãã®éçºã¯é²è¡äžã§ããïŒ
ããã€ãã®äŸå€çãªã±ãŒã¹ã§ã¯ãäœããã®é倧ãªãã°ãèŠã€ãã£ãå Žåãã¬ã¬ã·ãŒJSã³ãŒããå€æŽã§ããŸãã ãã以å€ã®å Žåã¯ãæ°ããDartã³ãŒããäœæãããŸã-å€ãã³ãŒãã眮ãæããããæ°ããæ©èœãè¿œå ããŸãã
ã©ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠããŸããïŒ
çŽ1幎åãPolymerããAngular2ã«åãæ¿ããŸããã 次ã«ãAngular3ã«åãæ¿ããŠã幎æ«ãŸã§ã«Angular4ã«åãæ¿ããäºå®ã§ãã å€ãã®äŒæ¥ã§ã¯ããã®ç¹ã§ã®ããžãã¹ã¯R'n'Dãæºããã®ãéåžžã«å°é£ã§ãããã®ãããªç§»è¡ã«ã¯é·ãè«äºãšä¿¡å¿µã䌎ããŸãã ææ°ã®ããŒã«ã䜿çšããŠãããšããäºå®ã¯ãããã³ããšã³ãéçºè ã®ã¡ãªããã ãã§ãªããååž°ãã¹ããQAããã¥ã¢ã«ã§åœ¹ç«ã€èªååãã¹ã¿ãŒã®ã¡ãªããã§ããããŸãã Dartã«åãæ¿ãããšãããã¹ãŠã®Wrikeãã¯ãã«ã«ããŒã ã®ãµããŒããåããããããã®ç§»è¡ã¯æ¯èŒçç°¡åã«ã§ããŸããã åãããšã¯Angularã«ãåœãŠã¯ãŸããŸããããŒãžã§ã³éã®ç§»è¡ã¯1ã2ãæã»ã©ç¶ããšäºæž¬ããŠããŸãã
ä»æ¥ã圌ãã¯Dartèšèªã«ã€ããŠã»ãšãã©ç¥ããªããã2幎åã«ã¯ãŸã£ããæ å ±ããªãã£ãã äœæ¥äžã®ãããžã§ã¯ãã§ãã¹ãŠãçãçããšäœãçŽãã«ã¯ã©ãããŸãããïŒ ããžãã¹ãäžè¬çã«ããã®ããã«è¡ã£ãããšãæ³åããããšã¯å°é£ã§ãã
ç§èªèº«ãããŒãžã§ã³0.8ã§Dartã䜿ãå§ããŸããããããã¯ãŸã ããŒã¿çã§ããã å®è£ ã®æç¹ã§ãWrike Dartã¯ãã§ã«å ¬åŒã«ã¢ããããŒããããŠãããä»æ§ãæšæºãªã©ããããŸãããã€ãŸããåºæ¬çã«ã¯èšèªã«äœãå€ãããªããšç¢ºä¿¡ããŠããŸããã ã©ã®èšèªãæ±ãããç¥ã£ãŠããã®ã§ãå šå¡ãåæããŠæåã®çµæãåŸãã®ã§ãå€æŽã®å¿ èŠæ§ãåççã«èšŒæã§ããŸããã ããŒããæ¯æããäž»ãªè°è«ã¯ãããªãŒã·ã§ãŒãã³ã°-ããŒããæªäœ¿çšã®ã³ãŒããã¡ãœããã«åãåãèœåã§ãã ãããŠãããã¯åœç€Ÿã®ã¬ã¬ã·ãŒããªã¥ãŒã ã«ãšã£ãŠéèŠã§ãã
ãªãTypeScriptã§ã¯ãªãã®ã§ããïŒ
ããšãã°ãWrikeãTypeScriptã«ç§»æ€ããå Žåããããããå®ããã§ãããã äžæ¹ãTSã«ç§»æ€ããŠãã»ãšãã©äœãåŸãããªãã»ã©å€ãã®ã³ãŒãããããããåãéã®ããŒããããã¬ã¬ã·ãŒãTypeScriptã«ã®ã¿æ®ããŸãã äžæ¹ãããŒãã¯ç°¡æœãã€æ£ç¢ºã«æžãããšã匷å¶ãããã¶ã€ã³ã®åçŽãªééããèš±ããŸãããããã¯ãã©ã¹ã§ããããã¡ããããã¯å³å¯ã§ãã
ä»äºã«æ»ãå Žåãã¯ããããã§ãµããŒããåããŠããŸãã CEOã®Andrei Filevã¯éå»ã«éçºè ã§ãããåãèšèªã§è©±ãããšãã§ããŸãã ããã«ãèšèªéçºè ãšããŠã®Googleã®è©å€ã¯å€ãã®ããšãèªã£ãŠããŸãã æçµçã«ããããã®å€æŽã¯ãæ©èœãå¯èœãªéãè¿ éã«éçºããã³ãªãªãŒã¹ããããŒã±ãããªãŒããŒã®1ã€ã§ããç¶ããããã«ãããžãã¹èªäœã«å¿ èŠã§ããã äžè¬çã«ãããžãã¹ã¯ãµããŒããããŠãããçŸåšãç§ãã¡ã¯éåžžã«éãåããŠãããããžãã¹ã¯ç§ãã¡ã®ã¹ããŒãã«æºè¶³ããŠããŸãã
ããããJSã§æžããŠDartã«åãæ¿ããããšãäœåãªãããã11人ã¯ããããããã®ãã¥ãŒã¹ãããã»ã©åãã§åãåããªãã£ãã®ã§ããããïŒ
JavaScript以å€ã®èšèªã§åããŠãã人ãã¡ã¯ãéåžžã«ç°¡åã«Dartã«åãæ¿ããŸããã ããã©ããããããŒãã¯ä»ã®èª°ãã®ã³ãŒãã䜿ã£ãŠåé¡ã解決ããã³ãã¥ãã±ãŒã·ã§ã³ãç°¡çŽ åããããšã«æºè¶³ããŠããŸããã ãã¡ãããJavaScriptã1ã€ã ãç¥ã£ãŠãã人ãããŸãããããæããã®ä¿¡è ãã®ããã«ãå€åãæµæããã£ãŠæããŠããŸããã
çŸåšãJavaScriptã®äžçã«ã¯ããªãäœããšã³ããªãŒãããå€ããããŸããã³ãã¥ããã£ã«ã¯ãèšèªãç¿åŸããå€ãã®æ°äººãããŸããã倧èŠæš¡ãªè£œåãã©ã®ããã«èšèšãããŠããããã»ãšãã©ç解ããŠããŸããã ç§ã®ååã®Yevgeny Gusevããã®ãããã¯ã«é¢ããã¬ããŒããæã£ãŠããŸãã ãããã¯ããã»ã©åã®ããšã§ã¯ãããŸããããJSéçºè ã®éã§å€§ããªè«äºãåŒãèµ·ãããŸããã
ã©ã®èšèªãããã®ã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã¹ãã§ã®ã¿èæ ®ããããšãã§ããŸãããããã£ãŠãããã§ã¯çŽäºãšããªããŒã¯ç¡æå³ã§ãã ããšãã°ãJavaScriptã¯èª°ã§ããããã¿ã€ããäœæããã®ã«é©ããŠããŸããJSã§ã³ãŒããã©ã®ããã«èšè¿°ããŠããã»ãšãã©ã®å Žåã¯JavaScriptãå®è¡ããŸãã ãæªãJavaScriptããšããæŠå¿µã¯ãããŸãããå¿ èŠã«å¿ããŠæ©èœããããå¿ èŠã«å¿ããŠæ©èœããªããã®ããããã§ãã
ããŒãã¯é£ããã§ãã Javaã.netã®ããã«ãããªãã«ã¯æ¬¡ã®ãããªã¢ãã©ã€ã¶ãŒããããŸãã ã§ããŸãã åçã¯ã©ã¹ãªã©ãäœæããããšã¯ã§ããŸãããã ã€ãŸããèšèªã¯ãããªããæãæ¹æ³ã«é¢ä¿ãªããããèªäœã足ã§æã€ããšãåã«èš±å¯ããŸããã
ã芧ã®ããã«ãå€ãã®Dartã¯ãªãšãŒã¿ãŒã¯çé¢ç®ãªãªããžã§ã¯ãæåèšèªã䜿çšããŠãããV8ã¯Javaã®äžéšã䜿çšããŠããŸãã 圌ãã¯å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã®èŠ³ç¹ããèšèªã®èšèšã«ã¢ãããŒããããããDartã¯äžèŠæš¡ã倧èŠæš¡ãããã³éåžžã«å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³åãã®èšèªã§ãã ããã©ã«ãã§ã¯ã圌ã¯1ã€ãæäŸããŠããŸãããæãå¹æçãªãœãªã¥ãŒã·ã§ã³ã§ãããããã«äœ¿çšã§ããŸãã ã¯ã³ã¯ãªãã¯ã§ãªã³ããã³ãã§é 延ããŒã/ããŠã³ããŒããå®è¡ã§ããŸããèšèªèªäœã¯ãã«ããã¢ãŠãããããã³ãŒããæé©åãããŸã-ãããã¯å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã«å¿ èŠãªããŒãã¹ã§ãã å°èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãJSãšæ¯èŒããŠé¡èãªå¹æã¯èŠãããŸããã
èšèªã®éçºæ¹æ³ãæ¥å¹Žã«æåŸ ãããæ°ããããšãGoogleã®èšèªéçºè ãã³ãã¥ããã£ã«ç©æ¥µçã«åå ããŠåé¡ã解決ããæ¹æ³ã«ã€ããŠã¯ãçŽ1é±éåŸã«ã€ã³ã¿ãã¥ãŒã®ç¬¬2éšãèªãã§ãã ããã
ã³ã¡ã³ãã®è³ªåã«æè¬ããå¿ èŠã«å¿ããŠããããã«åºã¥ããDartã®æäœã«é¢ãããã詳现ãªæè¡èšäºãäœæããŸãã