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