漫谈 Perl 的 web 应用开发框架(转)
Submitted by editor on Wed, 11/12/2008 - 11:02.
From:http://agentzh.org/#post-95:
忍不住在 PerlChina 邮件列表中盘点了一下 Perl 里的 Web 应用框架(巧的是 PerlBuzz 最近也有一篇相关的讨论帖),于是乎,决定在我自己的 blog 上也贴一下 :)
原生 CGI/FastCGI 的 web app 对于较小的应用非常合适,但稍复杂一些就有些痛苦,
Catalyst, CGI::Application, 和 Jifty 是最流行的三大框架。CGI::Application 是 CGI 之上很薄的一层,非常 popular,呵呵,这里的许多哥们使用之。Catalyst 也见过许多网站应用,包括比较大的网站。从技术和想法上讲,
从架构上讲,这些框架与 Ruby 的 RoR 和 Python 的 Django 没有本质区别,甚至可以说是大同小异,
这让我陷入了很深的思考。。。我和 Jifty 的老大 Jesse 也交流过。。。我们的 web 应用框架是否应该学习一下 C/C++ 这些编程语言的编译器?是否应该做成"编译型"的框架,
这个最终得到的"二进制"的网站是什么样子,
在过去的一年内我做了许多有趣的尝试。XUL::App 就是这种思考的实践,我们在开发过程中可以使用许多 Perl,包括 Template::Declare 和 Locale::Maketext::Lexicon 这样的模块,但最终得到的 Firefox 插件产品中却不含一行 Perl 代码,可以安装在任何机器上。当然了,XUL::App 并非建站框架了,但有许多类似之处。
随后,因为工作需要,开始开发 OpenResty。在这里,我们的"最终的二进制网站"
然而,我们同时必须解决中央数据源的问题,
巧的是,clkao 也在我之前做过类似的尝试。 他试图从使用了 Template::Declare 的 Perl 代码生成原生的客户端 JavaScript 代码,利用了一些 B::Deparse 模块的高级技巧。与 XUL::App 类似,他也把 perl 的 Maketext 的 I18N love 带给了客户端的 JavaScript 代码。必须承认,这一点也值得 XUL::App 学习,目前 XUL::App 的 I18N love 只限于 XUL 代码(虽然 JS 代码可以利用隐藏的 DOM 节点技巧而享受到 I18N,但无疑有些 hacky 了)。
无论如何,Jifty (以及最近的 Prophet)都是非常值得一看的好东东。
那么作为初学者,学习那个好呢?以鄙人之见,

