Web開發(fā)中是否有框架的地位
本文將談到Web開發(fā)中是否有框架的地位,相對與框架,很多人更重視語言的開發(fā)。很多人覺得框架只是將人限制住,并不通用,那么本文的討論,能給您一些啟發(fā)。
雖然,近年來,一些也算是有趣的工具在源源不斷地推出,諸如 Rubby on Rails, Ajango 一類的框架,諸如 jQuery, Dojo 一類的 JavaScript 庫在幫我們擺脫枯燥的工作,但我們?nèi)匀灰媾R著大量繁雜的工作,事實上,我們在 Web 開發(fā)領(lǐng)域取得的絕大多數(shù)進(jìn)步都源自對各種繁雜工作的簡化。
最近,于阿根廷召開的 Python Conference 上,Django 的開發(fā)者 Jacob Kaplan-Moss 回答了一些與此有關(guān)的問題 (以下是會議視頻)。Jacob Kaplan-Moss 表示,我們已經(jīng)完成了從思考“網(wǎng)頁”到思考“Web 程序”之間的巨大變遷,而現(xiàn)在,我們面臨著另一場變遷,從思考傳統(tǒng)的“網(wǎng)站”,到所有相關(guān)的 Web 技術(shù)。
對 Kaplan-Moss 來說,所有相關(guān)的 Web 技術(shù)的意思是從后臺框架到 HTML 5 的所有東西,而這些東西將改變 Web 開發(fā)者們的工作方式。如果你對此還沒有感覺,可以看一下 280Slides.com,這個網(wǎng)站提供的服務(wù)界面已經(jīng)很象桌面程序(然而,我親自體驗過之后,感覺這樣的桌面實在太難用了 - 譯者),讓人傷心的是,Kaplan-Moss 指出,這個站點(diǎn)的開發(fā)者不僅要設(shè)計一個全新的框架(Cappuccino),還要設(shè)計一種全新的語言(ObjectiveJ)來實現(xiàn)他們的工作。
單單是設(shè)計一個框架已經(jīng)夠受的了,更何談設(shè)計一種全新的語言。
不過, Kaplan-Moss 同時指出,關(guān)于框架,我們也需要慎重考慮,因為當(dāng)那些現(xiàn)代 Web 開發(fā)者陷入困境的時候,應(yīng)該怪罪的恰恰是那些框架。
框架有兩個問題,它們并不靈活,更壞的是,框架往往將你框住,框架是為大多數(shù)人通用而設(shè)計的,然而,當(dāng)很多項目發(fā)展到一定程度,他們往往不在需要通用的東西,而是需要一些特定的技術(shù)。Django,Ruby on Rails 以及其它框架非常好用,但當(dāng)你的站點(diǎn)發(fā)展到一定規(guī)模,問題將接踵而至,框架最終成為你的桎梏。
作為局外人,你可能以為,如果你某個項目中的 Rubby on Rails 讓你陷入了困境,你可以很容易使用別的什么框架中的技術(shù)來解決,事實上這很難,你沒有辦法輕松地將一部分交給 Django,另一部分給 Ruby on Rails 或 Erlang。
Kaplan-Moss 是個徹頭徹尾的 Python 愛好者,他希望從 Python 尋找解決方案,確實,從歷史上看,Python 就是一種”粘合“語言,那些桌面和游戲程序的開發(fā)者們一直使用 C++ 或 Java 編寫對性能要求高的部分,再用 Python 編寫高層的可定制部分。
在 Web 開發(fā)上,也可以使用類似的方法,即用 Python 將 Haskell,Erlang, Rubby 等語言粘合起來,然而這些對我們來說仍遙遙無期,Web 仍在膨脹,不管是規(guī)模還是復(fù)雜程度。
誠然,多數(shù)站點(diǎn)的規(guī)模都很小,不會碰到 Twitetr, Facebook, Google 等站點(diǎn)的規(guī)模與流量問題,然而,正是這些大規(guī)模站點(diǎn)促使我們設(shè)計出目前我們所使用的各種工具,Twiiter, Google 等站點(diǎn)成為我們的試驗臺,而一些新的解決方案也將從中誕生。盡管多數(shù) Web 開發(fā)者不會遇到類似的問題,但這些問題本身會為我們帶來更好的解決方案,最終讓 Web 開發(fā)不再痛苦。
【編輯推薦】