程式者的胡言亂語

pageicon 星期四 五月 31, 2007

評論 :關於語言的效能或scalability

最近因為採用RoR開發的Twitter遇上scalability的問題,所以導致開發者「更加的」關注RoRscalability問題。之所以說是「更加的」,是因為原先大家都公認RoR的效能表現並不夠好,對於它在效能的問題上一直有存疑,而爆紅的Twitter正好可以提供一個例子,讓大家探索RoR相關技術目前在scalability上的極限究竟為何。


我的看法是,或許目前RoR在效能或scalability上的表現不好是事實,不過這有很大的原因是因為它還是一個不那麼成熟的技術領域。許多Java的開發者都一路渡過從JDK 1.0開始的時代,那時的JVM既慢、bug又多。但隨著時間的過去,不論是編譯器或VM的技術都持續成熟,現今的JVM可以說是一代比一代更快、效能更好。


所以,除非有一些根本上的架構錯誤,不然我會很樂觀的相信實作技術能夠改善效能的問題。


我認為,我們在思考程式語言或framework時,應該要考慮的是模式(paradigm)的正確與否以及抽象化的程度。模式代表的是一種表達陳述的模式,好的表達模式,能提昇生產力、減少錯誤、易於擴充及維護。我最近常聽lukhnos提到RoR的「謎之一行」,表示一行抵千行的效用。為什麼一行程式碼的表述能夠抵的上千行程式的效果,這意謂著很高的抽象化程度。每種語言及framework都位在某種位階的抽象化程度之上,尤其framework更是對特定應用的抽象化及一般化。有生產力的framework都是抽象化程度高的,否則是無法有所謂的「謎之一行」。


高抽象化的好處是效能改善空間大。當client programmer的表述愈精簡時,代表大部份的工作都是語言或framework處理掉,只要加強在語言或framework的內部實作,它們的效能改善了,程式的效能就改善了。好比新版的JVM提昇了效能,原有的程式在新的JVM上執行,效能表現就能更好一樣。參與語言或framework設計及實作的都是專家,讓專家調校語言或framework實作,是一個比較好的方式。而表述愈是精簡,效能愈有改善的空間。


RoR現階段看起來,應該有正確的paradigmframework也有生產力,我相信就算效能不彰,改善也是遲早的事。最怕的往往不是效能不好,而是paradigm不對,導致整個開發生產力低落,那可就從根本上就不對,而不是「遲早」二字所能解決的。

迴響:

我覺得這種話是聽起來有道理,可是對於一個想要商業運轉的網站來說,要考慮的不僅僅是這樣吧。

你講的東西要是一直沒有發生,也一直沒有出現,那現在正在用的人是要怎麼辦,自己去改RoR的底層嗎?

由...發表 獨孤木 on 五月 31, 2007 at 10:47 下午 CST #

所以我喜歡採用落後先驅者一至兩個世代的技術啊 XD

由...發表 Qing on 五月 31, 2007 at 11:07 下午 CST #

如果真是這樣,我寧可選擇已經改善了的程式語言 :p

用新的語言開發固然是件好事,但總覺得風險還是有的
(其實,說到底是自己懶得再去學好其他語言.. ||)

由...發表 CornGuo on 五月 31, 2007 at 11:19 下午 CST #

理論上是這樣啦...

但我的觀察是,不論設計有沒有問題,只要是 "紅" 的技術或平台,自然就會集結一堆人,然後做出一堆修正,讓爛東西變得好用一點。

Stateless Http (fixed by many stateful serverside technology)
Ajax (fixed by ajax framework)
EJB2 (fixed by xdoclet, vendor tools)
Windows (fixed by many AntiVirus software)
... etc

反倒是真正完美的東西一直出不了頭 (Mac OS X, Smalltalk, LISP...etc)

按此 "理論"... RoR 只要一直紅下去,越來越多人用,目前的問題自然會一一被解決 (盡管不見得解決的很漂亮)。反之如果 buzz 停了,設計再好再對也沒人會去用的... 最後消失在大家的記憶裡。

由...發表 ingramchen on 六月 01, 2007 at 12:47 上午 CST #

不過爛東西是滿難受到歡迎的, 不知道有什麼例子嗎?
另外, 某種角度看起來有美感的東西, 不一定是好東西
有美感不代表是正確的paradigm
像EJB就是一整個糟的東西, 如果不懂一堆 EJB patterns
很容易寫出很爛的EJB應用程式
好的paradigm應該要直覺不容易犯錯

由...發表 Qing on 六月 01, 2007 at 11:04 下午 CST #

web 夠受歡迎吧?
但是拿 stateless protocol 的 http 來寫 web app 還不夠糟嗎?
大家為了 session、back-button、多個視窗、double submit、server push、COMET...etc 的問題苦了多久?很多到現在也沒有完美的解決方法。

如果說 paradigm 對了,才解決的了,才能發揚光大。那麼等於是說
"替 http 增加 stateful 的 extension,以及付與 html 更多的程式元件 (WHATWG, SVG),然後 web app 才會發光發熱...."

但現實的發展呢?即使 http/html 技術根本不是設計來做 app 平台的,兩者的 paradigm 也完全不對頭。但是為了種種 web 的好處,web 超級紅超級多人用,全世界的開發商、人員紛紛投入,拼命彌補 http/html 的不足,一直至今 web 2.0 大爆發,web app 反客為主,反而變成 web 最主要的應用...

技術理論完不完善當然會阻礙發展的速度,但不會是影響出線的最主要因素...

"人聚集多的地方就會發生很多化腐朽為神奇的事"

這是小弟幾年來對 IT 界的感想...

由...發表 ingramchen on 六月 02, 2007 at 12:09 上午 CST #

ingramchen說的也對!
這麼一說, 的確也是有不少的爛架構, 因為時勢的關係受到歡迎, 反而有很多人投入改善其問題, 例如 TCP/IP 嗎 XD
我很同意 "人聚集多的地方就會發生很多化腐朽為神奇的事" 這句話

由...發表 Qing on 六月 03, 2007 at 01:15 上午 CST #

我同意「人聚集多的地方就會發生很多化腐朽為神奇的事」這句話,但這個人潮,到底只是短期的熱門呢,還是會長久到足以推動重大的改善?歷史上很多預言家都有判斷錯誤的時候。

1990 年代的 C++,算是「人聚集多的地方」吧?也的確引起了「發生很多化腐朽為神奇的事」;但是,先天的不良,使它在 web 時代將王座拱手讓人。

由...發表 william on 六月 06, 2007 at 10:42 上午 CST #

發表迴響:
  • HTML 語法: 關閉
把對母乳媽媽的感謝與支持傳出去

« 九月 2010
星期日星期一星期二星期三星期四星期五星期六
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  
       
今日

Search this blog

Links

Weblog menu

Today's referrers

Feeds