最近Ruby On Rails(ROR)的火热程度真的让人很惊讶,九月份的《程序员》也用了大量的篇幅来介绍这个新兴的Web Application快速开发框架。对新鲜东西向来都很好奇的我却对ROR提不起兴趣,也许是因为Ruby由日本人创造的缘故吧,我对Ruby一直有着抗拒感,尽管ROR是丹麦的小伙子David开发的。
抗拒归抗拒,ROR的成功着实是一种促使我去思考的动力。最简单的,Ruby与Python有着无比紧密的联系,那么在Python下有没有类似ROR的开发框架呢?答案是有,而且还非常的多!大家可以从两个site中找到很多很多的选择:WebProgramming和Web Development with Python。在这让人眼花缭乱的框架中,Zope是最为有名的,但是利用它来做开发却不见得高效,而且Zope所充当的角色更像是一个Application Server,与ROR所关注的范畴并不是很吻合;接下来就是CherryPy、Karrigell、TurboGears和Django了。对于CherryPy的了解其实是来源于TurboGears,因为TurboGears是Python世界中直接与ROR对话的框架,它是ROR的竞争者,因此最早进入了我的视野,大家可以看到ROR与TurboGears同时出现在了这条新闻中:TurboGears: Python on Rails? 。它最大的特点是并没有reinvent the wheel,而是充分利用了现有的优秀框架,提供了从前端至后端的解决方案,而CherryPy正是TurboGears的组成部分之一。Django也是ROR的竞争者,不过它还处于beta阶段,官方版本至今还没有发布,但是它已经受到了广泛重视,而国内的Python大牛limodou也更看好Django,认为它会比TurboGears做得更好。推荐Karrigell也是受到了limodou的影响,他对Karrigell也是宠爱有加,大家可以浏览他的blog,里面有一篇文章说明了他选择Karrigell的理由。
说了半天,面对那么多的选择,大家是不是有些厌烦了呢?是的,我一开始见到这样的一个列表的时候,我也有点蒙了。我开始明白ROR的成功或许不仅因为它本身的强大,而是众人拾柴火焰高啊!Web Programming Framework在Python世界里所面临的困窘丝毫不亚于纷扰的J2EE世界。由于对这些框架了解还不多,我无法为大家作出Professional的推荐,只能够说说自己的想法了。
在这众多框架中,我真正尝试过的只有CherryPy,它真的很小巧,而功能一点都不差。小小一百多K的体积竟然还包含了一个Http Server,所完成的应用程序可以放到一个.py文件中,部署起来会非常的方便,如果仅仅是开发一个小型网站,CherryPy是一个不错的选择。大家可以从IBM网站上的CherryPy for CGI programmers这篇文章中获得一些对CherryPy的感性认识。从中你会很惊喜的发现,代码量竟然是如此之少!由于CherryPy简单而不失强大,更重要的,它是TurboGears的重要组成部分,因此从CherryPy开始了解Python的Web Programming确实可以作为千里之行的第一步啊!
在利用这些框架来开发Web应用程序,你会发现Template是一个十分重要概念。Template就是MVC中的View一样,定义了应用程序的表现层。因此要开发一个实用的Web应用程序,成熟易用的Template系统是必不可少的,在TurboGears中,Kid就是这样的一个Template System。同时,Karrigell框架中Template系统对中文的支持是最好的,更加重要的是你可以从limodou的blog上找到丰富的参考资料。因此,你需要做更规模稍大一点的网站的时候,不妨考虑一下Karrigell了。BTW:limodou兄是一个热心的人,呵呵~~~
以上四个列举出来的框架就差Django还没有细说了,对于它我还真的不知道该说些什么了,大家还是看看Python wiki上对它的介绍吧。而且,limodou兄也是对它倍加推崇的。最后不得不提一下一种现在还没有出现也许在不久的将来会出现的Web开发方式——利用IronPython来开发ASP.NET!这种方式会在什么时候出现,它的影响将会有多大我们不得而知。但是这确实值得期待,我相信这样的开发方式会提高ASP.NET的开发效率。
以前学习Python还是停留在一个纯粹的学习阶段,而现在有了ROR的刺激,我想对于Python的关注也将转移到Web Programming上了。我相信这样的一个学习实践过程是很有价值的,毕竟我学习.NET,学习J2EE,学习Portal,都是围绕着Web Programming。偶是一个花心的人,喜欢去了解很多的东西,虽然都不深刻。其实,了解那么多就是为了能够拓宽自己的思维,从不同的开发方式中为各种问题寻求更好的solution,也就是T型发展的一个面了,至于某一点的深入就放到以后再说吧!吾好读书,不求甚解也,呵呵~~~
让我们都来关注Python在Web Programming的发展吧!欢迎各位与我一起讨论Web Programming with Python!
[后记] 这只是一篇介绍性的文字,以“吹响反击Ruby On Rails的号角”似乎有点名不副其实了。虽然我在文中提到我对Ruby有些抗拒,但是我也深信对于技术不该有偏见。因此,我也会关注ROR的发展,毕竟它获得了广大开发人员的认可,忽视它可是不明智的!当然,我还是希望Python能够在这场竞争中迎头赶上,最终胜出。:)
分享到:
相关推荐
《Ruby on Rails Tutorial》中文版(原书第2版,涵盖 Rails 4) Ruby 是一门很美的计算机语言,其设计原则就是“让编程人员快乐”。David Heinemeier Hansson 就是看重了这一点,才在开发 Rails 框架时选择了 Ruby...
Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 Ubuntu系统ruby on rails安装 ...
Ruby On Rails中文教材(PDF)
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
ruby on rails社区网站开发源码
Ruby on Rails Web开发学习实录 内容简介: 在目前的主流web开发技术中,基于ruby语言的rails框架是做网站开发速度最快的工具。它可以达到j2ee框架开发速度的5~10倍,并且代码量也非常少。另外由于代码量的大幅度...
ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作ruby on rails对mongodb的操作
本书的目标是成为对“如果想学习使用 Ruby on Rails 进行 Web 开发,我应该从哪儿开始?”这一问题的最好答案。学习完本书的内容之后,你将具备使用 Rails 进行开发和部署 Web 程序的技能。同时你还能够通过一些进阶...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
Ruby On Rails 官方教程,这本书讲解如何使用 Ruby on Rails 框架开发应用,以及如何把应用部署到生成环境。本书使用 Rails 默认的开发工具栈开发了一个完整的社交应用(类似 Twitter)。读完本书后你将掌握如何使用...
ruby on rails 教程源码,配合原书使用
ruby on rails最新版 这是本人精心收集的重要软件
ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)
该资源包包括在Linux安装Ruby on Rails所需的包,以及安装步骤文档
Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...
Ruby on Rails中文指南
ruby on rails api方便查阅
最新Ruby on Rails中文版介绍,欢迎大家共同学习此最新的技术!随着Ruby和Rails版本的不断升级,这些知识也在不断的更新,谢谢的支持!
基于ruby on rails开发示例源码