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