Microsoftã§11幎以äžã«ããã£ãŠ.NETèšèªãéçºããŠããMads Torgersenã¯ãããŒã ã®æéãšãªãååã®èª¬æãå
±æããåèšèªã®éçºã«ã€ããŠæ±ºå®ãäžããŸããã ç§ã¯åºãMadsã«æž¡ããŸãã
11幎以äžã«ããããç§ã¯Microsoftã§.NETããã°ã©ãã³ã°èšèªã䜿çšããŠããŸããããã®éãèšèªãéçºããããã«ãéçºè
ã®å©çãèæ
®ã«å
¥ããããšè©Šã¿ãŸããã ãªãŒãã³ãœãŒã¹é©åœã®ãããã§ïŒ.NETããã°ã©ãã³ã°èšèªã ãã§ãªãã.NET
ã¹ã¿ãã¯å
šäœã«é¢ããŠãïŒãéçºè
ãšã®å¯Ÿè©±ã¯æ ¹æ¬çã«æ¹åãããŸãããããã¯ãç§ãããè¯ãéžæãããã®ã«åœ¹ç«ã¡ãŸããã ãã ãããããã®æ±ºå®ãã©ã®ããã«è¡ã£ãã®ããæ£ç¢ºã«å
±æã§ãããšã¯éããŸããã§ããã ããã°ã©ãã³ã°èšèªã®éçºæŠç¥ãã€ãŸãå.NETèšèªã®æŠå¿µãšãã®éçºèšç»ã«ã€ããŠè©±ãåã£ãŠããŸãã
ãã®èšäºã§ã¯ãåèšèªã«é¢ãã決å®ãè¡ãéã«éµå®ããååã詳现ã«åŒ·èª¿ããããšæããŸãã ããã¯äžè¬çãªæŠèŠã§ãããéçºèšç»ã§ã¯ãããŸããã
CïŒ
CïŒã¯äœçŸäžäººãã®äººã
ã«ãã£ãŠäœ¿çšãããŠããŸãã
Stack Overflowã®éçºè
ãžã®èª¿æ»ã«ãããšãCïŒã¯2016幎ã«æã人æ°ã®ããããã°ã©ãã³ã°èšèªã®1ã€ãšããŠèªèãããŸããã Javaãšããã¡ããJavaScriptã ãã人æ°ãéããŸããïŒSQLã¯ããã°ã©ãã³ã°èšèªãšã¯èŠãªãããŸããããããã«ã€ããŠã¯è°è«ããŸããïŒã ãããã®çµæã¯ãããŸããŸãªèšèªã³ãã¥ããã£ã§ã®Stack Overflowãµã€ãã®äººæ°ã®ã¬ãã«ã«åœ±é¿ãããå¯èœæ§ããããŸãããCïŒã¯ééããªãæãäžè¬çãªããã°ã©ãã³ã°èšèªã®1ã€ã§ãã Unityãšã³ãžã³ã®ã²ãŒã ãXamarinã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãASP.NETã®Webã¢ããªã±ãŒã·ã§ã³ãWindowsã®ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã
Azureäžã®Linuxã®.NET Coreãã€ã¯ããµãŒãã¹ãããã³Amazon Web ServicesïŒAWSïŒãã©ãããã©ãŒã ãªã©ãããŸããŸãªæ¹åã§åºã䜿çšãããŠããŸãã ã
ãŸãèå³æ·±ãã®ã¯ãååã®èª¿æ»ã§æã奜ãŸãã10ã®èšèªãšãã¯ãããžãŒã«é¢ããStack Overflowã®
å¥ã®èª¿æ»ã§ãCïŒãšPythonã ããå«ãŸããŠãããšããäºå®ã§ãã
é·ã幎æãçµãŠã人ã
ã¯CïŒãæãç¶ããŠããŸãïŒ ãªãã§ïŒ ãã®éãã£ãšãç§ãã¡ã¯ãã©ã°ããã£ãºã ãšç§ãã¡èªèº«ã®ã¹ã¿ã€ã«ã§ãããéçºããæ°ããåé¡ã解決ããèšèªã®æ¬è³ªãå€ããŸããã§ããã CïŒã¯ã匷åã§å¹ççã§äœ¿ããããèšèªãšèŠãªãããŠããŸãã äºãã«ãªããæªæ¥ããªããããéåžžã¯.NETã«é¢é£ä»ããããŸãã
CïŒéçºæŠç¥
éçºè
ã®å¢å€§ããããŒãºã«å¯Ÿå¿ããäž»å°çãªå°äœãç¶æããããã«ãCïŒã®éçºãç¶ããŸãã ç¹å¥ãªã粟ç¥ããç¶æããããšããªãããç©æ¥µçã«ã€ãããŒã·ã§ã³ãå°å
¥ããŸãã éçºè
ã®å€æ§ãªèŠèŽè
ãèæ
®ããŠãç§ãã¡ã¯çç£æ§ã®åäžãšèšèªã®æ¹åã«ç¹ã«æ³šæãæããŸããããã¯ã»ãšãã©ã®äººã«ãšã£ãŠæçšã§ãã äžè²«ããäžè²«æ§ã確ä¿ããããã«ãèšèšäžã®æ±ºå®ãå®å
šã«å¶åŸ¡ããªããããšã³ã·ã¹ãã ãæ¡å€§ããCïŒèšèªã®éçºæ¹åã決å®ããäžã§ã®ãã®åœ¹å²ã匷åãç¶ããŸãã
CïŒã®æ¬¡ã®åããŒãžã§ã³ã«ã¯å€§å¹
ãªæ¹åãå«ãŸããŠããŸãïŒCïŒ2.0ãLINQããã³CïŒ3.0ã®å€æ°ã®æ©èœæ¹åãCïŒ4.0ã®åçåãCïŒ5.0ã®éåæãCïŒ6.0ã®å°ãããŠã䟿å©ãªé¢æ°ã®ã»ããã æ°ãããŠãŒã¹ã±ãŒã¹ã«é©å¿ããããã«å€ãã®æ©èœãè¿œå ãããŸãããCïŒ5.0以éãæ¥ç¶ãããããã€ã¹ãšãµãŒãã¹ããã®ãããªæ¥ç¶ã®é床ãããã³ããããééããããŒã¿ã¹ããªãŒã ã®åŠçã«ç¹å¥ãªæ³šæãæãããŸãã CïŒ7.0ã®æ°ããããŒãžã§ã³ãäŸå€ã§ã¯ãããŸããããã®äž»ãªé©æ°ã¯ãã¿ãã«ãšãã¿ãŒã³ãããã³ã°ã§ããããã«ãããã³ãŒãå
ã®ããŒã¿ãããŒãšå¶åŸ¡ã®äœæ¥ãå€æããã³ç°¡çŽ åã§ããŸãã
CïŒ6.0ãããèšèªéçºè
ããã®ã¡ã¢ãGitHubã§å
±æãå§ããŸããã ã³ãã¥ããã£ãšã®å¯Ÿè©±ã®äžã§æ°ããæ©èœã次第ã«ç»å ŽããMicrosoftã "è²¢ç®è
"ã®1ã€ãšããŠèªèãããŠãããšããäºå®ãåºãŠããããšããããŸãã
CïŒèšèªéçºããã»ã¹ã®èª¬æã¯GitHubã®
dotnet / csharplangã»ã¯ã·ã§ã³ã§å
¬éãããŠãããè°è«ã¯
csharplangã¡ãŒãªã³ã°ãªã¹ãã§è¡ãã
ãŸã ã
ããžã¥ã¢ã«ããŒã·ãã¯
Visual Basicã¯ãæ°åäžäººã䜿çšããŠããŸãã
ãããã®ã»ãšãã©ã¯WinFormsã䜿çšããŠWindowsçšã®ããžãã¹ã¢ããªã±ãŒã·ã§ã³ãäœæããäžéšã¯ASP.NET Webãã©ãŒã ã䜿çšããŠWebãµã€ããäœæããã®ãåŸæã§ãã ãããã®ã»ãšãã©ãCïŒã䜿çšããŠããŸãã å€ãã®éçºè
ã«ãšã£ãŠãããã¯åœŒããåãçµãã§ããããŸããŸãªãããžã§ã¯ãã®èšèªèŠä»¶ã«ãããã®ã§ãã ãã ããVisual Basicã®åºæ¬çãªãŠãŒã¹ã±ãŒã¹ãè¶
ããŠãVisual Basicã䜿çšã§ããå Žåã§ããå€ãã®ãŠãŒã¶ãŒã¯ããããããšãªãCïŒã«ç§»è¡ããŸãã CïŒã®ãšã³ã·ã¹ãã ãäŸãããã³ã³ãã¥ããã£ã¯ãããåºãããšãå€ãã§ãã
Visual Studioã«ã¯èå³æ·±ãåŸåããããŸããæ°ããéçºè
ã®éã§Visual Basicã䜿çšããå²åã¯ããã¹ãŠã®éçºè
ã®2åã§ãã ããã¯ãVisual BasicãåŒãç¶ãããã°ã©ãã³ã°ã«ç²ŸéããŠããé«å質ã§ã¢ã¯ã»ã¹å¯èœãªèšèªã®åœ¹å²ãæããããã©ãããã©ãŒã ãšéçºã®äž¡æ¹ã«ç²ŸéããŠãã人ã«é©ããŠããããšã瀺åããŠããŸãã
Stack Overflowã®åçè
ã¯ãVisual Basicã«å¯ŸããŠåŠå®çãªåå¿ã瀺ããŸãããèšèªã®ãªã¹ãã®äžã§ããŠãŒã¶ãŒã代æ¿åãèŠã€ããããšã奜ãæåã®å Žæã«ãªããŸããã ããã¯æççãªèŠæ¹ãããã¹ãã ãšæããŸãã ãŸã第äžã«ããããã®äººã
ã«ã¯ãåé²ããããšéé£ã§ããªãVB6éçºè
ãå«ãŸããå ŽåããããŸãã ããã«ãã¹ã¿ãã¯ãªãŒããŒãããŒã¯Visual Basicéçºè
ã®äž»ãªçæ¯å°ã§ã¯ãªãããã調æ»ã«åå ããããšã決ããå Žåã¯ãå¥ã®ããã°ã©ãã³ã°èšèªã®ãã¡ã³ã§ããã¹ã¿ãã¯ãªãŒããŒãããŒãæ¢ã«èšªããŠããå¯èœæ§ãé«ãã§ãã æåŸã«ããããã®çµæã詳ããèŠããšãã»ãšãã©ã®Visual Basicéçºè
ã¯CïŒã«åãæ¿ããããšã奜ã¿ãŸããããã¯ãVisual BasicãæŸæ£ããã®ã§ã¯ãªãã1ã€ã®èšèªã§.NETã®éçºã«éäžãããããšã瀺ããŠããå¯èœæ§ããããŸãã
äžèšã®ãã¹ãŠãèãããšããã®ãããªçµ±èšã¯èãããããã®ã§ãã Visual Basicã䜿çšããŠãã人ã®å€ãã¯ãèšèªã®é
ããæããããèšèªã®æªæ¥ãçã£ããããŠããããã§ãã æ©äŒãå©çšããŠãã®åé¡ã«å¯ŸåŠããŸãããïŒ
Visual BasicéçºæŠç¥
Visual Basicãã·ã³ãã«ã§æé ãªèšèªãšããŠãµããŒãããŸãã .NETç°å¢ã®äž»èŠèšèªã®1ã€ã§ããããã«å¿
èŠãªãã¹ãŠãè¡ããŸããããšãã°ãCïŒã§æ°ããæ©èœãè¿œå ãããšãã«APIãå€æŽãããå ŽåãVisual Basicã§ãã®APIã䜿çšããã®ã¯èªç¶ã«èŠããã¯ãã§ãã å€ãã®éçºè
ãVisual BasicãšCïŒã®äž¡æ¹ã䜿çšããŠããããšãèãããšãã¯ãã¹èšèªããŒã«ã䜿çšãããšããååãä¿æããŸãã Visual Basicããã³ãŠãŒã¹ã±ãŒã¹ã®äžè¬çãªé åã§ã®æŽæ°ããã°ã©ã ã®ãªãªãŒã¹ã«çŠç¹ãåœãŠãŸãã
ããã¯ãCïŒãšVisual Basicãå
±éã®ã³ãŒã¹ããã©ã£ã2010幎ã«è¡ã£ã
å
±åéçºæŠç¥ããã®è±åŽã§ãã æ¥éã«é²åããCïŒã«åŸãããšã¯ãVisual Basicã®æŠç¥ã倱ãã ãã§ãªããã·ã³ãã«ããšã¢ã¯ã»ã·ããªãã£ã«æªåœ±é¿ãåãŒããŸãã
Visual Studio 2015ã§ã¯ãVisual Basic 14ãšCïŒ6.0ã¯åºæ¬çã«äžç·ã«éçºãç¶ããNULLå¥ïŒïŒãïŒãNameOfãªã©ã®æŒç®åãå€ãæ¹åãããŸããã åæã«ããããã®ããããã«åºæã®æ¬ ç¹ã®ããã€ãã¯ãäž¡æ¹ã®èšèªã§åé€ãããŸããã ããšãã°ãVisual Basicã§ã¯ãè€æ°è¡ã®æååãªãã©ã«ãæé»çãªè¡ç¶ç¶åŸã®ã³ã¡ã³ããªã©ã衚瀺ãããŸããã åæã«ãé¢æ°ãšããããã£ã¯ãCïŒã®åŒã®æ¬äœïŒåŒã®å®äœãæã€ã¡ã³ããŒïŒãããã³Visual Basicã«ã¯ãªãä»ã®æ©èœã«ç»å ŽããŸããã
VB 15ã§ã¯ãCïŒ7.0ã®æ°æ©èœã®äžéšãå°å
¥ãããŸãã ã¿ãã«ã¯ãããèªäœã§åœ¹ç«ã€ã ãã§ãªããAPI眲åã§äœ¿çšããããããäºææ§ãæäŸããããã«ã圹ç«ã¡ãŸãã ãã ããVisual Basic 15ã§ã¯ãisåŒãout-variableå€æ°ãããŒã«ã«èšèªé¢æ°ãªã©ãèšèªã®å¯èªæ§ãæãªããªã©ããã害ã®ããæ©èœã¯ãããŸããã
Visual Basicèšèªéçºããã»ã¹ã®èª¬æã¯GitHubã®
dotnet / vblangã»ã¯ã·ã§ã³ã§å
¬éãããŠããŸããfãã£ã¹ã«ãã·ã§ã³ã¯
vblangã¡ãŒãªã³ã°ãªã¹ãã§è¡ãã
ãŸã ã
Visual Basicã®éçºæŠç¥ã«ã€ããŠã¯ã
ãã®èšäºã§è©³ãã説æã
ãŸã ã
FïŒ
FïŒã¯äœäžäººãã®äººã
ã«ãã£ãŠäœ¿çšãããŠããŸãã
æ¥éã«çºå±ããŠããããããªãæé·ã®èŠéãã瀺ããŠããŸãã æ®éçãªèšèªã§ãããããããªãå¹
åºãã¢ããªã±ãŒã·ã§ã³ããããŸãããã¯ã©ãŠããšWebãµãŒãã¹ãããŒã«ãšãŠãŒãã£ãªãã£ãåæã¯ãŒã¯ããŒããããŒã¿åŠçã§ã®äœ¿çšãç¹ã«éèŠã§ãã
FïŒã¯ããæ°ã«å
¥ãã®ããã°ã©ãã³ã°èšèªã®
ã©ã³ãã³ã°ã§é«ãäœçœ®ãå ããŠã
ãŸã ã ãã®ãªã¹ãã«ããä»ã®ã»ãšãã©ã®èšèªãšæ¯èŒããŠãFïŒã«ã¯çŽ æŽãããããŒã«ãããããããšããäºå®ã«ãããããããCïŒãVisual Basicãããçµéšãå°ãªãã§ãã å€ãã®é©æ°ãèšèªã®é²æ©ã«å€§ããè²¢ç®ããŠããŸãã .NETç°å¢ïŒMicrosoftã®å
å€äž¡æ¹ïŒã®éçºè
ã¯ãFïŒãèæ
®ã«å
¥ããŠç¿åŸããå¿
èŠã®ããããã°ã©ãã³ã°èšèªãšèããŠããŸãã
FïŒã«ã¯éåžžã«èå³ã®ããã³ãã¥ããã£ããããç¹ã«å®å
šã«ãªãŒãã³ãªèšèªéçºããã»ã¹ã«ãããéçºãšç¶ç¶çãªæ¹åã«éåžžã«éèŠãªåœ¹å²ãæãããŠããŸãã ããã¯ããªãŒãã³ãœãŒã¹ã®.NETèšèªã®äžã§çµ¶å¯ŸçãªãªãŒããŒã§ããããã®éçºãžã®éèŠãªè²¢ç®ã¯ãã€ã¯ããœããã®å€éšã§è¡ãããŠããŸãã
FïŒéçºæŠç¥
FïŒã®éçºãžã®ã³ãã¥ããã£ã®ç©æ¥µçãªåå ããµããŒãããã³å¥šå±ããéçºè
ã³ãã¥ããã£ã®ãããªãè²¢ç®ã«å¿
èŠãªã€ã³ãã©ã¹ãã©ã¯ãã£ãšããŒã«ã®äœæãç¶ç¶ããŸãã FïŒãåžå Žã§æé«ã®ããŒã«ãåããé¢æ°åããã°ã©ãã³ã°èšèªã«ããããŒã«ã®èšèªãšæ©èœãæ¹åããã³ãã¥ããã£ãžã®åå ã®é害ãåãé€ããCïŒãšVisual Basicã®éã®ã®ã£ãããæžããããã«åé¡ã®ããåé¡ã解決ããŸãã CïŒèšèªã®æ°ããæ©èœãå©çšå¯èœã«ãªããšãFïŒãšã®äºææ§ã確ä¿ãããŸãã FïŒã¯ãã³ãã¥ããã£ã«ãšã£ãŠéèŠãªãã©ãããã©ãŒã ãåŒãç¶ãã¿ãŒã²ããã«ããŸãã
MLãã¡ããªã®åŒ·åãªæ©èœçéºç£ãš.NETãã©ãããã©ãŒã ãšã®æ·±ãçµ±åã«åºã¥ããŠãFïŒã¯å€ãã®é©æ°çãªæ©èœãç²åŸããŸããã ã¿ã€ããããã€ããŒãããã¢ã¯ãã£ããã¿ãŒã³ãããã³èšç®åŒã¯ããã®èšèªãäžæ©èžã¿åºããŠåŠç¿ããæºåãã§ããŠãã人ã«çŽ æŽãããæ©äŒãæäŸããŸãã FïŒã¯ãããããã¬ãã«ã§ã®æ¡çšã®é害ãåãé€ãããšãæãå¿
èŠãšããŠããŸãã
FïŒ4.1ã«ã¯ãRoslynãšãã£ã¿ãŒã¯ãŒã¯ã¹ããŒã¹ã®æœè±¡åãšã®çµ±åã.NET Coreããã³.NET Standardãžã®ãã©ãŒã«ã¹ãããã³ã³ã³ãã€ã©ãšã©ãŒã¡ãã»ãŒãžã®æ¹åã«ãããVisual Studioã®ããŒã«ã倧å¹
ã«æ¹åãããŠããŸãã Visual StudioããŒã«ãããã®æé©åã®éèŠãªéšåïŒæ¹åããããšã©ãŒã¡ãã»ãŒãžãå«ãïŒã¯ãFïŒã³ãã¥ããã£ã®ç©æ¥µçãªåå ã®çµæã§ãã å°æ¥çã«ã¯ãFïŒã³ãã¥ããã£ãšãã€ã¯ããœããã®ä»ã®ã¹ãã·ã£ãªã¹ãã®äž¡æ¹ãšååããŠãFïŒã«ã¯ã©ã¹æé«ã®ããŒã«ãæäŸããåžå Žã§æé«ã®ããŒã«ãåããé¢æ°åããã°ã©ãã³ã°èšèªã«ããäºå®ã§ãã
Fitèšèªã®èª¬æã¯ã
GitHubãš
RFC ã§æäŸãããŠãã
ãªããžããªã§èŠã€ããããšãã§ã
ãŸã ã
ãããã«
.NETããã°ã©ãã³ã°èšèªã®ææ決å®ã·ã¹ãã ã«å
ãåœãŠãããšãã§ãããšæããŸãã ç¹å®ã®éžæããããã³ã«ããã®æ±ºå®ã®çç±ãç解ããŠã»ããã 誀解ããããšãé床ã®æããæ¶æž¬ãçããŸãã ããã«ãç§ãã¡ã®æå³ãã©ãã ãããç解ããŠãããã«å€§ããäŸåããããžãã¹äžã®ææ決å®ãè¡ãå¿
èŠããããŸãã
éçºã«é 匵ã£ãŠãã ããïŒ
翻蚳ã«èª€ããããå Žåã¯ããã©ã€ããŒãã¡ãã»ãŒãžã§å ±åããŠãã ããã