ææŠãã
ããèšèªã§ããã°ã©ã ãéçºããŠããå Žåã¯ãããã«ä»ã®ããã°ã©ãã³ã°èšèªã§ãœãŒã¹ãå
¥æããŠãã ãã...ç§ã¯CïŒ.NETã§æžããŠããŸãããæè¿ãŸããŸãJavaãšçµ±åããå¿
èŠããããŸãã 1ã€ã®è§£æ±ºçã¯ã察話çšã®WebãµãŒãã¹ãèšèšããããšã§ãããããã§ã¯ãªããããã§ã¯ãããŸããã Javaã«ã¯CïŒã³ã³ããŒã¿ãŒãããããã«èŠããŸãããå®éã®ãããžã§ã¯ãã§ã¯ïŒè©ŠããŠã¿ãããšãã§ããïŒå®éã«ã¯æ©èœããŸãããããhello worldãã§ã¯å®å
šã«æ©èœããŸãã ãããžã§ã¯ãå
šäœããŒãããJavaã«æžãæããããšã¯éçŸå®çã§ã-6幎以äžã«ããã£ãŠç©æ¥µçã«éçºããïŒPullenti-èªç¶èšèªåŠçïŒãCïŒã§å¿
èŠã§ãã æšå¹Žããã®ã³ã³ããŒã¿ãŒãåå¡ããŠäœæããä»å¹Žã¯CïŒããPythonãžã®ã³ã³ããŒã¿ãŒãäœæããå¿
èŠããããŸããã
Javaã§CïŒã³ã³ããŒã¿ãŒãäœæããçµéš
ãã®ãããVisual Studioã®ãããžã§ã¯ãïŒãœãªã¥ãŒã·ã§ã³ïŒã®å
¥ãå£ã§ãJavaã®ã¯ã©ã¹ãååŸããå¿
èŠããããŸãã ãã¡ããããã¹ãŠã®ã¿ã€ãã®ãããžã§ã¯ãããµããŒãã§ããããã§ã¯ãããŸããããã¿ã€ããã¯ã©ã¹ã©ã€ãã©ãªããšãã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ãã¯ããªããµããŒããããŠããŸãã ãããžã§ã¯ãã¯ãSystem.Drawingãªã©ã®ã°ã©ãã£ã«ã«ã©ã€ãã©ãªã䜿çšããªãã§ãã ãããWindowsæ©èœãDllImportã¯äœ¿çšããªãã§ãã ããã䜿çšããã©ã€ãã©ãªã«ã¯ãJavaã®é¡äŒŒç©ãå¿
èŠã§ãã 幞ããªããšã«ããã®ãããªé¡äŒŒç©ã¯ãç§ã䜿çšããæ©èœïŒXMLãGZipã¢ãŒã«ã€ããªã©ãæ±ãïŒã§èŠã€ãããŸããã ã¢ã«ãŽãªãºã ãå°ã調æŽããŠãããã€ãã®çŽ°ãã詳现ãæŸæ£ããå¿
èŠããããŸããã èšèªã¬ãã«ã§ã¯ãCïŒãšJavaã¯è¿ãã§ãããJavaã¯å°ã貧匱ã§ã-ããã¯ããããæ¬ ããŠãããã®ã§ãïŒ
- ããããã£{get; ã»ãã; }-é¢æ°ãæäœããå¿
èŠããããŸãã
- æ§é äœ-æ§é äœããªããããæåã¯åçŽã«Javaã¯ã©ã¹ã䜿çšããŠã¢ãã«åããŸããããã¢ã«ãŽãªãºã ãæžãçŽããŠå®å
šã«ç Žæ£ããŸããã
- ããªã²ãŒã-ååšããŸãããã1ã€ã®æ©èœãæã€ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ãŠã¢ãã«åãããŸãã
- event-察å¿ããããªã²ãŒãã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããã¯ã©ã¹ã®èŠçŽ ã®ArrayListé
åã«ãã£ãŠã¢ãã«åãããŸãã
- ã¡ãœããã®outããã³refåŒæ°-1ã€ã®Valueãã£ãŒã«ããæã€ã¯ã©ã¹ã«ãã£ãŠã¢ãã«åãããŸãã
- å
éš-ãã®ä¿®é£Ÿåã¯ãã¢ã»ã³ããªã®æŠå¿µããªããããJavaã§ã¯ãŸã£ããæå³ããããŸããããããã£ãŠãåçŽã«publicã«çœ®ãæããããŸãã
- new ClassïŒïŒ{assignments}-ãããã®å²ãåœãŠãè¡ãéçé¢æ°ãäœæããå¿
èŠããããŸãã
- åæå-CïŒã§èŠçŽ ã䜿çšãããããåäœã®æäœãå¯èœãªå ŽåãJavaã§ã¯ãããçŠæ¢ãããŠãããã³ã³ããŒã¿ãŒã¯åæåãJavaã¯ã©ã¹ã«å€æããå¿
èŠããããŸãã
ããããããã¯æãé£ããããšã§ã¯ãããŸããã§ãã-ã¢ããã°ãæ¢ãå¿
èŠãããèšå€§ãªæ°ã®ã·ã¹ãã é¢æ°ã®åé¡ã ããã€ãã®é¡äŒŒäœãèŠã€ãããªãã£ããããçæãããJavaãœãŒã¹ã«çæäžã«è¿œå ãããç¬èªã®ã©ã€ãã©ãªãäœæããŠãJavaã§èšè¿°ããå¿
èŠããããŸããã ããšãã°ãCïŒã«ã¯å
¥åºåæäœçšã®åºæ¬ã¯ã©ã¹StreamããããJavaã«ã¯2ã€ã®å¥åã®ã¯ã©ã¹InputStreamãšOutputStreamãããããããããã«å¯Ÿããã©ãããŒãå¿
èŠã§ãã
Cã³ãŒãããäžéšã®ãã©ã°ã¡ã³ããé€å€ããå¿
èŠãããå ŽåããŸãã¯Javaçšã«å°ãå€æŽããå¿
èŠãããå Žåã¯ãããªããã»ããµãã£ã¬ã¯ãã£ã#if JAVA ...ïŒelse ... #endifã䜿çšãããŸããã
ãã®ãããã³ã³ããŒã¿ãŒã«æ°ããæ©èœãåŸã
ã«è¿œå ããCïŒã®ãœãŒã¹ã³ãŒãã調æŽãããšãJavaã§çæããã1,500以äžã®ãŠããããã¹ãããCïŒã®ãããã¿ã€ãã®ããã«æ£ããæ©èœãå§ãããšããçµè«ã«éããŸããã
.NETãšJavaã®é床ã®æ¯èŒ
ä»ãã楜ããéšåã§ãã æéã®ãããã¢ã«ãŽãªãºã ãããïŒäž»ã«æååã§åäœããŸãïŒãCïŒãšJavaã§ã®å®è£
ã¯ãŸã£ããåãã§ãã .NETã®è¬çœªè
ãšããŠãç§ã¯åžžã«Javaã®æå¹æ§ãçã£ãŠããŸããã ããããããã¯ééã£ãŠããããšãå€æããŸãã-CïŒã¯JavaïŒWindowsã§Eclipseããèµ·åïŒããã15ã20ïŒ
ã ãé«éã§ãããæåŸ
ã©ããã«æ°åé«éã§ã¯ãããŸããã Pythonã®ç¶æ³ã¯ã©ãã§ããïŒ èªãã§ãã ããã
Pythonã§CïŒã³ã³ããŒã¿ãŒãäœæããçµéš
JavaãããPythonã§ã®å€æãããã«ç°¡åã§ããããšãå€æããŸããã åºç€ã®æºåã¯æŽã£ãŠããŸãããããžã§ãã¬ãŒã¿ãŒãæ°ããèšèªã§ä¿®æ£ãã䜿çšãããŠããé¢æ°ã®é¡äŒŒç©ãèŠã€ããïŒæžã蟌ãïŒã ãã§ãã
Pythonã«æ¬ ããŠãããã®ãäžäŸ¿ãªãã®ïŒ
- forïŒinitãcondãincrïŒ-å®å
šãªåœ¢åŒã§ã¯ãªããç¯å²ã«ããã€ãã®ç¹å¥ãªã±ãŒã¹ããããŸãããåºæ¬çã«ã¯whileãã¢ãã«åããå¿
èŠããããŸãã
- ã¹ã€ãã-ååšããªããã¢ãã«åãããif-then-else-s;
- ã€ã³ã¿ãŒãã§ãŒã¹-ãããŸããããããã¯ç©ºã®ã¡ãœãããæã€ã¯ã©ã¹ã§ãã
ä»ã®ã¯ã©ã¹ã®éåžžã«äžäŸ¿ãªã€ã³ããŒãã·ã¹ãã ã§ãããå Žåã«ãã£ãŠã¯åŸªç°äŸåãšäžè¬çãªã€ã³ããŒãã®äžå¯èœæ§ã«ã€ãªãããŸãã ãããã®äŸåé¢ä¿ã远跡ããã¯ã©ã¹ã®ãã¡ã€ã«å
šäœã§ã¯ãªããã¡ãœããã®ã¬ãã«ã§ã€ã³ããŒããå®è¡ããå¿
èŠããããŸããã ãããããã³ä»ã®å°é£ã«ããããããããããã®1,500ãŠããããã¹ãã®æ£ããéçºãéæããããšãå¯èœã§ããã
.NETãšPython Speedã®æ¯èŒ
å€ãã®äººãPythonã®é床ãé
ãããšã«äžæºãèšã£ãŠããŸãããã©ããããé
ãã®ã§ããããïŒ ãããŠãããã¯äœãã§ããïŒ Javaãšåãã¢ã«ãŽãªãºã ïŒããæ£ç¢ºã«ã¯ãåããŠããããã¹ãïŒã§æ¯èŒãããšããæ¥ãŸããã æºåã¯ããïŒ ãã®ãããPythonã¯.NETã®30åé
ãå®è¡ãããŸãïŒEclipseã§PyDevã®äžã§å®è¡ãããŸããïŒã
ãã®çç±ã¯æ¬¡ã®ãšããã ãšæããŸãã Pythonã«ã¯ValueTypeã®ãããªåçŽãªåããªãïŒç§ãç解ããŠããããã«ïŒãéåžžã®æ°å€ã§ããæ¬æ Œçãªãªããžã§ã¯ãã§ãïŒå®éã«ã¯.NETã§ã®ãã¯ã·ã³ã°ã®ããã«ïŒã ãããŠãæååèŠçŽ ã¯æåã§ã¯ãªãã1æåã®æååã§ããããŸãïŒ ã€ãŸããæåå[i]ã¯charã§ã¯ãªãã.NETã®string.SubstringïŒiã1ïŒã«äŒŒãŠããŸãã
ã¯ãã¹ã©ã³ã²ãŒãžéçºæè¡
å人çãªçµéšã«åºã¥ããŠã1ã€ã®èšèªãšãã©ãããã©ãŒã ã§éçºããä»ã®èšèªãšãã©ãããã©ãŒã ã«èªåçã«ç§»è¡ããããšãã§ãããšèšããŸãã ç§ã¯.NET Framework 4.0ã§åºæ¬ãããžã§ã¯ããéçºããŠããŸãããæ©èœçã«ã¯åçã®ãã®ããã€ã§ãæã£ãŠããŸãïŒ
- JavaãœãŒã¹ïŒã³ã³ããŒã¿ãŒïŒ;
- PythonãœãŒã¹ïŒã³ã³ããŒã¿ãŒïŒ;
- .NET Coreäžã®ãããžã§ã¯ãïŒå¥åã®csprojãã¡ã€ã«ã§ããããœãŒã¹ã³ãŒãã¯åãã§ãïŒã
- .NET Framework 2.0äžã®ãããžã§ã¯ãïŒã³ã³ããŒã¿ãŒãããã¯1人ã®é¡§å®¢ã«å¿
èŠã§ãïŒã
ç§ã¯ãVisual Studioã®äŸ¿å©ãªæ©èœã®1ã€ãå
±æããŸããããã¯ãäœããã®çç±ã§ãããã®CïŒéçºè
ã§ã䜿çšãããŠããŸããã ãããŠãããã¯ãããšãã°Javaçšã®éçºããŒã«ã«ã¯ãããŸããã ã€ãŸããå®è¡äžã«ã³ãŒããå€æŽããŠçŸåšã®äœçœ®ãçŽæ¥ç§»åããæ©èœãããã³ãã¹ãŠã®å€æ°ã®ç¶æ
ãä¿æãããå€æŽãèæ
®ããŠå®è¡ãç¶ç¶ã§ããŸãã ããã«ãããç¹ã«æãŸããç¶æ³ãåçŸããã®ã«æéããããå Žåã«ããããã°ãåçã«å®¹æã«ãªããŸãã ããšãã°ãVisual StudioãäŸå€ã®å Žæã§ããã°ã©ã ãäžæåæ¢ããã¢ãŒãããªã³ã«ãïŒãŸãã¯ãããããã®ã¢ãŒãããªãã«ããããšã¯ãããŸããïŒãé·æåŠçãéå§ããæ°åãŸãã¯æ°æéåŸã«ãã®ç¶æ³ãçºçããŸããã»ãšãã©ã®å ŽåãNullReferenceã§ãã ã³ãŒããä¿®æ£ããããã°ã©ã ãåèµ·åãã代ããã«ãå®è¡ãã€ã³ããç®çã®ã¹ããŒãã¡ã³ãã«æ»ããããã«å®è¡ãéå§ããŸãã ãããŠäžè¬çã«ãå®è¡äžã«é »ç¹ã«é©åãªå Žæã«è€éãªã¢ã«ãŽãªãºã ãå®è£
ããŸãã ååŒæååŒã®ã·ã¹ãã ãäœæãããšããåæåãšå¿
èŠãªã¢ã«ãŽãªãºã ãã©ã³ããžã®ã¢ã¯ã»ã¹ãšããé¢åãªæé ã®ã³ã³ããã¹ãã§ç掻ãäžæ¡ã楜ã«ããããšãèŠããŠããŸãã Visual Studioã§ã¯ããã®æ©èœã¯IDEãšã³ã³ãã€ã©ã®ç·å¯ãªçµ±åã«ãã£ãŠå®çŸãããŠããŸãã ãããããã¯ãããžãŒã«æ»ããŸãããã
å¶éã¯æããã§ã-ã©ã€ãã©ãªãšã³ã³ãœãŒã«ã¢ããªã±ãŒã·ã§ã³ã®ã¿ã ã«ã¹ã¿ã GUIãŸãã¯Webã¢ããªã±ãŒã·ã§ã³ãåãããšã³ããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³ã¯ãã»ãšãã©éçŸå®çã§ãã ãŸããã©ã€ãã©ãªãéçºãããšãã¯ãæ®éæ§ã®èŠä»¶ã«ãã£ãŠèª²ãããå¶éãéµå®ããå¿
èŠããããŸãã äœããæåŠããäœããæžãçŽããªããã°ãªããŸããããçµæã¯åªåãã䟡å€ããããŸãïŒ