『Raptor』SD2.0 (來源於孟巖講座)

原文鏈接:http://blog.csdn.net/Raptor/archive/2009/01/13/3765084.aspx

 

作者:Raptor

 

在SD2C上的另外一些收穫來自於Web應用方面。一個是董洵的GAE講座,一個是錢宏武關於大型WEB應用的講座。

錢宏武有一個觀點談到關於技術選型一定要選擇那種久經考驗資源豐富的解決方案。比如對於WEB應用來說,PHP就是這樣一種靠譜的方案。這個我很贊同,像ASP就是在過去一些年裏未能通過考驗而可恥滴被淘汰的技術——傍上 MS又如何,現實是殘酷的,連MS自己也放棄了ASP。一個朋友有一個ASP做的網站要我幫忙在國外找個虛擬主機空間(國內的虛擬主機商太不靠譜,而且價格貴得離譜),結果我找了四家比較有名的,只有一家有提供支持ASP的Windows平臺。

於是我想到了這兩年來我所接觸過的Python Web框架:Django, TurboGears, Pylons。因爲那天有事急着回市區,沒能等到董洵講座的問答一環節,所以也就沒能問一下他的看法。不過按董洵在講座中的觀點來看,他是對Django 是非常推崇的,他自己的網站“好看簿”就是用Django開發的——他說到這個我纔想起來07年在土豆的barcamp上見過他。

回上海後在BT妓術羣裏也討論了一下這個話題,令狐作《Django到底有什麼好?》來談這個問題。

我最初接觸Python的Web開發就是聽Limodou介紹的Django,從0.94版一直用到0.96版。令狐因爲之前用過CherryPy,所以比較傾向於基於CherryPy的TurboGears。不過在經過一段時間的使用之後,我還是決定從Django換到了TG,因爲我不喜歡Django獨有的ORM和非XML的模板——雖然這個叫做Jinja的模板引擎的確比TG默認的KID要快得多。不過我用TG也不太喜歡用它默認配置的 SQLObject和KID,而是喜歡SQLAlchemy和Genshi。TG的優點就在於此,你可以按自己的喜好選擇使用ORM和/或模板引擎,不會像Django那樣讓人感覺受約束。

到了08年,BT妓術羣要做新版本狗屎皮網站時,在MK的提議下,我們選擇了Pylons——它也像 TG一樣是可自由組裝的,但是底層是基於Paster而不是CherryPy,二者的優劣我不好評說,但可以肯定的是,Pylons的配置性比TG更好。但促使我們作出這樣的決定的理由卻很簡單——TG2開始就不再是基於CherryPy而是要改投Pylons門下了,雖然當時TG2還未正式推出(現在也只到Beta1)。

經過這麼一番折騰之後再回頭來看這三個框架,感覺就不同了。

Django雖然是一個全包的解決方案,但是它的方案卻是經得起考驗的——因爲據說Django的誕生差不多與RoR同時,也都是基於實際的應用開發需要而被創建出來的,它是一個與RoR類似的方案,但卻絕不是仿製品。

TurboGears的想法是很好的,但是因爲用到的組件過多,並且千差萬別,TG的組合從某種程度上說是比較勉強的,並且不得不因此加了很多比較難看的手法,使用上問題也是比較多的。

Pylons雖然思路與TG類似,但是做法要清爽得多。最關鍵的是它提供的功能卻一點也不差,比如URL映射(REST需要),還有對CACHE的支持等(當然這些Django也都有)。只是用起來麻煩一點。

我雖然用TG做過一些應用,但都是隻有幾十個用戶的小應用。對於實際的大規模應用來說,TG的效能是很可疑的。在這一點上,Django和Pylons都要好得多。

回到前面所說的“久經考驗”的問題上。要說Python世界裏最久經考驗的方案,那大概就要數Zope了,不過那個東東實在是太笨重了,堪比J2EE。

而除了Zope之外,這三個方案(甚至還可以包括RoR等)跟PHP比起來都不能算是久經考驗,但如果一定要在這三個裏選一個的話,恐怕最後勝出的還會是Django。

不過我覺得要是從趨勢上看,Pylons會很有前途——

Limodou在說了《merb的不可知--與uliweb框架的走向》後不久,merb就正式與RoR合併了。如果把RoR比作Django的話,merb就像是Pylons,也許將來在TG2與Pylons正式合併以後,Django也加入進來不是不可能的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章