把 Python 分類到 dynamic language,看起來就比 scripting language 專業!

thegiive 真的很知道玩 dynamic language (這個名詞聽起來就比 scripting language 厲害多了吧) programming 的人對什麼會感冒:

光是「絕對不是 JavaScript 那種 SCRIPT 語言可以比較的!」這句話,就會被 PHP / Perl / Python 社群罵死,根本不用 Ruby 來補這一刀。

所以我就忍不住也想要來淌一下混水了 (雖然不想罵死誰) ... 很久很久很久沒這樣幹了呀 :D 從奇怪的角度來看,對我個人來講,這也算是個紀念 :p

» continue reading
Posted by yungyuc at 21:39, 8 comments, 1 trackbacks.

程式語言人氣排名,還有分 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 看來卻該敬而遠之。

Posted by yungyuc at 06:02, 1 comments, 0 trackback.

現在的 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 這種語言實在有個大優點:看起來很簡單,也真的很簡單。如果我想學好演算法、資料結構和系統分析,為什麼要捨易取難呢?

Posted by yungyuc at 00:47, 3 comments, 0 trackback.
Change to page (10 entries in each page): 1
© hover year to navigate month: powered by django