ãã®èšäºã§ã¯ããããããããã°ã©ãã³ã°ãåŠç¿ããããã©äœããã£ãããããããããªãã£ïŒããæ°ããããã°ã©ãã³ã°èšèªãåŠã³ããã®ã§ãããããç¥ãããã£ïŒããšããã²ãšãã¡ã®ããã«ãåèšèªã®ç¹åŸŽãš(é¡æãç°¡åãããŠåèšèªã®å³ãããªã)ã³ãŒããµã³ãã«ãæ²èŒããŠããŸããæ¹å修æ£ã®ææ¡ã¯ https://github.com/boletales/which-lang-to-learn ã§åžžã«åãä»ããŠããã®ã§ãæšãèšèªãåžæãããã¿ãªããã¯ãã²ãã«ãªã¯ãæãã€ããŠãã ããïŒ
{index}
æ°ããããã°ã©ãã³ã°èšèªãåŠã³ãããšãã«ã¯åºæ¬çã«ä»¥äžã®ãããªæµãã§éžã¶ããšã«ãªããŸãã
- ç¿åŸã®ç®çãèãã
- ãªãã§ããã
- 極è«ããã£ãããããã ãããã§ãããïŒçè ã¯ããã§Haskell䜿ãã«ãªã£ãŠããŸã£ãïŒ
- æ¬åœã«ãªã«ãæãã€ããªããªãæœãPythonãã£ãšã
- èšèªãéžã¶
- æ·±ãèããªããŠãããã©ãã1幎ãçµããªããã¡ã«ããäžèšèªç¿åŸãã矜ç®ã«ãªãã®ã ãã
- ãšã«ãããããã°ã©ãã³ã°ããåŠç¿ãããïŒ
- ããã°ã©ãã³ã°ã§ããå人ã䜿ã£ãŠãèšèªãå人ã®ãµãããªã¯åœç¶ããµããŒããã¹ã¯ãã§ãã
- Python ç°¡åã ããæé€ã®ææ¥ã§äœ¿ããããããšãããããšããæå³ã§æçšã ããã©ã€ãã©ãªãå€ã
- ãããã°ã©ãã³ã°æè²çšããšéæãããŠããèšèª (Scratch, SmallBasic, HSP, ãã®ä»ãããã)ãæçšãã©ããã¯ãšããããšããŠåŠç¿ã«ã¯åããŠãã
- ã·ãã¥ã¬ãŒã·ã§ã³ãšããããã
- Julia ææ³ãç°¡åã§ãé åãæ°åŒã®æ±ããåŸæã§ããããªãã®é床ã§åã
- Rust éããŠçŽ çŽã§å®å šã§æ±çšãã³ã³ãã€ã©ã¯å£ãããããããžã§è¯ãèšèªã ãã©äžèšèªç®ã«ã¯ããããããªã
- Fortran ã¹ãã³ã³ãšãã§ãã䜿ãããŠããããã
- Webãµã€ããäœã£ãŠèŠãã³ããããã
- HTML, CSS, JavaScript ãããã䜿ããªããšãã¯ãªãã«ãªããªãã(ãªãHTMLãšCSSã¯ããã°ã©ãã³ã°èšèªã§ã¯ãªãã)
- Ruby ãªããããããªãšããã§ã€ããããŠããããã
- PHP å°æ¥ææããšèšããããšéŠãããããããªãããç°¡å
- èªåçšã®äŸ¿å©çšããŒã«ãã€ãã£ãŠç掻ãè±ãã«ããã
- ã¹ã¯ãªããèšèª(ã¹ã¯ãªããã¿ã®åŒ·ããã€+JavaScript)ã®ã©ãããäºåã³ã³ãã€ã«ãäžèŠ(ãããã)ã§ãæžãæšãŠã«åããææ³ãããŠããã¡ãªã®ã§
- Haskell, ãå¿åªããã³ã³ããªãã¥ãŒã¿ãŒãããã«ã¹ã¯ãªããæ±ãã§ããèšèªãæžããŠãããã ã³ã³ãã€ã©èšèªã ãã©ã¹ã¯ãªããã£ãœã䜿ãæ¹ãã§ãããæžãå³ã軜ã
- Rust ä»ã®çšéã«äœ¿ãåããã®ã§
- (ååŠè ãªã)VB.net, (Cã£ãœãææ³ã®èšèªãæ¢ç¿ãªã)C# Winæ°éå®ã ãã©GUIãã€ããã®ãç°¡å
- ãµã€ãã®ããã°ã©ãã³ã°ã«é£œãã
- Haskell ãæã¿éãå¯äœçšããçŠæ¢ãããŠãèšèªãé£ããŠãããããçµå±Haskellããµã€ãã®å®çšããã°ã©ãã³ã°èšèªãªãã ãªããšãªãé ã«ã¯é£œããæ²»ã£ãŠãã ãããã¶ã
- C++ 極ãããšé»éè¡åž«ã«ãªããéã®èšèªãAtCoderã§ç·ã«ãªãããããªãå šãé»éè¡ã«ã¯è§Šããªãã
- é£è§£ããã°ã©ãã³ã°èšèª ãåã¯å®çšãã§ããªããããªããã°ã©ãã³ã°èšèªãç¿åŸããŠãã£ããäœãããããã ïŒïŒïŒ
- åŠç¿ããã
- ããã°ã©ãã³ã°èªäœã¯ãããŠãªãæ¬ããã£ãã»ããå®å¿
- ããã§ãªããã°ã€ã³ã¿ãŒãããäžã®è³æã ãã§ãªããšããªã
- å ¬åŒã®ã³ãã¥ããã£ãšãå ¬ç¶æ§ã®é«ãã³ãã¥ããã£ã¯æçšãããšãè±èªã§ãã£ãŠãã
- æ¬æã®èª¬ææ¬ã«ç¥ã£ãŠããã®ã¯èŒããšããã®ã§ãèªã
- 1ã«æ»ã éããããªãéåœãã©ãããããªã
- ã³ã³ãã€ã«
- ããã°ã©ã ãã³ã³ãã¥ãŒã¿ã§å®è¡ã§ãã圢åŒã«å€æããããš
- ãããé ãèšèªã¯ã¡ãã£ãšã€ã©ããšãã(Rust, Haskell, ããŸããã®ããšã ã)
- ã³ã³ãã€ã«èšèªã»ã¹ã¯ãªããèšèª
- ã³ã³ãã€ã«ãå¿ èŠãªèšèªã»äžèŠãªèšèª
- ããŸã§ã¯ããŸãããŠã«ãªããªãåé¡
- äžè¬çã«ã³ã³ãã€ã«èšèªã®ã»ããéãããå®è¡äžã«ã³ã³ãã€ã«(JIT)ãè¡ãã¹ã¯ãªããèšèªã¯æ¯èŒçéã(JuliaãšãJSãšã)
- ã³ã³ãã€ã«èšèªã®ã»ããå®è¡åã«ãšã©ãŒãåºããŠãããããšãå€ããŠèŠªå
- (ããŒã¿)å
- ããã°ã©ã äžã®å€ã«äžããããã¿ã°ã§ããããäœãªã®ããè¡šããã®
- æŽæ°ãçåœå€ã®é åã32ãããæµ®åå°æ°ç¹æ°ã®3ã€çµãæååããšã£ãŠæååãè¿ãé¢æ°ãæŽæ°ããšã£ãŠãæåããšã£ãŠæååãè¿ãé¢æ°ããè¿ãé¢æ°ããªã©ããŸãããããããã
- åã®è¡šçŸåã匷ããšãé¢æ°ãåãé¢æ°ããç¡å¹ãªå€ãè¿ããããããªããããããã®ãã¡ããããã«ãªããã¿ãããªã®ãè¡šããŠå¬ãã
- éçåä»ãã»åçåä»ã
- å®è¡ãããåã«å€ãå€æ°ã®åã決ãŸã£ãŠããèšèªã»ããã§ãªãèšèª
- åçåä»ãèšèªã¯å®è¡ãããŸã§ããããªããšã©ãŒããã£ããé ãã£ããããŠããã€ãã
- åæšè«ã®ãªãéçåä»ãèšèªã¯èªåã§åãæ瀺ããªããšãããªãã®ã§é¢å
- éã«ãåæšè«ã®åŒ·ããã€ã¯ã»ãŒèªåã§åãæžããªããŠãåãããããïŒãã©ã³ãŒãèªããšãã«æ¡åŒµæ©èœã€ãããªããšåããããªãã®ã€ããã®ã§æžããŠããïŒ
- éçåä»ãã®èšèªã¯æäœäžã€ç¿åŸããã¹ã
- ãªããžã§ã¯ãæå
- ããã°ã©ã ã®æžãæ¹ïœ¥èšèšã®æ¹éã®äžçš®
- ç©äºããåºæã®ããŒã¿ããã£ãŒã«ãããšåºæã®æ©èœãã¡ãœããããæã€ããªããžã§ã¯ããã«åãåãã
- ããã°ã©ã å šäœãããªããžã§ã¯ããã®çžäºäœçšãšããŠèšè¿°ãã
- ããã€ãæµæŽŸããã
- ã¯ã©ã¹ããŒã¹ïŒãã£ã¡ããããªããžã§ã¯ãã®éåãã¯ã©ã¹ããå ã«ãªãã¯ã©ã¹ã«æ°ããªæ©èœãæããããç¶æ¿ããè€æ°ã®ã¯ã©ã¹ãå ±éããŠæã€ããŒã¿ïœ¥æ©èœãè¡šããã€ã³ã¿ãŒãã§ãŒã¹ããçšãã
- ãããã¿ã€ãããŒã¹ïŒã¯ã©ã¹ããç·©ãã²ãªåœ¢ããããã¿ã€ãããç¶æ¿ã«äŒŒãããããã¿ã€ããã§ãŒã³ããçšãã
- äžææãã£ã¡ãæµè¡ã£ã
- ããã°ã©ã ã®æžãæ¹ïœ¥èšèšã®æ¹éã®äžçš®
- æç¶ãåããã°ã©ãã³ã°
- ããã°ã©ã ã®æžãæ¹ã®äžçš®
- ããã°ã©ã ãé次çãªåŠçã®æµããšããŠè¡šããã®
- æç¶ãã瞊ã«äŒžã³ãŠããã€ã¡ãŒãž
- åŸè¿°ã®ãé¢æ°åããã°ã©ãã³ã°ããšã¯å¯Ÿã«ãªããã¡
- ã ãããã©ããªããã°ã©ãã³ã°èšèªã§ãã§ãã
- é¢æ°åããã°ã©ãã³ã°
- ããã°ã©ã ã®æžãæ¹ã®äžçš®
- ããã°ã©ã ã倧ããªé¢æ°ã®é©çšãšããŠè¡šããã®
- åŒã暪ã«äŒžã³ãŠããã€ã¡ãŒãžïŒå®éã«ã¯è¡ãåå²ããŠæžããã©ïŒ
- é¢æ°åããã°ã©ãã³ã°ã«å¯ŸãããµããŒããæèãªèšèªã§ããããšãããšèŸã
- æäœã§ãèšèªã«ä»¥äžã®ç¹åŸŽãã»ãã
- é¢æ°ã第äžçŽãªããžã§ã¯ãïŒé¢æ°ã®åŒæ°ãšããŠæž¡ãããå€æ°ã«ä»£å ¥ãããã§ããïŒã§ããããš
- å¿åã®é¢æ°ãç°¡åã«å®£èšã§ããããš
- (éçåä»ããªã)é¢æ°ãè¡šãåãååšããããš
- å¯èœãªã次ã®ãããªç¹åŸŽãã»ãã
- æšæºã©ã€ãã©ãªã«ãé¢æ°ãåŒæ°ã«åãé¢æ°ãïŒé«éé¢æ°ïŒãå€ãå«ãŸããŠããããš
- (éçåä»ããªã)åã·ã¹ãã ã匷åã§ããããšãé«éé¢æ°ã®åã¯åŸã ã«ããŠè€éã«ãªãã®ã§
- (éçåä»ããªã)åæšè«ã匷ãããšãè€éãªåãææžããããã¯ãªãã®ã§
- ãååä»ãå®æ°ãæçžããŠåŒäžã§äœ¿ããã¿ãããªæãçšæãããŠããããšãããŒã«ã«constã§ããããã©ã¹ã³ãŒããåºãã£ãŠé¢åãªã®ã§
- âã®ãããªç¹åŸŽãå€ãæã€ãé¢æ°åããã°ã©ãã³ã°ã§ã³ãŒããæžãããšãç®çã«èšèšãããããã°ã©ãã³ã°èšèªã¯ãé¢æ°åããã°ã©ãã³ã°èšèªããšåŒã°ãã
- ç系倧åŠçã®ãªã³ã¬ãã©ã³ã«
- ãããšãã
- ã©ã€ãã©ãªãè±å¯ïŒæ©æ¢°åŠç¿ãšãã¹ã¯ã¬ã€ãã³ã°ãšãïŒ
- 䜿ã£ãŠã人ãå€ã
- ææ³ãç°¡å
- PyPy(é«éãªå®è£ )ãšãCython(äžéšã³ãŒããCã«å€æããããŒã«)ã䜿ãã°äººéçãªå®è¡æéã§æžã
- ããããšãã
- ç°å¢æ§ç¯ãããããã
- ãšãŠãããã(æéçµæ¯20å以äž)
- ãããã°ããã¥ãã
- ãªããµã€ãã«ãŒã«ã¯ã¯ãœ
- æçšãªãªãœãŒã¹
é«éãªã©ã€ãã©ãª(numpyãšã)ã䜿ãã°Pythonããããã¬é床ãåºãã {sample:py} æ®éã®Pythonã®foræã¯é ãããPyPyã§å®è¡ãããšã ãã¶ãã·ã«ãªã(ãã ãnumpyã¯äœ¿ããªã) {result:pypy} Cythonã§éãéšåãCã«å€æããŠãéããªã {file:cymain} {sample:cy}
- å€åã¹ã¯ãªããèšèª
- ãããšãã
- æåååŠçãåŸæ
- ããããšãã
- ããã {sample:pl}
- æŸæ±åšäœã®ããã°ã©ããäœã£ãèšèª
- Cèšèªçãªforæãååšããªãã®ã§ãæååãé
åãé£æ³é
åãªã©ã®æäœã¯mapãselectãªã©ã®åçš®ã¡ãœããã§è¡ãæå
gets.split.map(&:to_i).sort.first(3).reduce(&:+)
ã¿ããã«ã¡ãœãããã€ãªããŠæžããŠããã®ãæ £ãããšçœå¿«
- ãããšãã
- æžãããã(å人ã®ææ³)
- æšæºã©ã€ãã©ãªãå å®ããŠãã
- ãµãŒãããŒãã£ãŒã®ã©ã€ãã©ãªãè±å¯
- CLIããŒã«ãWebãµãŒãã¹ã®ãµãŒããµã€ã(ããã¯ãšã³ã)ãæžãã®ã«åããŠã
- Ruby on RailsãšããWebã¢ããªçšã®è¶ æåãã¬ãŒã ã¯ãŒã¯ããã(ããããæªãèšãããã¡ã ãããªãã ããã 匷å)
- ããã±ãŒãžç®¡çããŒã«(Bundler)ããŸãšã
- ç°å¢æ§ç¯ã¯ç¹ã«é£ãããªã
- ããããšãã
- ãšãŠãããã(ã¹ã¯ãªããèšèªã®äžã§ã¯æ®éãããã ããããã§ã)
- æ£çŽãããŒã¿ãµã€ãšã³ã¹ãæ©æ¢°åŠç¿åšãã¯åŒ±ã(ããšãªããPythonãšã䜿ã£ãæ¹ããã)
- åã¢ãããŒã·ã§ã³ãéçãªåãã§ãã¯ã¯ååšããããããããæªæç
- ã©ãããŠãé床ã欲ãã人ããããã¯éçåä»ãã®å®å¿æã欲ããRubyæžãã¯Crystalãæ€èšããŠã¿ãã
äžå¿ãPythonã«ãããnumpyã«å¯Ÿå¿ããnumoãšããã©ã€ãã©ãªãååšãããããnumpyã§é«éåã§ããåŠçãªããŸãããªããšããªã(numoã¯AtCoderã§ã䜿ãã)ããŠãŒã¶ãå°ãªãããŠã°ã°ã£ãŠãæ å ±åºãªãããéçºã掻çºãšã¯ãšãŠãèšããªãç¶æ³ã ãâŠâŠã {sample:rb} Rubyã®é«éåãã¯ã¯ãããããããããšããããåçš®ã¡ãœããã«ããã«ãŒããwhileã«å€æãããšããªãéããªã(ãããã¯ã¯ãªãŒããŒãããã倧ãã)ããã£ãšããwhileæã䜿ããšãããRubyã§ããæå³ãã?ããšããæãã«ãªããããããªãä»ã®èšèªã䜿ã£ãæ¹ããã(ãã€ãã£ãæ¡åŒµãæžããšããéžæè¢ã¯äžå¿ãã)ãäœåºŠãèšããRubyistã®ãµãèšèªãšããŠCrystalããžã§ãªã¹ã¹ã¡ã
- é«éãªã¹ã¯ãªããèšèª
- ãããšãã
- â3ã€ãšæ¯ã¹ããšãã£ã¡ãéã
- LuaJITã䜿ããšãã£ãšéããã³ã³ãã€ã«èšèªäžäœå¢ãšåçã¬ãã«
- ããã€ãã®ã²ãŒã ã§ãã¬ã€ã€ãŒãããã°ã©ãã³ã°ã«äœ¿ããèšèªãšããŠæ¡çšãããŠããããã {sample:lua} {result:luajit}
- FortranãšmatlabãšPythonã®åŸéããã£ãºãã«çãããšããŠããèšèª
- ãããšãã
- ïŒã¹ã¯ãªããèšèªã®äžã§ã¯ïŒå§åçã«éããã³ã³ãã€ã«èšèªäžäœå¢äžŠã«éã
- ææ³ãã·ã³ãã«
- PyCallã§pythonã®ã©ã€ãã©ãªã䜿ãã
- æ°åŒã»è¡åãæ±ãããã
- numpyãmatplotlibãpythonããã ãã¶äœ¿ãããã
- PythonãšCãšMATLABã®è¯ããšããã©ãçååš by ããªã°ã
- Jupyter notebookã§äœ¿ãã
- 䞊ååã«åŒ·ã
- ããããšãã
- ããŸã®ãšããå ¥éåãã®è¯æžã¯ããŸããªã
- ç¹åŸŽ
- 1-indexedã瞊è¡ååºæ¬ãªã©çãããïŒæ°åŒããã®ãŸãŸäœ¿ããããæ°åŠå±ãšãã·ãã¥ã¬ãŒã·ã§ã³å±ã«ã¯äŸ¿å©ïŒ
- ã¯ã©ã¹ã¯ãªãïŒPythonã®ãµã³ãã«ã³ãŒããè³æ»ã§ç§»æ€ã¯ã§ããªãïŒïŒæ§é äœã§äŒŒããããªãã®ã¯äœããïŒ
- ã¡ãããšèããŠã³ãŒãã£ã³ã°ããªããšããŸãã¡é床ãåºãªã
- æçšãªãªãœãŒã¹
- å ¬åŒwiki
ã³ãŒãå šäœãé¢æ°ã§å ãŸãªããšæ»ã¬ã»ã©é ããªãã®ã§æ³šæïŒäžæïŒ {sample:jl}
- çµã¿èŸŒã¿ãããã®å¿ æºãææã®èªå·±è²¬ä»»ç³»ããã°ã©ãã³ã°èšèª
- ãããšãã
- æéçµããšã«ããéã
- ã¡ã¢ãªãçŽæ¥æ±ãã
- ãã€ã³ã³ã¿ãããªå¶éãããç°å¢äžã§ãåã
- å匷ã«ã¯ãªã
- ããããšãã
- ã¡ã¢ãªãçŽæ¥æ±ãããã
- ååŠè ã«ã¯é£ãã
- äœãããèªå·±è²¬ä»» {sample:c}
- èªåã®ããšãææ°éã ãšæã£ãŠããå€åèšèª
- ãããšãã
- æéçµããšã«ããéã2
- ã¡ã¢ãªãçŽæ¥æ±ãã2
- çŸä»£çãªæ©èœãããããè¿œå ãããŠãã
- ããããšãã
- äœãããèªå·±è²¬ä»»
- ååŠè ã«ã¯é£ãã
- Cã«ãªãåããã£ã±ããã
ã³ã³ãã€ã«æã«æé©åãã©ã°ãæž¡ããªããš10å以äžé ããªã£ãŠããŸã£ã(äžæ) {sample:cpp}
- ãã«ããã©ãã€ã èšèªçã®æ°æ æ°æ代ã®åè âŠâŠïŒïŒ
- ãããšãã
- æéçµããšã«ããéã3
- ã¡ã¢ãªãçŽæ¥æ±ããããçŽæ¥æ±ããã«æžãïŒïŒïŒã³ã³éèŠïŒïŒ
- ã¡ã¢ãªå®å š
- åã®åã§ããå®å šãªã³ãŒããæžãã
- æšæºã©ã€ãã©ãªã«æå¥ããªã
- ãšã©ãŒãã³ããªã³ã°ãã人ã«ããããïŒåã¬ãã«ã§ãã³ãã«ããïŒ
- ä»ã®èšèªãã倧éã«æçšãªæ©èœãèŒžå ¥ããŠãã
- ã³ã³ãã€ã©ãäžè©±ãçŒããŠããã
- ãã¯ããå¥èšèªãå®è£ ã§ããã¬ãã«ã§èªç±åºŠé«ã
- ããã±ãŒãžãããŒãžã£ãåªç§
- 䞊ååã«åŒ·ã
- ã³ãã¥ããã£ã®æ°åºŠãé«ã
- ããããšãã
- é£æ床ããé«ããïŒãããã«äžèšèªç®ã«ã¯ããããã§ããªãïŒ
- ã³ã³ãã€ã©ãå£ãããã
- ãšã©ãŒãã³ããªã³ã°ããªã人ã«å³ãã
- ãã«ããé ãïŒç¹ã«ååïŒ
- æçšãªãªãœãŒã¹
- The Rust Programming Language (åèš³): https://doc.rust-jp.rs/book-ja/
- crates.io: https://crates.io/ ããã±ãŒãžã®æ å ±ããŸãšãŸã£ãŠããŸã {sample:rs}
sieveã«bitæŒç®ãçšãããéåžžã«é«éã«ãªã£ã {sample:rs-b}
- ãããšãã
- æéçµããšã«ããéã4
- Rubyã®æžãããããšCã®é床ãåãããå®ç§ã«èŠãã
- éçåä»ããåæšè«ã匷ã(ãšãããæ瀺çã«åãæžãå¿ èŠãã»ãŒãªã)
- Rubyã®ãããšããã¯ã ãããåãç¶ãã§ãã
- ããããšãã
- ãã«ããé ã
- ã©ã€ãã©ãªããŸã ãŸã å°ãªã
- Ruby颚ã®èšèªã§ã¯ããããææ³ã¯å€å°éãããæšæºã©ã€ãã©ãªã«ããããªãã«å·®ç°ãããã®ã§æ³šæ {sample:cr}
- ããã©ããã£ãŠæžããã§ãã
- ãããšãã
- æéçµïŒæžã人éããã³ã³ãã€ã©ã®ãªããã£ãã€ã¶ããè³¢ããã°ïŒ
- CPU ã®æ°æã¡ã«ãªãã
- ããããšãã
- çã§æžãã®ã¯èŠè¡
- ãããã°ã¯ã¢ãã»ã©å€§å€
- çã§æžãã®ã¯èŠè¡
- ã¢ããã€ã¹
gcc -S main.c
ãããã°ã¢ã»ã³ããªãèŠããã®ã§ãããããä¿®æ£ããã®ãããããã- Compiler Explorerã䜿ãã®ãè¯ãã
- (C/C++ãªã©ã®) ã³ã³ãã€ã©ã¯ããŸã«ããæãã®ã³ãŒããåããŠãããªãã®ã§ãã³ã³ãã€ã«ããããã®ãèŠãŠãé©å®æåã§ã¢ã»ã³ããªæé©åããã®ãè¯ãã {sample:asm}
- æžããããé«éã³ã³ãã€ã«èšèª
- ãããšãã
- ã³ã³ãã€ã«ãé«é
- è€éãªäžŠååŠçã»éåæåŠçãèšè¿°ããããã(ãããã¯ãã§ãŒã³ã®éä¿¡ããŒãã®å®è£ ã«ã䜿ãããŠããã)
- (ã³ã³ãã€ã«èšèªã®å²ã«ã¯)ææ³ãæ¯èŒçåçŽã§ç¿åŸããããã
- ããããšãã
- é«åºŠãªæ©èœãå°ãªãã(äŸ:ç¶æ¿ãtry catchã®ãããªäŸå€åŠçãGenericsã¯æè¿ãã£ãšå°å ¥)
- ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«äŸåããŠããã(ããããã¡ãªãããã¯è«žèª¬ãã)
- wasmã«å€æããããšã¯ã§ããããrustãªã©ã«æ¯ã¹ãµã€ãºã倧ãããªãã {sample:go}
- 30åã®ããã€ã¹ã§åããŠããããã
- ãããšãã
- ã³ãŒãã®èŠæš¡ã倧ãããªãããšã«å€§ããŠèæ§ã匷ã
- ããããšãã
- ã³ãŒããåé·
- ç¹åŸŽ
- æ¥åã§äœ¿ãããã¡
- ã¶ã»ã¯ã©ã¹ããŒã¹ãªããžã§ã¯ãæå {sample:java}
- MS補ã®Javaã®ãããªãªã«ã
- ãããšãã
- ã³ãŒãã®èŠæš¡ã倧ãããªãããšã«å€§ããŠèæ§ã匷ã2
- Winåãã®GUIã¢ããªãæžãã®ãç°¡å
- Unityã§äœ¿ãããã
- ããããšãã
- ã³ãŒããåé·2(Javaãããããã·ãã)
- æçšãªãªãœãŒã¹
- Visual Studio: https://visualstudio.microsoft.com/ja/free-developer-offers/ winåããªãå¿ é ã {sample:cs}
- C#(VisualBasic颚å³)
- ãããšãã
- ææ³ãååŠè ã«ããããããã(Basicã®è¡ãåŒããŠããã ããã)
- C#ãšã®çžäºéçšã容æããã£ã¡ã容æã
- Winåãã®GUIã¢ããªãæžãã®ãç°¡å2
- ã³ãŒãã®èŠæš¡ã倧ãããªãããšã«å€§ããŠèæ§ã匷ã3
- C#
- ããããšãã
- Windows以å€ã§ã®äœ¿ãã¿ã¡ãããŸããªã
- æ§æãåé·ãªã®ã§è£å®ããªããšã€ãã(Visual Studioã§æžãåã«ã¯è£å®ãã¯ã¡ããã¡ãã«åŒ·ãã®ã§æ°ã«ãªããªã)
- äžé
- C#
- æçšãªãªãœãŒã¹
- Visual Studio: https://visualstudio.microsoft.com/ja/free-developer-offers/ å®è³ªå¿ é ã {sample:vb}
- å®çšéçŽç²é¢æ°åèšèª
- ãããšãã
- éã(ãšèããŠããã®ã§ã ããæé©åããŠãã)
- å€æ°ã®åä»£å ¥ãçŠæ¢ãããŠããïŒååå€æ°ã®å宣èšã§èŠãç®åä»£å ¥ã£ãœãããšã¯ã§ããïŒ
- åã®åã匷ããåæšè«ããã£ã¡ã匷ã
éãã¯ãã®èšèªã§ãã³ãŒãããããããªããšé床ããããããªããªãã®ã¯ãããã話ã§ãã {sample:ocaml}
- MS補ã®F#ã®ãããªãªã«ã
- ãããšãã
- .NETäžæå¯äžã®é¢æ°åæ
- ã»ãã®.NETæãšã®é£æºãã§ãã
- æçšãªãªãœãŒã¹
- Visual Studio: https://visualstudio.microsoft.com/ja/free-developer-offers/ winåããªãå¿ é ã
æ¹åæ±ã2 {sample:fs}
- Javaæã®é¢æ°åèšèª
- ãããšãã
- Javaãšã®é£æºãã§ãã
æ¹åæ±ã3 {sample:scala}
- äžäºç æ£è åããžãæ²ããå®çšâ çŽç²â é¢æ°åèšèª
- ãããšãã
- å¯äœçšãåžžã«æ瀺ããã现ããå¶åŸ¡ãã§ãã
- ããã±ãŒãžãããŒãžã£ãåªç§
- æ©æ¢°èªããé ãããªããã«éæéçµãšåçšåºŠã®é床ã§åã
- åã®åã匷ããåæšè«ããã£ã¡ã匷ã2
- èªå·±æ¡åŒµæ§ãé«ã
- åŠã¹ã°åŠã¶ã»ã©çç£æ§ãäžãã
- ïŒãããªããšãäžéã®åããïŒå®çšæ§ã¯é«ã
- èšèªãããŒã«ãé²åãéã
- 䞊ååã«åŒ·ã
- ããããšãã
- ä»ã®èšèªãšèšèšææ³ãã ãã¶éãã®ã§ãããŒãã«ã¯é«ã
- èšèªãããŒã«ãé²åãéããã
- ååã ãç©ã ããæŠå¿µãå€ããã
- çç£æ§ãäžããããšãããšåºãªãã®å匷ã匷ãããã
- ãªããµã€ãã«ãŒã«ã¯ã¯ãœ
- ããã©ãŒãã³ã¹ã®ãã¥ãŒãã³ã°ã«ã¯ç¥èãšåªåãå¿ èŠ
- éå»ã®ãããã¿ãå€ãïŒããŒã«ãšã©ã€ãã©ãªãšèšèªæ¡åŒµã®åã§æ®Žã£ãŠãªããšãããïŒ
- ãã«ããé ãïŒç¹ã«ååïŒ
- æçšãªãªãœãŒã¹
- æ¥æ¬HaskellãŠãŒã¶ãŒã°ã«ãŒã: https://haskell.jp/ ãšãããã®slackïŒåå¿è ã«ããããïŒ
- GHCup: https://www.haskell.org/ghcup/ ããŒãžã§ã³ç®¡çããŒã«ãéçºã«å¿ èŠãªãœããäžåŒãç°¡åã«å°å ¥ã§ããŸã
- Hoogle: https://hoogle.haskell.org/ åãå ¥åãããšããã«åœãŠã¯ãŸãé¢æ°ãæ€çŽ¢ã§ããŸããæ»ã¬ã»ã©äŸ¿å©ã
æé©åãããšååéãããç¥èãšè©Šè¡é¯èª€ãå¿ èŠ {sample:hs}
HaskellãããçŽç²ãªããŒã¿æ§é ã ãã§æžããŠãåãã¯ããããé ãã£ã {file:hs-naive}
- å€ä»£ã®é¢æ°åèšèª
- ã¢ãŒãã£ãã¡ã¯ã
- æ¹èšãå€ã
- ãããã¢ã³ã¹ã¿ãŒ
- ãã£ããã£ããã£ããã£ã
- ããããã¶ããã§ããã
- ãããšãã
- GUIäœããããªã£ããHTML+CSS+JSã§ããã®ãäžçªãããããããããªã
- ãã©ãŠã¶ã§äœ¿ããïŒéåžžã«éèŠïŒãšããããããããé€ããšWebAssembry以å€ã®éžæè¢ãååšããªã
- ãµãŒããŒãµã€ãã§ãããŒã«ã«ã§ã䜿ãã
- "ã¹ã¯ãªããèšèªã«ããŠã¯"ç°åžžã«éã(éæéçµãšåæ Œ)
- ããã±ãŒãžãããŒãžã£ãåªç§
- ããããšãã
- åããªããåã¢ãããŒã·ã§ã³ãããªã
- éå»ã®ãããã¿ãå€ãïŒãã·ã«ãªãã€ã€ããïŒ
- ã³ãã¥ããã£ã®æ°åºŠãã«ã¹
- æãã¹ãã«ã¹
- æçšãªãªãœãŒã¹
- MDNã®ãã¥ãŒããªã¢ã«: https://developer.mozilla.org/ja/docs/Web/Tutorials
- å°ã£ããMDN
TypedArray䜿ã£ããæéçµãšåŒµãåããéããåºã æ®éã®é åã䜿ã£ããã¡ã¢ãªç¢ºä¿ãã§ããªããªã£ãŠèœã¡ã {sample:js}
- Webå±ããå°çšã®ãããããµãŒããŒãµã€ãèšèª
- perl䌌
- ãããšãã
- åçãµã€ããäœããããªãäžçªãããã
- HTMLãåã蟌ãã ããªã®ã§ã¯ã©ã€ã¢ã³ããµã€ãã®ç¥èãããªããŠããšã£ã€ãããã
- ãã¹ãã£ã³ã°ããŠããããµãŒãã¹ãå€ã(ã¹ã¿ãŒãµãŒããŒãšããšãã¯ã¹ãµãŒããŒãšã)
- ããããšãã
- ã«ãªã¹ {sample:php}
- çŽæ¥ã¯æžããªã
- ä»ã®èšèª(RustãšãC++ãšã)ããWASMã«ã³ã³ãã€ã«ããŠãã©ãŠã¶ã§äœ¿ãã
- ïŒäžå¿çŽæ¥æžãããããã®åã®éãAssemblyçŽã«ããããããªãïŒ
- AltJS(JSã«ã³ã³ãã€ã«ããã代æ¿èšèª)ã®ããã¡ã¯ãã¹ã¿ã³ããŒããåã®ããJS
- ç¹åŸŽ
- æ§é çéšåå
- ã¯ã©ã¹ã®ç¶æ¿ããŒã¹ã§ã¯ãªãïŒçŸã«ããããã£ã®åããã£ãŠãããã§ä»£å ¥å¯èœæ§ãå€æãã
- ãªãã©ã«åïŒ
'world'
ã ããä»£å ¥ã§ããåïŒã®ãããªïŒããã - éåžžã«è€éãªåå®çŸ©ãå¯èœ
- æ§é çéšåå
- ãããšãã
- åãããïŒïŒïŒããã匷ãïŒïŒïŒïŒïŒïŒïŒïŒãšãŠãéèŠïŒ
- åæšè«åŒ·ãïŒåãææžãããã®ã¯åºæ¬çã«é¢æ°ã®åŒæ°ã ãïŒ
- Microsoft補ã§ãµããŒãæåã
- ã³ãã¥ããã£ã®æ°åºŠãJavaScriptãã幟åè¯ã
- ããããšãã
- åã¯ãããŸã§ã食ããã§ãããªãïŒã©ã³ã¿ã€ã ã§ã¯ç¡èŠãããïŒ
- ããããããã€ã䜿ããšåã®æ©æµãå
šãåããããªãïŒ
any
æ» ã¶ã¹ãæ æ²ã¯ãªãïŒ
- è±ç¥èã»åè
- åã·ã¹ãã ã ãã§ãã¥ãŒãªã³ã°å®å šã§ããïŒbrainfxxkãå®è£ ã§ããïŒ
- ããŸã©ãã®JavaScriptããã±ãŒãžã¯å¿
ããšèšã£ãŠããã»ã©TypeScriptã§æžãããŠãã
- åããªããšããã±ãŒãžãšããŠäœ¿ãã«ãããã
- å®ã¯VSCodeã§JavaScriptãæžããšãã¯ã³ãŒãè£å®ã®æ©æµãTypeScriptããåããŠãã
- åæšè«ã®ãããã§ã³ãŒããJavaScriptãšã»ãŒå€ãããªãã®ã§ãµã³ãã«ãªã
- æžããŠãæäžã®åãã§ãã¯ã»ã³ãŒãè£å®ãæ»ã¬ã»ã©éãïŒèšèªå šäœããã®æå³ã®ããšèšèšãããŠããïŒ
- AltJSãã®2
- Rubyã®ãããªãªã«ã
- AltJSãã®3
- AltJSã®ç°ç«¯å ãHaskellã®çãåã
- AltJSãã®4
- scalaãjsã«ã³ã³ãã€ã«ããã
- AltJSãã®5
- Haskellãjsã«ã³ã³ãã€ã«ããã
- AltJSãã®6
- OCamlãjsã«ã³ã³ãã€ã«ããã
- ãããšãã
- çµ±èšã«ãã£ã¡ã匷ããããã¡ã¯ãã¹ã¿ã³ããŒããã©ãããããããïŒæç³»å«ãïŒ
- æ€å®ãã³ãã³ãäžçºã§ã§ãã
- å³ã綺éºã§çŽ°ããæå®ã§ãã
- ããŒã¿ãã¬ãŒã ã䜿ãããã
- æ©æ¢°åŠç¿ã®ã©ã€ãã©ãªãå€ã
- ããã±ãŒãžãããŒãžã£ãåªç§
- ããããšãã
- è€éãªããšããããšé ã
- ã¡ãœããã®åŒã³åºãæ¹ã
method(target)
- 1-indexed, 瞊åºæ¬è¡å
- ã«ãªã¹
- æçšãªãªãœãŒã¹
- 奥æç 究宀: https://oku.edu.mie-u.ac.jp/~okumura/stat/ ããäžéã«è¶³ãåããŠå¯ãããªã {sample:r}
- ãããšãã
- æ°åŒãšãã·ãã¥ã¬ãŒã·ã§ã³ã匷ã
- ã°ã©ãã£ã¯ã¹ã匷ã
- ããããšãã
- ææ(æ±å€§çã¯å€§åŠãã¢ã«ãŠã³ããããã®ã§äœ¿ãã)
- ãããªã«éãã¯ãªã
- ãããšãã
- æ°å€èšç®ã«åŒ·ãããã£ã¡ã匷ãã
- éã
- 䞊ååããããç°¡åïŒããã°ã©ã ã«2è¡ä»ã足ããŠã³ã³ãã€ã©ã«æž¡ããã©ã°ãäžåå¢ããã ãïŒ
- ã¹ãã³ã³ã§ãã䜿ãããŠãã
- ããããšãã
- ææ³ãç¬ç¹
- ãããã«ã€ãããå€ããŠã€ãã
ãªã«ãééããã®ã倧ããŠéããªããªãã£ã {sample:f95}
ãµã³ãã«ã³ãŒãã®å®è¡æéã¯ä»¥äžã®ç°å¢ã§èšæž¬ããŸãã
- CPU: Ryzen 7 PRO 4750G
- ã¡ã¢ãª: 32GB
- OS: Manjaro Linux
ãããšããïŒä»åé¡æãšãããçŽ æ°ã®èšç®ãã¯æ¯èŒçåçŽãªã³ãŒããªã®ã§ãäžéšèšèªãé€ããŠå®é以äžã«äŒŒãããã£ãããªçµæã«ãªã£ãŠããŸããã©ã¡ãããšããã°ãã©ã®èšèªãéããããããã©ã®ãµã³ãã«ãããŸãæžããŠããããã®ã»ããã ãã¶åœ±é¿ã倧ãããã§ããããããã®èšèªã«ã€ããŠãé床ã倧ããæ¹åãããããªã©ã€ãã©ãªãæ©èœãçšãããã®ã¯ã«ãã³æžãã§ä»èšããŸããã
{ranking}
- ã¡ã¿ãªãã¯ã¯ããºã
- 説æ: C, C++, Rust, Python, Haskell, Fortran, JS, PHP, VB.net, C#, Java, OCaml, Scala, perl, php, lua, go
- ãµã³ãã«: C, C++, Rust, Python, Haskell, Fortran, JS, R, VB.net, C#, F#, OCaml, Java, Julia, Scala, perl, php, lua, go
- äžèš: Haskellã¯ããèšèªã§ãããããïŒãåãè®æ²Œã«èœã¡ãïŒïŒïŒ
- ããªã°ã
- 説æ: Julia, Lisp, R, MATLAB, Fortran
- ãµã³ãã«: Julia
- äžèš: Juliaæé«ïŒJuliaããåããïŒ
- 綿谷 é«
- ãµã³ãã«: Fortran
- äžèš: å€å žãåŠã¶ããšã¯ç©äºã®æ ¹å¹¹ã«è§Šããããšã§ããïŒãããã掟çããŠã§ãããã®ã®ç解ãæ·±ãŸããŸãïŒå€å žèªããããŸãããïŒ
- TumoiYorozu
- ãµã³ãã«: Assembly, C(bit)
- äžèš: çã®ã¢ã»ã³ããªãããæžããªã
- ãµããŒã
- 説æ: Ruby, Crystal
- ãµã³ãã«: Ruby, Crystal
- äžèš: ãªãã ããã Rubyã¯ããèšèªã ãšæããã³ãŒããŽã«ãã«ãåããŠããã
- ð±ð¿âïžð
- 説æ: Rust, TypeScript(, R)
- ãµã³ãã«: Rust (bit operation)
- äžèš: Rustã®ç䟡ã¯WebãµãŒããŒãªã©ã®ã·ãã¢ãªçšéã§åããŠçºæ®ãããïŒ
- femshima(Nanigashi)
- ãµã³ãã«: C
- äžèš: ãã€ãçµã¿èŸŒã¿ã®asmãæžããããã«ãªããã(é¡æ)
- ãããã
- 説æ: Go