把 Python 分類到 dynamic language,看起來就比 scripting language å°ˆæ¥ï¼
thegiive 真的很知é“玩 dynamic language (這個å詞è½èµ·ä¾†å°±æ¯” scripting language 厲害多了å§) programming 的人å°ä»€éº¼æœƒæ„Ÿå†’:
光是「絕å°ä¸æ˜¯ JavaScript 那種 SCRIPT 語言å¯ä»¥æ¯”較的!ã€é€™å¥è©±ï¼Œå°±æœƒè¢« PHP / Perl / Python 社群罵æ»ï¼Œæ ¹æœ¬ä¸ç”¨ Ruby 來補這一刀。
所以我就å¿ä¸ä½ä¹Ÿæƒ³è¦ä¾†æ·Œä¸€ä¸‹æ··æ°´äº† (é›–ç„¶ä¸æƒ³ç½µæ»èª°) ... 很久很久很久沒這樣幹了呀 :D å¾žå¥‡æ€ªçš„è§’åº¦ä¾†çœ‹ï¼Œå°æˆ‘個人來講,這也算是個紀念 :p
» continue reading
程å¼èªžè¨€äººæ°£æŽ’å,還有分 A, B 級以åŠä¸å…¥æµ (笑)ã€‚é€™å€‹æœ‰æ„æ€ã€‚Ruby 真的是大å—矚目的程å¼èªžè¨€ï¼Œè€Œ thegiive çš„é 估也神準無比,這個月 Ruby 確實打敗 PL/SQLï¼Œå—æ¡è¿Žåº¦ä¸Šæ¼²åˆ°äº† 1.717%。
Fortran 在哪裡?2006 Nov. æ™‚çš„å—æ¡è¿Žåº¦æ˜¯ 0.392%ï¼Œæžœç„¶æ˜¯å€‹è€æŽ‰ç‰™çš„æ±è¥¿å‘€ã€‚Python 是 3.641%ï¼Œé‚„è¼¸é§±é§æ–‡ 2.587%。
Posted by yungyuc
at
19:23,
0 comment,
0 trackback.
一早起來還沒有ç¡é†’,就在 Django-user mailing list 上看到 "Django vs. Rails vs. Symfony: Django is fastest" é€™ç¯‡æ–‡ç« ã€‚åœ¨ wiki.rubyonrails.com (注æ„,是 RoR 自己的 wiki) ä¸Šæœ‰äººç™¼è¡¨äº†ä¸€ç¯‡æ¸¬è©¦å ±å‘Šï¼š"Framework Performance",比較 Symfony/PHP5, Rails/Ruby å’Œ Django/Python ç‰ä¸‰çµ„ framework 的效能。Django è´äº† Rails 有五æˆå·¦å³ï¼Œå‡ºæˆ‘æ„æ–™ä¹‹å¤–地多。
å…¶å¯¦æˆ‘æœ¬ä¾†å° Django template çš„é€Ÿåº¦ä¸æ˜¯å¾ˆæ»¿æ„。在把這個 blog 從 COREBlog 移出來,以 Django 改寫的時候,用 ab å°é¦–é åªèƒ½æ¸¬å‡º x hits/sec çš„æ•¸å— (ç¾åœ¨å¥½ä¸€é»žäº†ï¼Œæ¸¬è©¦å‡º 2x hits/secï¼Œå› ç‚ºæˆ‘æŠŠé¦–é 顯示 entry çš„ç†æ•¸èª¿ä½Žä¸‹ä¾†)ã€‚ç•¶ç„¶ï¼Œé€™è£¡é¢æœ‰éƒ¨åˆ†çš„åŽŸå› æ˜¯æˆ‘äº‚çµ„æ…‹ deployment,ä¸çµ¦è·‘ Apache çš„ä½¿ç”¨è€…å° Django app 所在目錄的寫入權é™ï¼Œæ‰€ä»¥æ¯æ¬¡ page hit 都è¦é‡æ–°ç·¨è¯æ‰€æœ‰çš„ .py 檔 (沒有寫入權é™å°±ç„¡æ³•把編è¯å¥½çš„ .py 備份到 .pycï¼Œå› æ¤ä¸‹æ¬¡åŸ·è¡ŒåŒä¸€æ®µç¨‹å¼çš„æ™‚候還得釿–°ç·¨è¯)。
ç„¶è€Œï¼Œé€™ç¯‡æ¸¬è©¦å ±å‘Šå€’è¡¨ç¾å‡º Django template system 的優勢。如果測試內容準確的話,他們儘å¯èƒ½æŠŠ page hit 的工作放在 page rendering 上,也就代表測試的大部分是 framework 本身,必定大é‡ä½¿ç”¨ template system。而 Django 大幅優å‹çš„çµæžœï¼Œè¡¨ç¤º Django template system 相較於其它 framework/template é€Ÿåº¦é‚„æ¯”è¼ƒå¿«ã€‚é€™æ˜¯å¾ˆå¥½ä¹Ÿæ˜¯å¾ˆå£žçš„çµæžœã€‚好的部分是å¯ä»¥å° Django template 有更多信心,壞的部分是我寫的 template 肯定有å•題,怎麼跑的那麼慢呢 (苦笑) (看來光模仿 COREBlog çš„è¨è¨ˆå¯ä¸æ˜¯å€‹è¾¦æ³•)。
之剿ˆ‘ä¹Ÿæ¸¬éŽ Django çš„ cache,表ç¾å¾—ä¸éŒ¯ï¼Œå®Œå…¨ä¸éœ€è¦å‹•到 mod_proxy 之類的 Apache 模組便å¯ä»¥æŠŠ 1x hits/sec 拉高到 2xx hits/sec。由æ¤ä¹Ÿå¯é©—è‰ RoR wiki ä¸Šçš„æ¸¬è©¦å ±å‘Šç¢ºå¯¦æ²’æœ‰ç”¨ cache 作弊。
å¥½çš„ï¼Œé€™æ¨£çš„çµæžœå¯ä»¥è®“我很快樂地繼續用 Django 寫程å¼çŽ©ï¼Œç„¶å¾Œèªªæˆ‘å¾ˆå¿« (笑)。話說回來,比起來 RoR ä¹Ÿåªæ˜¯æœ‰é»žæ…¢è€Œå·²ï¼Œå…¶ framework 本身大å—好評ä¸èªªï¼Œç©©å®šæ€§ä¹Ÿä¸éŒ¯ï¼Œåœ¨æ¸¬è©¦è£¡ä½¿ç”¨ lighttpd 的話,最長 transaction 時間 (1.25 sec) 更有超水準表ç¾ã€‚Symfony å°±å¾ˆæ…˜äº†ï¼Œæ…¢å€’é‚„ä¸æ˜¯è‡´å‘½çš„å•題 (雖然速度是 Django çš„ 1/3,但這總å¯ä»¥ç”¨ä¸‰å°é›»è…¦ load balancing 來暴力解決),麻煩的是連線ä¸ç©©å®šï¼›ç„¡è«–在高低壓測試組態下都會有 transaction fail。
RoR 值得玩玩,但 Symfony 看來å»è©²æ•¬è€Œé 之。
ç¾åœ¨çš„ scripting language 一大票,有了 Perl, Python, PHP,å†å¤šä¸€å€‹ Ruby ä¹Ÿä¸æœƒæ”¹è®Šä»€éº¼ï¼Ÿå…¶å¯¦æœƒå•¦ï¼Œå¯« Java å¥½ç„¡èŠ (笑),多一個å¯ä»¥é¸ç•¶ç„¶æ¯”較好。
這個世界上的æ±è¥¿å¦‚果都åªèƒ½ç”¨ä¾†ç”Ÿç”¢ï¼Œä½œæ£äº‹ï¼Œæƒ³ä¾†æˆ‘們的物質會相當匱ä¹ã€‚少了那些無病呻åŸçš„詩人ã€åªèªæ•¸å—ä¸èªäººçš„ç§‘å¸å®¶ï¼Œå’Œé–’得發慌的程å¼èªžè¨€ç™¼æ˜Žè€…,或許ç¾åœ¨çš„程å¼è¨è¨ˆå¸«éƒ½è¦åŽ»æŽ’çœŸç©ºç®¡ï¼Ÿå•Šï¼Œä¸æœƒå•¦ï¼Œæ‡‰è©²æœ‰é€²æ¥åˆ°æ‰“å¡çš„æ©Ÿæœƒã€‚å¦‚æžœä¸æ˜¯å› 為舊的方法有所侷é™ï¼Œä¹Ÿå°±ä¸æœƒè¢«æ–°æ–¹æ³•å–而代之;如果組åˆèªžè¨€å¾ˆå¥½ç”¨ï¼Œå¹¹å˜›ç”¨ C 來寫 Unix å’Œ Windows å‘¢ï¼Ÿåœ¨å‰µé€ æ–°æ–¹æ³•çš„éŽç¨‹ä¸ï¼Œç¸½æ˜¯æœƒå‡ºç¾ä¸€äº›ä¸é‚£éº¼åˆ‡å¯¦éš›çš„åšè©¦ï¼Œè€Œæœ€å¾Œï¼Œå…¶ä¸çš„ä¸€äº›è¢«è‰æ˜Žæœ‰æ•ˆã€‚
銀å彈這種æ±è¥¿ï¼Œåˆ¥è²»åŠ›åŽ»æ‰¾ã€‚ä½œä»€éº¼äº‹æƒ…ï¼Œç”¨ä»€éº¼å·¥å…·ï¼›ç”¨ C++ 來寫網站留言版就是事å€åŠŸåŠï¼Œèªªä¸å®šç”¨ shell script 還會方便點。è¦ä½œç°¡å–®çš„計算,當然是
python -c "from math import *; print 3.0*2.0*pi"
一行解決;å«å‡ºå°ç®—盤我都嫌麻煩。
åƒ Python å’Œ Ruby 這種語言實在有個大優點:看起來很簡單,也真的很簡單。如果我想å¸å¥½æ¼”算法ã€è³‡æ–™çµæ§‹å’Œç³»çµ±åˆ†æžï¼Œç‚ºä»€éº¼è¦æ¨æ˜“å–難呢?