Developers Summit 2008ãã13-B-7ãè¨èªã®ç¾å¨ã»éå»ã»æªæ¥ãèªããã®ã¡ã¢ï¼C# sideï¼
誰ãã¡ã¢ãå
¬éãã¦ããã¦ãããªãã¨åæã«æå¾
ãã¦ã¾ãããï¼è£çªçµã« id:amachang ã®ãã13-D-7ãJavaScript Tips & Techniqueããå
¥ã£ã¦ããããããã£ã¦ãä»ã®ã¨ãããã¾ãè¦ãªãã§ããï¼ã¨ããããã§æ¶ãã¦ãããã¡ã«å°ãæ¸ãã¦ããã¾ãï¼ãªãï¼ããã§å
¨é¨ãããªãã®ã¨ï¼è©±é¡ã«ä¸ã£ãé åºã¨ã¯å¿
ãããä¸è´ãã¦ããªããã¨ã«æ³¨æï¼ãã¡ãã¡è©±é¡ãé£ã³ãªããã¾ã£ããèãã¦æ¥½ããæãã®å
容ã§ããï¼ãã©ã¸ãªã®æ·±å¤æ¾éã¿ããã ã£ããã¨ããæ¸æ¨ããã®è¡¨ç¾ã¯ã¾ãã«ã´ã£ããï¼
以ä¸ã®å
容ã§èå³ãæãããæ¹ã¯ï¼å½æ¥èãã¦ãã人ãé©å½ã«æã¾ãã¦è©³ç´°ãèãåºãã¦ã¿ã¦ä¸ããï¼
æ³¢æããèªå·±ç´¹ä»
- C# ã¨ã®åºä¼ã
- ã¤ã³ã¿ã¼ã³ã§ Microsoft ã«è¡ã£ãã®ãåºä¼ã
- ãWindows ã®ãããªå·¨å¤§ãªãããã¯ããã©ããã£ã¦éçºãã¦ãããã ããï¼ãã¨ããèå³ãã
- ã¤ã³ã¿ã¼ã³ã®é
å±å
ãå½æã¾ã ç§å¯ã ã£ã C# ãã¼ã ã ã£ãï¼
- é
å±å
ã決ã¾ã£ã¦åä»è¡ã£ãã¨ãï¼åä»ã®ãå§ããããããããªãã« (é¨ç½²?) èãããã¨ç¡ããã¨è¨ããã
- COOL (C like Object Oriented Language) ãªã©ã®ã³ã¼ããã¼ã ã§å¼ã°ãã¦ããæ代
- é
å±å
ã決ã¾ã£ã¦åä»è¡ã£ãã¨ãï¼åä»ã®ãå§ããããããããªãã« (é¨ç½²?) èãããã¨ç¡ããã¨è¨ããã
- ã¤ã³ã¿ã¼ã³ã§ Microsoft ã«è¡ã£ãã®ãåºä¼ã
- æ³¢æããã¨é¢æ°åè¨èª
- 大å¦ã®èª²é¡ã§ï¼scheme ã使ã£ã¦äººå·¥ç¥è½ãä½ã£ããã¨ããã
- ãããé¢æ°åè¨èªããããã¬ããã°ã©ã ãæ¸ãã¦ãã¾ã£ã
- 100 è¡ãè¶ ããã³ã¼ãã«ãªã£ã¦ãã¾ãï¼çµå±åããªãã£ã
- æ£è§£ãé常ã«çã (20è¡ããã?) ã³ã¼ãã§é©ãã
- 大å¦ã®èª²é¡ã§ï¼scheme ã使ã£ã¦äººå·¥ç¥è½ãä½ã£ããã¨ããã
C# ã®è¨èªä»æ§
- ã¯ã¨ãªå¼ã®ï¼from x in xs ã¨ããæ§æã«ã¤ãã¦
- å½å㯠foreach(var item in source) where ... ã¨ãã£ãæ§æãæ¤è¨ããã¦ãã
- Anders ã¯ã¯ã¨ãªå¼ã« 1 å¹´ãããå対ãã¦ãã
- ãããã¦ã¼ã¶ããªãã£ãã¹ã (ãã¹ã¿ã«æ°ããæ§æã試ãã¦ããã) ããã£ã¦ã¿ãã¨ããï¼ã¡ã½ããæ¹å¼ã§ã¯èª°ã join ãæ¸ããªãã£ã
- SQL ã§ã®èªé ãå¼ã£ã¦ï¼select ããã from ãå
ã«æ¥ã¦ããã®ã¯ï¼IntelliSense ã§åæ
å ±ã使ããã
- 2005 å¹´ã®çºè¡¨æ®µéã§ã¯ï¼Visual Basic 㯠select x in xs ã ã£ã
- from from in xs ã¯ï¼å½åæ¸ããããã«ããã¤ããã ã£ããï¼ææ³ä¸ã®ææ§ããèµ·ãããã¨ãåãã£ã¦ãµãã¼ãå¤ã¨ãªã£ã
- var ã«ããåæ¨è«ã®è©±ã¯ C# 1.0 ã®é ãããã£ã
- å½æ㯠JavaScript ã«ééãããã¨ãè¯ããªããã¨æããã¦ãã
- ä»ã¯ç¶æ³ãå¤ãã£ã
- ä»ã§ã¯ Ruby ããã¶ã¤ã³ãã¼ãã£ã³ã°ã§è©±é¡ã«ä¸ããã¨ã
- æï¼ã¾ã æµ·å¤ã§ Ruby ãããã¾ã§é¨ããã¦ããªãé ï¼æ³¢æããã Anders ã« Ruby ã®è©±ãæ¯ã£ããã¹ã«ã¼ããã
- ä» Anders ãèå³ããããã¨
- ã¡ã¿ããã°ã©ãã³ã°
- è¨èªè¨è¨ã§å¾æãã¦ãããã¨
C# ã®ãã¼ã è¦æ¨¡
- C# 2.0 ã®æç¹ã§ï¼è¨èªéçºã¯ 10 人
- designer 3 人
- developer 5 人
- tester 2 人
- IDE çãå«ããã¨ãã£ã¨å¢ãã
- ä»ã¯ãã£ã¨å¢ãã¦ãã
C# ã®éçºå½¢æ
- ãã¶ã¤ã³ãã¼ãã£ã³ã°ã¯é± 3 åï¼å 2 æé
- è¨èªä»æ§ã決ã¾ã£ããå®è£ ãã¦ã¿ã¦ãã¹ã
- C# 1.0 ããªãªã¼ã¹ãããé ã«ã¯ããï¼Microsoft Research ããã»ã¼åã形㮠Generics å®è£
ãä¸ãã£ã¦ãã¦ãã
- çµå±ã»ã¨ãã©æ¸ãç´ã㦠2 å¹´ãããããã£ã
- ä¸èº«ã¯ã»ã¨ãã©åã
- ãã·ã³ãã«åã®ä»ãæ¹ã Research ããããã®ãæ°ã«å ¥ããªãçã
- å¾ã§ãã¼ã¸ããã¨ãã«å°ã£ã
- ãããããã£ã¦ãã㨠Research ã®é£ä¸ã¯åæã« fork ãã¦èªåãã¡ã§è¨èªæ¡å¼µãããåºã
- çµå±ã»ã¨ãã©æ¸ãç´ã㦠2 å¹´ãããããã£ã
- ã½ããã¦ã§ã¢ã£ã¦ã®ã¯ãã¯ãå±äººçãªé¢ãå¼·ã
- 2 é±éãããé»ã
ã¨ä½æ¥ãã¦ä¸æ°ã«æ¸ãä¸ãã¦ãã§ãã¯ã¤ã³ãã人ã
- ãæ©æ¢°ã®ãããªå¥´ãã¨å¼ã°ãã¦ãã
- ãã§ãã¯ã¤ã³ãã¦ããã« vacation ã«åºããã奴ããã¦å°ã
- 2 é±éãããé»ã
ã¨ä½æ¥ãã¦ä¸æ°ã«æ¸ãä¸ãã¦ãã§ãã¯ã¤ã³ãã人ã
- ãæ°ã«å
¥ãã®ã¨ãã㯠Anders ãã³ã¼ããæ¸ããã¨ã
- ã§ãå®éã«è£½åã³ã¼ãã«ããã«ã¯è²ã ãã¹ãã¨ããã§ãã¯ãªã¹ãããã£ã¦ããã¾ã§ãã£ã¦ããã訳ãããªã*2
- ã§ããã° C# 㧠C# ã³ã³ãã¤ã©ãæ¸ãç´ããããã©ãã®ã³ã¹ããæ£å½åã§ããªãããæªã ã«ã§ããªã*3
C# ã®è¦æã®ä¸ãæ¹
- è²ã ãªãã£ã³ãã«ããã
- è¦æã¯ä¸æ¦ PM ãã¨ãã¾ã¨ãã¦é©å½ã«éè¨ã㦠Anders ã«æåºããã
- 確å®ã« reject ããããã®ã¯ããã§è½ã¨ããã
- ã§ã以å reject ããããã®ãéããã¨ãããããé£ãã
- Anders ã®æ©å«ãè¯ããããªã¨ãã«ãªã¹ãã®ä¸ããæãã¦ãã
- 確å®ã« reject ããããã®ã¯ããã§è½ã¨ããã
- æ³¢æããèªèº«ãããã·ã¥ãã¦æ¡ç¨ãããé¨åã
- C# 2.0 ã® yield return ã¯ï¼æå yield ã®ã¿ã ã£ãï¼return ããã£ãæ¹ãããã¨æ³¢æãããæ¨ãã¦éã£ãï¼
C# ã®äºææ§
- ããè¨èªä»æ§ãï¼å¾ã§ã©ãå½±é¿ãã¦ãããï¼æåããè¦éãã®ã¯é常ã«å°é£
- ä»åæ³¢æãããæ¥æ¥ããã¨ãã«ï¼ãRuby ã®å¤æ°ã¹ã³ã¼ãã«ã¤ãã¦ã¯è§¦ãããªãã¨ã¢ããã¤ã¹ããã
- ä¸åº¦æ±ºããè¨èªä»æ§ã®å¤æ´ã¯é常ã«å°é£
- æ¢ã«ç¤¾å
ã§å¤æ°ã® C# ããã¸ã§ã¯ãããã
- ç¾å¨ï¼Microsoft 社å ã§ã®æ°è¦ããã¸ã§ã¯ãã®åå㯠C#
- å¥é¨éã§ã®ãã©ãã«å¯¾å¿ãå¯ç¤¾é·çµç±ã§éã£ã¦ãããã¨ã
- C++ ã³ã³ãã¤ã©ãã¼ã ã«ã¯ï¼ãã«ãæéã 10 % å¢ããã ã㧠Windows ãã¼ã ããããã°ããä¸ãã£ã¦ãã
- 48 æéããããã«ãã 52 æéã«ãªãã¨è²ã åé¡ãèµ·ãã
- æ¢ã«ç¤¾å
ã§å¤æ°ã® C# ããã¸ã§ã¯ãããã
- foreach ã«å¯¾ãã¦åºåãã IL ã³ã¼ããå¤æ´ããã ãã§ï¼åé¡ãå ±åããã¦ãã
- IL 解æãã¼ã«ã®åä½ãå½±é¿ãåãã
éå»ã®é¢é£è¨äº
*1:2009å¹´9æ5æ¥è¿½è¨: [http://blogs.msdn.com/ericlippert/archive/2009/08/24/iterator-blocks-part-seven-why-no-anonymous-iterators.aspx:title=]ã¨ããã¨ã³ããªããã
*2:åèï¼ãBEST SOFTWARE WRITINGããããé»çãæ¿ããã®ã«Microsoft社å¡ã¯ä½äººå¿ è¦ã? ã
*3:以åæ³¢æããã«ãèãããã¨ããï¼Microsoft ã® C# ã³ã³ãã¤ã©ã¯ C++ ã§æ¸ããã¦ããããã§ãï¼ã¡ãªã¿ã« mono ã® C# ã³ã³ãã¤ã©ã¯ C# ã§æ¸ããã¦ãã¾ãï¼