本文将谈到Web开发中是否有框架的地位,相对与框架,很多人更重视语言的开发。很多人觉得框架只是将人限制住,并不通用,那么本文的讨论,能给您一些启发。
虽然,近年来,一些也算是有趣的工具在源源不断地推出,诸如 Rubby on Rails, Ajango 一类的框架,诸如 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 以及其它框架非常好用,但当你的站点发展到一定规模,问题将接踵而至,框架最终成为你的桎梏。
作为局外人,你可能以为,如果你某个项目中的 Rubby on Rails 让你陷入了困境,你可以很容易使用别的什么框架中的技术来解决,事实上这很难,你没有办法轻松地将一部分交给 Django,另一部分给 Ruby on Rails 或 Erlang。
Kaplan-Moss 是个彻头彻尾的 Python 爱好者,他希望从 Python 寻找解决方案,确实,从历史上看,Python 就是一种”粘合“语言,那些桌面和游戏程序的开发者们一直使用 C++ 或 Java 编写对性能要求高的部分,再用 Python 编写高层的可定制部分。
在 Web 开发上,也可以使用类似的方法,即用 Python 将 Haskell,Erlang, Rubby 等语言粘合起来,然而这些对我们来说仍遥遥无期,Web 仍在膨胀,不管是规模还是复杂程度。
诚然,多数站点的规模都很小,不会碰到 Twitetr, Facebook, Google 等站点的规模与流量问题,然而,正是这些大规模站点促使我们设计出目前我们所使用的各种工具,Twiiter, Google 等站点成为我们的试验台,而一些新的解决方案也将从中诞生。尽管多数 Web 开发者不会遇到类似的问题,但这些问题本身会为我们带来更好的解决方案,最终让 Web 开发不再痛苦。
【编辑推荐】