GoogleããDropboxãž
ãã«ãã»ã€ã³ãã
ããã«ã¡ã¯ GoogleããDropboxã«ç§»è¡ãããã£ããã¯äœã§ããïŒ Googleã§äœãããã®ã§ãããDropboxã§äœãããŠããã®ã§ããïŒ
GuidoïŒ Googleã§7幎éåããåŸãç°å¢ãå€æŽããæºåãã§ããŠããã®ã§ãDropboxãããªãã¡ãŒããããŸããã æŠããŠãç§ã®ä»äºã¯ããŸãå€ãã£ãŠããŸããã ç§ã¯ãŸã
- ç§ã¯ãå¯å€§ãªç掻ã®ç¬è£è ãšããŠã®åœ¹å²ã«å¿ããŠãç§ãéåžžè¡ãããšã«æéã®50ïŒ ãè²»ãããŠããŸã
- ç§ã¯ãã®çµç¹ã®æ®éã®ãšã³ãžãã¢ã§ãïŒãããŒãžã£ãŒã§ã¯ãªããã°ã«ãŒãïŒããŒã ãªãŒããŒã§ããªãïŒã管çããããšãããããŸããïŒ
- ç§ã¯ããã³ãŒãæ€æ»ãè¡ããã¢ãŒããã¯ãã£ãšèšèšãéçºããŸã
- ããããã®ã¡ãŒã«ãäœæãã
- Pythonã§ã³ãŒããæžããŠããŸã
ä»äºã®è©³çŽ°ã¯ãã¡ããç°ãªããŸãã å®éãç§ã¯Googleã§2ã€ã®ããšãè¡ããŸãããæåã®2幎éãæåã®ãªã³ã©ã€ã³ã³ãŒãæ€æ»ããŒã«Mondrianã«åãçµã¿ãŸãããããã¯ãªãŒãã³ãœãŒã¹ã§ã¯ãããŸãããã Rietveldãçã¿åºããŸããã çŸåšãRietveldã¯PyhonãGoãããã³Chromiumãããžã§ã¯ãã§äœ¿çšãããŠããŸãã ãã®åŸãGoogle App Engineã«åå ããäž»ã«Pythonã«é¢é£ããããŸããŸãªããšãè¡ããŸããã ç§ã®æåŸã®å€§ããªãããžã§ã¯ãã¯ãããŒã¿ããŒã¹çšã®æ°ããPython APIãNDBã§ããã
ç§ã¯Dropboxã§7ãæåããŠãããæåã®ãããžã§ã¯ãã¯Dropbox Datastore APIã®èšèšã§ããã ç®èãªããšã«ïŒããã¯ç§ã®ããã§ã¯ãããŸããïŒããããŒã¿ã¹ãã¢ããšããèšèãããã«ãããŸãã Dropbox DatastoreãšGoogle App Engine Datastoreã«ã¯é¡äŒŒç¹ããããŸãã
å¥ã®æ¥œããéšåã ã»ãšãã©ã®ãã¶ã€ã³ã¯ç§ãçºæãããã®ã§ãããPythonã§2ã€ã®ãããã¿ã€ããäœæãããšããäºå®ã«ãããããããå æãªãªãŒã¹ãããSDKã¯JavaãObjective-Cãããã³JavaScriptã®ã¿ããµããŒãããŠããŸãã ããããç§ã¯ããã«åãçµãã§ããŸãã ãã®ã€ã³ã¿ãã¥ãŒã®ããã ãã«ãããã»ã¹ã¯ããã»ã©éãã¯ãªããŸãã:)
Pythonãä»ã®èšèªã«ååšããOOPã€ãã£ãªã ãé¿ããã®ã¯ãªãã§ããïŒ
from i_ate_god ïŒ ãã®ããã¯ããŒã ã¯ä¿¡è ã®ææ ãæãããŸã-çŽperã ïŒ
ã€ã³ã¿ãŒãã§ã€ã¹ãæœè±¡ã¯ã©ã¹ããã©ã€ããŒãã¡ã³ããŒãªã©...ãªããããã®ãã®ãPythonã«æ¬ ããŠããã®ã§ããïŒ
GuidoïŒ 2ã€ã®çç±ããããŸãïŒïŒaïŒæ¬åœã«å¿ èŠãªããïŒbïŒã³ã³ãã€ã«æ®µéã§åãã§ãã¯ããªããããå®è£ ãé£ããã Pythonã¯å®éšçãªãããžã§ã¯ããšããŠå§ãŸãïŒåœå±ã«ãã£ãŠæ¿èªãŸãã¯æ¿èªãããŠããŸããããçŠæ¢ãããŠããŸããïŒãããã«å®çšçãªãããã¿ã€ããååŸããããšèããŸããã ãããã£ãŠãç¹ã«å¿ èŠã®ãªãã延æã§ããæ©äŒãåé€ããŸããã ãŸããå®è¡æã«ãã¹ãŠã®åãã§ãã¯ãè¡ãå¿ èŠããããŸããã ããã«ãããPythonããµããŒãããæ©èœã«èªç¶ãªå¶éãçããŸãã ç§ã¯ããªããžã§ã¯ãæåã¢ãããŒãã®å®æçãªãã¡ã³ã§ããããŸããã§ããã åçŽãªèšèªãååŸãããã£ãã®ã§ãããå¶ç¶ã«ããããããªããžã§ã¯ãæåã«ãªããŸããã
Pythonã®æè¿ã®ããŒãžã§ã³ã§ã¯ãããªããæ±ããŠãããã®ã®ããããã®é¡äŒŒç©ãç»å ŽããŠããŸãã ãã ããåžžã«æåŸ ã©ããã«æ©èœãããšã¯éãããäžèŠãªãªãŒããŒããããçºçããå¯èœæ§ããããŸãã ãããã£ãŠã圌ãã¯ãã°ãã°ããããé¿ããããšããŸããããã®ãããªã¢ãããŒãã®ãã¡ã³ãããŸãã
é¢æ°åããã°ã©ãã³ã°
ebno-10dbãã ïŒ åœŒã®ããã«ããã¯ããŒã ãçºæããã®ã¯èª°ã§ããïŒ-çŽperã ïŒ
Pythonã¯å°ãªããšãéšåçã«ã¯æ©èœèšèªã§ãããšäž»åŒµãã人ãããŸãã ç§ãèŠãéããããªãã¯ããã«åæããŸããã
map
ããã³
filter
æ©èœã¯ãèšèªãæ©èœãããã®ã«ååã§ã¯ãããŸããã ç§ã®ç¥ãéãããããã®é¢æ°ã¯ããŒã ã·ãã¯ã®éçºè ã«ãã£ãŠLispèšèªã«è¿œå ãããŸããã ãããŠãããããåé€ããããšäœåºŠãè©Šã¿ãŸããã å°ãªããšãPythonã§ã¯ãããªãã¯é¢æ°åãã©ãã€ã ã®ãã¡ã³ã§ã¯ãªãããã§ãã
質åïŒããã°ã©ãã³ã°ãžã®é¢æ°åã¢ãããŒãã¯ååçã«ããŸãæçšã§ã¯ãªãããŸãã¯Pythonã«é©åããªãããã«æãããŸããïŒ ãããã«ãããç§ã¯ããªãã®æèŠãèãããã§ãã
GuidoïŒç§ã¯å®æçãªå¥œã¿ã«åºã¥ããŠ1ã€ãŸãã¯å¥ã®ã¢ã€ãã¢ãéžæããã®ã¯å¥œãã§ã¯ãããŸããããã¶ã€ã³ãéžæããéã«å®çšçã§ããããšãè©Šã¿ãŸãïŒãããã ããŸãå®çšçã§ã¯ãããŸãããæã®åé ãåç §ããŠãã ãã:-)ã å®éã®ã³ãŒãã®èªã¿ããããšæçšæ§ã«æè¬ããŸãã
map()
ããã³
filter()
éåžžã«äŸ¿å©ãªå Žåããããä»ã®å Žåã«ã¯ãªã¹ãåŒïŒãªã¹ãå å è¡šèšïŒããããŸãã
reduce()
å«ãã§ããããªããªãããã®é¢æ°ã¯ã»ãšãã©åžžã«æ¬¡ã®2ã€ã®ç®çã§äœ¿çšãããŠããããã§ããïŒaïŒèŠçŽ ã®åèšãèšç®ããïŒbïŒèªã¿åãäžå¯èœãªã³ãŒããæžã ãããã£ãŠãçµã¿èŸŒã¿ã®
sum()
é¢æ°ãè¿œå ãã
reduce()
ãçµã¿èŸŒã¿é¢æ°ãã
functools
ã¢ãžã¥ãŒã«ã«
functools
ïŒããã¯ç§ã«ãšã£ãŠäžèŠãªããããçš®é¡ã®ãã³ãã§ã:-)ã
é¢æ°åããã°ã©ãã³ã°èšèªã«ã€ããŠèãããšããäž»ã«Haskellã®ãããªä¿¡ããããªãã»ã©åŒ·åãªã³ã³ãã€ã©ãŒãåããèšèªã«ã€ããŠèããŸãã ãã®ãããªã³ã³ãã€ã©ãŒã®å Žåãé¢æ°åãã©ãã€ã ã¯ã䞊ååãªã©ã®èšå€§ãªå€ææ©èœãæäŸãããããéåžžã«äŸ¿å©ã§ãã ããããPythonã³ã³ãã€ã©ã«ã¯ãã³ãŒãã®æå³ãããããŸããã ããã䟿å©ã§ãã ãããã£ãŠãPythonã«ãæ©èœãããªããã£ããè¿œå ããããšã¯çã«ããªã£ãŠããªããšæããŸãããããã®ããªããã£ããé¢æ°åèšèªã§ããŸãæ©èœããçç±ãPythonèšèªã«åããªãããã§ãã ãããŠãããã®ããã«ãã³ãŒãã¯é¢æ°åèšèªã«æ £ããŠããªã人ã ã«ãšã£ãŠéåžžã«èªã¿ã«ãããªããŸãïŒãããŠãããã®ã»ãšãã©ã¯ããã°ã©ããŒã®äžã«ãããŸãïŒã
ãŸããçŸä»£ã®é¢æ°åèšèªã®ã»ããã¯ãäž»æµã®æºåãã§ããŠããªããšæããŸãã æ£çŽãªãšãããç§ã¯Haskell以å€ã®é¢æ°åèšèªãã»ãšãã©ç¥ããŸããã ããããHaskell ã»ã©äººæ°ã®ãªãèšèªã¯ãããããå®éã«ã¯ããŸãé©çšãããŸããã ãããŠãç§ã¯Haskellããã人æ°ã®ããèšèªãèããããšããããŸããã Haskellã«é¢ããŠã¯ãããã¯ã³ã³ãã€ã©ãã¯ãããžã§ããããçš®é¡ã®ã¢ã€ãã¢ããã¹ãããã®ã«æé©ãªèšèªã ãšæããŸããããã®ãçŽåºŠãã¯åžžã«åºãæ¡çšãããããã«ãªããšæããŸãã ã¢ããã«å¯ŸåŠããå¿ èŠæ§ã¯ãå€ãã®äººãæããããã§ãããã
ïŒåæ§ã®ã³ã¡ã³ãã¯Scalaã«é¢é£ããŠããŸããããã¯ããããã1ã€ã®èšèªã§æ©èœæåãšãªããžã§ã¯ãæåã®ãã©ãã€ã ãçµã¿åãããæè¯ã®äŸã§ããããããçµæãšããŠãããªãã¯ãããæžãã®ã«æ¬åœã«è³¢æã§ããå¿ èŠããããŸããïŒ
è€æ°è¡ã®ã©ã ã
NeverWorker1ãã ïŒ å¥åŠãªããã¯ããŒã ã®å¥ã®äŸ-çŽã ïŒ
Pythonã«ã€ããŠããèãããäžæºã®1ã€ã¯ãã©ã ãã®äœ¿çšã«é¢ããå¶éã§ãã ããªãã¡ã1è¡ã®å¶éãšå²ãåœãŠãè¡ãããšãã§ããŸããã æããã«ããã®çç±ã¯Pythonã§ã®ã¹ããŒã¹ã®éèŠãªåœ¹å²ã§ãïŒããã«ã€ããŠã®ã³ã¡ã³ããæ£ããç解ããå ŽåïŒã ç§ã¯è€æ°è¡ã®ã©ã ãã®å¯èœãªæ§æã«ã€ããŠå€ãã®æéãèããŸããããããŠãç§ã«èµ·ãã£ãæãè¯ãããšã¯ãCèšèªã¹ã¿ã€ã«ã§äžæ¬åŒ§ã®äžã«ããã€ãã®æªäœ¿çšã®ïŒãŸãã¯ãã£ãã«äœ¿çšãããªãïŒæåãããã·ã¥ããããšããããšã§ãããããããæè¯ã®å Žåãããã¯ã³ãŒãã®æ··ä¹±ã«ã€ãªãããŸãã ãã䟿å©ã«ã§ããŸããïŒãŸããè€æ°è¡ã®ã©ã ããè¿œå ããããšã¯ã§ããŸããïŒ
ã°ã€ãïŒæ¬åœã§ããïŒ ã¹ã©ãã·ã¥ãããã§è³ªåããã人ã¯ã»ãšãã©ããã«èšåããŸããã§ããã :-)
ãã䟿å©ã«ããããšãã§ããŸã-'def'ããŒã¯ãŒãã䜿çšããŠãããŒã«ã«ãšãªã¢ã§éåžžã®é¢æ°ãå®çŸ©ããŸãã çµæã®é¢æ°ã¯ããŒã«ã«å€æ°ã«æ ŒçŽãããã©ã ããšãŸã£ããåãã»ãã³ãã£ã¯ã¹ãæã¡ãŸãã ããŒã«ã«å€æ°ãžã®ãã€ã³ããé€ããŸãã æ§æäžã®å¶éã¯ãããŸããã ããšãã°ãéã«æå³çãªéãã¯ãããŸãã
def make_adder(n): def adder(x): return x + n return adder
ã©ã ãã䜿çšããåçã®ãã®ïŒ
def make_adder(n): return lambda x: x + n
ïŒå¯äžã®éãã¯ãã€ã³ããã¹ãã¯ã·ã§ã³ã䜿çšãããšãlabdaã¯ååã«ã€ããŠå°ãããããšãã«
'adder'
ã§ã¯ãªã空çœè¡
''
å¿çããããšã§ãïŒã
Andrew Koenigã¯ãã©ã ããé¢æ°ãããã¯ããã«äŸ¿å©ãªç¶æ³ãããããšã«æ°ã¥ããŸããã å€æ°ã®ã©ã ãã§æ§æããã倧ããªãªã¹ããŸãã¯èŸæžïŒããšãã°ãã¹ã€ããã®ç¹å®ã®é¡äŒŒç©ïŒãããå Žåãå€ãã®çãé¢æ°ãäœæãããããã®ååãèãåºãããããããªã¹ããŸãã¯èŸæžã®æºåã§äœ¿çšããå¿ èŠããããŸãã ãã ãããã®äŸã§ã¯ãéåžžãåäžè¡ã®ã©ã ãã®æ§æã§ååã§ãã æåŸã®æ段ãšããŠããªã¹ããŸãã¯èŸæžãäœæããåã«ãåžžã«
'def'
䜿çšã§ããŸãã
ãã€ããŒ
Btrot69ãã
PyPyã®æªæ¥ã¯äœã ãšæããŸããïŒ ãããšããããªãã¯ãŸã çã£ãŠããŸããããããŠãªãã§ããïŒ
GuidoïŒç§ã¯ãŸã 2ã€ã®çç±ã§çã£ãŠããŸãïŒïŒaïŒPython 3ããŸã ïŒè¯ãïŒãµããŒãããŠããªããïŒbïŒPyPyã§ååã«ãµããŒããããŠããªãå€ãã®ã¢ãžã¥ãŒã«ïŒæšæºã©ã€ãã©ãªãšãµãŒãããŒãã£ïŒããããŸãã ãããããããã®åé¡ã解決ãããããšãé¡ã£ãŠããŸãã PyPyãJythonãIronPythonãšã®ç«¶äºã¯CPythonã®åé²ã«åœ¹ç«ã€ãšæããŸãã
ãã©ãŠã¶ãŒã®PythonïŒ
Btrot69ãã
é·å¹Žã«ããã£ãŠãWebãã©ãŠã¶ãŒå ã§å®å šã«å®è¡ã§ãããµã³ãããã¯ã¹ã§Pythonãäœæããããã®ããŸããŸãªè©Šã¿ãè¡ãããŠããŸããã ã»ãšãã©ã®å Žåã人ã ã¯JavaScriptã®åé¡ãä¿®æ£ããããšããŸããã JavaScriptãåäœããããã«ãªã£ãïŒCoffeeScriptã®ãããªã¯ãŒã«ãªãã®ãããïŒããããã©ãŠã¶ã«Pythonãåã蟌ãã®ããããããšãã§ããŸããïŒ
GuidoïŒ 1995幎ã«ããããããŸãããã€ãŸããçãã¯ã€ãšã¹ã§ãã ãŸããPythonãJavaScriptã§ã³ã³ãã€ã«ããããšããªãã§ãã ããã ãããã®èšèªã®ã»ãã³ãã£ã¯ã¹ã¯éåžžã«ç°ãªããŸãã æåŸã«ãã»ãšãã©ã®PythonèšèªãJavaScriptã§å®è£ ããå¿ èŠããããŸãã ãã®çµæãããã©ãŒãã³ã¹ãäœäžããŸãã ïŒCoffeeScriptã®é·æã¯ãããšããšJavaScriptã«ã³ã³ãã€ã«ãããããã«èšèšãããŠããããšã§ããçŸåšããããã®èšèªã¯ã©ã¡ããåãæ¹æ³ã§éçºãããŠãããã³ã³ãã€ã«ããã»ã¹ã容æã«ãªã£ãŠããŸããïŒ
Python 3
MetalliQaZãã
Python 3ã䜿çšããŠç§»è¡ã®çŸåšã®ç¶æ ãã©ã®ããã«è©äŸ¡ããŸããïŒ ãŠãŒã¶ãŒã®èŠ³ç¹ãããããšãäž»èŠãªäººæ°ã®ããã©ã€ãã©ãªãŒã®ç§»è¡ã¯éåžžã«é ããŠããããã®ããPython 3ãžã®ç§»è¡ãå°é£ã«ãªã£ãŠããŸããç§ã®è·æ¥äžã®ãã£ãªã¢ã§ã¯ãã»ãšãã©ãã¹ãŠã®ã·ã¹ãã ã«Python 3.xããªãããšããããããŸãã ããŒãžã§ã³2.7ã§ããããŸã ãŸãã§ãã ããªãã®æèŠãèãã®ã¯é¢çœãã§ãã
ã°ã€ãïŒã©ãã§åããŠããã®ã ãããã Python 3ãžã®ç§»è¡ã«ã¯æéããããããšã«åæããŸãããPython 2.7ãã·ã¹ãã ã«ãªãå Žåã¯ãããããç³åšæ代ã«è¡ãè©°ãŸã£ãŠããŸãã GoogleãèŸãããšãã圌ãã¯Python 2.7ãžã®å éšç§»è¡ãã»ãŒå®äºããŸããïŒä»¥åã®2.4ãã2.6ãžã®ç§»è¡ã¯æ°å¹Žåã«æåããŸããïŒã ãã®Dropboxã§ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®äž¡æ¹ãPython 2.7ã䜿çšããŠããŸãã 䞡瀟ã¯ãã§ã«Python 3ã«ã€ããŠèããŠããŸãã
Python 3ãžã®ç§»è¡ã«æ»ããšãç§ã¯å®éã«ã¯å€§ããªæ¥œèŠ³äž»çŸ©è ã§ãã æã人æ°ã®ããã©ã€ãã©ãªã®ã»ãšãã©ã¯ããã§ã«Py3kã§åäœããããŒããæã£ãŠãããã移æ€ã«é¢äžããŠããŸãã ïŒPython Software Foundationã¯ãåºã䜿çšãããŠãããã移æ€ãæºåããã®ã«ååãªã³ãã¥ããã£ããªããããžã§ã¯ãã®ç§»æ€ã«è³éãæäŸããŠããŸãïŒã æéãããããŸããããã³ãã«ã®çµããã«å ãèŠããŸãã æ°å¹ŽåŸã«ã¯ãæ°ããã³ãŒãã®å€§éšåã¯Python 3ã«ãªããŸããPython2ã®äœ¿çšãå®å šã«ãªããã«ã¯ãããã«æéãããããŸãã ç¹°ãè¿ããŸãããWindows XPã¯ãŸã çããŠããŸãã
èšèªèšèšè ã«ãšã£ãŠã®éèŠãªè³ªå
dkleinscãã
ããã²ãã䌞ã°ããåŸãPythonã®èŠç¹ã¯ã©ã®ããã«å€ãããŸãããïŒ èã®æåã¯ã²ãã®é·ããšã©ã®çšåºŠçžé¢ããŠããŸããïŒ
ã°ã€ãïŒããã²ãã¯çµ¶å¯Ÿã«å¿ èŠã§ãã Perlã®éåœãèŠãŠãã ãã-ããã¯ãã¹ãŠLarry Wallã®å®ç§ãªã²ãããã«ã€ããŠã§ãã
翻蚳è ãã
ç§ã¯ã€ã³ã¿ãã¥ãŒãå¯å€§ãªç涯ç¬è£è ãšç¿»èš³ããã®ã楜ããã ã 圌ã®çãã«ã¯ãæ°Žãã»ãšãã©ãªããæœè±¡çãªãããã¯ã«é¢ããèãããããŸãã 圌ã¯å®çšçã«PythonãèŠãŠãå®çšæ§ãèªã¿ããããå¹çãé«ãè©äŸ¡ããŠããŸãã ããªãã質åãããããšãã§ããæãéããã®ã¯æ®å¿µã§ãã ãããŠããPythonã§ã®JITã³ã³ãã€ã«ã¯ãã€è¡šç€ºãããŸããããšå°ããŸããä»æ¥ãPythonã³ãŒãã®ããã©ãŒãã³ã¹ã¯JavaãRubyã«å£ã£ãŠããŸãã