[Catalyst] 序言
时间:2010-01-16 来源:socyno
从一开始,我一直同 Catalyst 团队在一起。从起初尝试找寻更好的创建 WEB 应用程序的几个人的团队(In IRC channel),我们一路走过了漫长的道路。现在,Catalyst 是一个世界级的价值百万的网站,它是一个成功的开发者社区,全球数以千计的人们通过 mail-list 和 IRC 相互联络。
这就是为什么我如此兴奋和关注你现在拿在手里的这本书。这本书在以 perl 实现的 WEB 应用程序开发过程方面具有独到的洞察力。它涵盖了新推出的 Catalyst 5.8 系列和周边技术,像 Moose,DBIx::Class 和 Template Toolkit。
为何选择 Catalyst 为什么我相信 Catalyst 是最好的 WEB 应用程序开发方式?我在其他技术方面有过多年的工作经验,范围从早期的 Netscape LiveWire 平台,到 Microsoft IIS,Java Servlets 和 JSP,PHP,和最近的Ruby On Rails。它们都提供了各种优点,但坦诚的说,在灵活性,开发和开发的速度方面,Catalyst 是无与伦比的,我将在下面几节中讲述其原因。
Catalyst 是灵活的 这有两个不同的原因,其一在于 Catalyst 高优化的程序调度。有了它,你可以编写任意的 URL 方案为你创建紧密和专业的 WEB 应用程序。Catalyst 也授予你在开发上的灵活性,通过它可以将现下广泛流行的网络服务器和部署配置无缝的集成在一起。
Catalyst 是CPAN的 CPAN,综合的 Perl 归档网络,是我选择用 Perl 编码的一个原因。在编程的世界,没有什么东西可以取代它。在我写这本书的时候,有 7474 上传则经过多达 17901 次发布,提交了 69096 个模块。基本上,如果你向解决某个问题,你都可以在 CPAN 上找个适合的模块完成它。这也是为什么 Catalyst 团队早期最重要的设计决策之一是允许 Catalyst 它们一起工作。在 Catalyst 和 CatalystX 命名空间内有 1526 个不同的模块。它们中大部分都和 CPAN 上的其它模块紧密粘合在一起。
Catalyst 是社区的 但最重要的是,Catalyst 是一个家。多年来,我认识了 Catalyst 社区里大部分活跃的成员,同时也很敬畏他们努力改进这个框架的奉献精神。相比其他 perl 框架,我相信这是 Catalyst 最大的力量。 大量的贡献者正在为 Catalyst 各个方面的改进而工作,从写出更好的手册和文档,到通过 IRC 帮助新人们快速的上手,在到写一些针对在链式调度边缘状况的测试。
Perl 复兴 当时,我开始认真的学习 Perl,然而 Perl 语言却开始渐渐的衰落。Perl 5 已经发布十年了,而 Perl 6 的进度似乎一直停滞不前。人们都说这门语言已经死了,但在最后的几年,美好的事情出现了。 Perl 5 平台的稳定性已经使得在扩展和改变这门语言自身出现了空前的灵活性。流行的面向对象的 Perl 完全颠覆了人们记忆中的第一个 perl 5 的 CGI 脚本的编码的方式。得益于 Moose,perl 有了一个只有在一些实验研究性语言中才能看到的灵活的对象系统,像角色和全功能自省已经完全改变了写 perl 应用的方式。 这也是问什么将 Catalyst 迁移到 Moose 框架下是如此重要的。然而,对于 Catalyst 仍然有很多的余地让 Moose 的使用变得更好,你从这本书中学到的知识在很长一段时间内都将是有效的。我们相信它的稳定性并给你写好的新应用的自由,而不是在新版本发布后,浪费你的时间去重写现有的网站。
现代 Perl 近来,在确定现代 perl 方向上出现了一阵活跃的事件。新的启发式 Perl 组织( Enlightened Perl Organization (http://www.enlightenedperl.org/) )出现了,以支持 Perl 的开发成果在将来可以作为企业级的开发平台。除其他外,该组织有一个工作组来制定现代Perl模块扩展的核心,( it puts on the Iron Man Blogging Challenge --不知如何翻译)。 还有一本正在开发中的现代 Perl 的书,和几个其它的成果,像 http://catalyzed.org/,一个致力于现代 Perl 和 Catalyst 的发展的网站。
Perl 自重塑 在这个生态系统中,最新的趋势是用 Perl 重塑 Perl。底层的驱动像 Devel::Declare 和Variable::Magic,成果如 MooseX::Declare(为 Moose 定义了一个新的类语法)和 MooseX::Lexical::Types(一个定义类型变量(typed variables)的方法)以及 TryCatch(一个综合的例外机制)确实新增了一流的关键字到这个语言中。这些工作的大部分都是受了正在进行中的 Perl 6 项目的影响。
Catalyst 的未来 我想带着对 Catalyst 未来的一些想向来总结这个序言。在一像 Catalyst 这样大的生态系统中,开发者们要求必要的稳定性和可预见性。有非常多的附加组件依赖于运行时核心,在 Catalyst 从5.7演变到5.8的时候,我们必须努力尽可能的保持这些东西不变。我们仍然要致力于支持 Catalyst 5.8 系列全部的接口。出于衡量事情的角度,Catalyst 5.7 系列从 2006/07/07 持续到 2009/04/18。大部分的让人兴奋的新的开发都发生在依赖曲线的边缘,这一个自然的进程。 但是,有一个并行的操作以开发下一代框架主要迭代。这个成果计划以 Catalyst6 命名空间发布,它可能会针对大量 Perl 6 的特性(通过 Moose 和 Declare 技术在 Perl 5 上已实现了的)。这项工作大部分仍在进行中,我们将花大量的时间以确保正确性。尽管在电子的世界,事情发生的总是最快的,但这本的内容将在很长的时间了是切题的,有用的。
为何选择 Catalyst 为什么我相信 Catalyst 是最好的 WEB 应用程序开发方式?我在其他技术方面有过多年的工作经验,范围从早期的 Netscape LiveWire 平台,到 Microsoft IIS,Java Servlets 和 JSP,PHP,和最近的Ruby On Rails。它们都提供了各种优点,但坦诚的说,在灵活性,开发和开发的速度方面,Catalyst 是无与伦比的,我将在下面几节中讲述其原因。
Catalyst 是灵活的 这有两个不同的原因,其一在于 Catalyst 高优化的程序调度。有了它,你可以编写任意的 URL 方案为你创建紧密和专业的 WEB 应用程序。Catalyst 也授予你在开发上的灵活性,通过它可以将现下广泛流行的网络服务器和部署配置无缝的集成在一起。
Catalyst 是CPAN的 CPAN,综合的 Perl 归档网络,是我选择用 Perl 编码的一个原因。在编程的世界,没有什么东西可以取代它。在我写这本书的时候,有 7474 上传则经过多达 17901 次发布,提交了 69096 个模块。基本上,如果你向解决某个问题,你都可以在 CPAN 上找个适合的模块完成它。这也是为什么 Catalyst 团队早期最重要的设计决策之一是允许 Catalyst 它们一起工作。在 Catalyst 和 CatalystX 命名空间内有 1526 个不同的模块。它们中大部分都和 CPAN 上的其它模块紧密粘合在一起。
Catalyst 是社区的 但最重要的是,Catalyst 是一个家。多年来,我认识了 Catalyst 社区里大部分活跃的成员,同时也很敬畏他们努力改进这个框架的奉献精神。相比其他 perl 框架,我相信这是 Catalyst 最大的力量。 大量的贡献者正在为 Catalyst 各个方面的改进而工作,从写出更好的手册和文档,到通过 IRC 帮助新人们快速的上手,在到写一些针对在链式调度边缘状况的测试。
Perl 复兴 当时,我开始认真的学习 Perl,然而 Perl 语言却开始渐渐的衰落。Perl 5 已经发布十年了,而 Perl 6 的进度似乎一直停滞不前。人们都说这门语言已经死了,但在最后的几年,美好的事情出现了。 Perl 5 平台的稳定性已经使得在扩展和改变这门语言自身出现了空前的灵活性。流行的面向对象的 Perl 完全颠覆了人们记忆中的第一个 perl 5 的 CGI 脚本的编码的方式。得益于 Moose,perl 有了一个只有在一些实验研究性语言中才能看到的灵活的对象系统,像角色和全功能自省已经完全改变了写 perl 应用的方式。 这也是问什么将 Catalyst 迁移到 Moose 框架下是如此重要的。然而,对于 Catalyst 仍然有很多的余地让 Moose 的使用变得更好,你从这本书中学到的知识在很长一段时间内都将是有效的。我们相信它的稳定性并给你写好的新应用的自由,而不是在新版本发布后,浪费你的时间去重写现有的网站。
现代 Perl 近来,在确定现代 perl 方向上出现了一阵活跃的事件。新的启发式 Perl 组织( Enlightened Perl Organization (http://www.enlightenedperl.org/) )出现了,以支持 Perl 的开发成果在将来可以作为企业级的开发平台。除其他外,该组织有一个工作组来制定现代Perl模块扩展的核心,( it puts on the Iron Man Blogging Challenge --不知如何翻译)。 还有一本正在开发中的现代 Perl 的书,和几个其它的成果,像 http://catalyzed.org/,一个致力于现代 Perl 和 Catalyst 的发展的网站。
Perl 自重塑 在这个生态系统中,最新的趋势是用 Perl 重塑 Perl。底层的驱动像 Devel::Declare 和Variable::Magic,成果如 MooseX::Declare(为 Moose 定义了一个新的类语法)和 MooseX::Lexical::Types(一个定义类型变量(typed variables)的方法)以及 TryCatch(一个综合的例外机制)确实新增了一流的关键字到这个语言中。这些工作的大部分都是受了正在进行中的 Perl 6 项目的影响。
Catalyst 的未来 我想带着对 Catalyst 未来的一些想向来总结这个序言。在一像 Catalyst 这样大的生态系统中,开发者们要求必要的稳定性和可预见性。有非常多的附加组件依赖于运行时核心,在 Catalyst 从5.7演变到5.8的时候,我们必须努力尽可能的保持这些东西不变。我们仍然要致力于支持 Catalyst 5.8 系列全部的接口。出于衡量事情的角度,Catalyst 5.7 系列从 2006/07/07 持续到 2009/04/18。大部分的让人兴奋的新的开发都发生在依赖曲线的边缘,这一个自然的进程。 但是,有一个并行的操作以开发下一代框架主要迭代。这个成果计划以 Catalyst6 命名空间发布,它可能会针对大量 Perl 6 的特性(通过 Moose 和 Declare 技术在 Perl 5 上已实现了的)。这项工作大部分仍在进行中,我们将花大量的时间以确保正确性。尽管在电子的世界,事情发生的总是最快的,但这本的内容将在很长的时间了是切题的,有用的。
Marcus Ramberg
Catalyst Release Manager
http://marcus.nordaaker.com/
关于作者 ■Kieren Diment 一个社会研究者,现在澳大利亚新南威尔士州伍伦贡大学信息系统和信息技术学院从事健康信息学研究,他最初接触 Unix 是 1994 年在一个人工智能实验室,在那里他学习 emacs,shell 和一点点有关正在迎头追赶的被叫做万维网的东西。在接下来的8年中,它不再理会电脑,而是从事有关精神病和神经病的复原工作。在 21 世纪早期某个时候阅读完尼尔.斯蒂芬森的 Cryptonomicon 后,他意识到他是如此的享受将周围的电脑搞的乱七八糟,他也在一台就的笔记本上安装了一个 Linux 并开始学习 Perl。现在只要有机会他就会将 Perl 应用于他的工作中,主要是结合研究数据做一些很机灵的事情。他主要是实用 Catalyst 来显示这些功能。然而,看上去网络开发只是这项工作的一小部分(但很重要),他不得不投入大量的兴致到文档中,以便能得知它是怎样工作的---读的比写的少(less RTFM than WTFM)。 不工作的时候,他会去徒步旅行或去海滩,在那里他经常冲浪。一年中有几次,he rides a nine-foot longboard and is goofy-footed。当浪很大或者跟家人一起的时候(更多的情况),他就人体冲浪。
■Matt S Trout 由于一个备份事故,他在还未成年的17岁就开始接触 Perl,用它来作系统自动化,网络和数据库开发知道现在。他是第二久的 Catalyst 核心团队的常任成员,DBIx::Class ORM 项目的创始人,在对象系统早期就是 Moose 的提倡者,CPAN 的 PAUSE 管理员,工作重点在于帮助寻找废弃 CPAN 模块的维护者。偶尔,也会抽空写其它的 Perl 模块,然后使其供社区的其他成员使用,如 Devel::REP : 交互的 Perl Shell,Devel::Declare : MooseX::Declare 底层的语法扩展系统,以及 Method::Signatures::Simple。Matt 效力于 Shadowcat Systems 公司的技术团队,一个开源的咨询公司,专门负责帮助客户设计和开发基于 Catalyst 和 DBIx::Class 的应用。 偶尔,不再电脑前的时候,你可能发现他正在玩龙与地下城,或者在哥特和金属俱乐部的舞池甩动他的头发,或者躲在酒吧的某个角落喝啤酒。
■Eden Cardim 计算机理学学士学位,从 1998 开始从事 perl 开发。 其 Perl 在生物信息科学和网络开发上的应用提交的开源的CPAN项目中,Reaction 的核心开发者,Catalyst,DBIx::Class 和 Moose 的贡献这。
■Jay Kuri 自 1994 年旗开始从事应用程序开发和互联网系统架构。 在之后的 15 年中,他做过软件相关的每件事情,从便携式电子阅读器到 800 机器的网络集群。2004 年被 Ionzero (http://www.ionzero.com) 公司发觉,这是一个致力于为其客户提供最好的,最安全的和最容易维护的软件的软件开发企业。在这家公司,Jay 也通过向开源软件捐献代码和组建社区的形式积极参加计算机社区活动,包括 Perl 网站 http://catalyzed.org/。 在他空闲的时候,他会花时间陪伴可爱的(也很有耐心的)妻子 Rebecca 和儿子 Justin。或者偶尔的骑摩托车旅行,也会不时在非代码相关的木工和图案设计方面一些创意。
■Jess Robinson 在 2000 年,出于个人兴趣娱乐开始学习 Perl。 出于某种原因她很喜欢数据库,现在她可以成功的将这两个兴趣爱好合并在一起,主导 DBIx::Class 项目的文档编制。她做 Catalyst 和 DBIx::Class 两个项目的用户支持,偶尔也开发自己的 Catalyst 应用。
关于技术评审者
关于作者 ■Kieren Diment 一个社会研究者,现在澳大利亚新南威尔士州伍伦贡大学信息系统和信息技术学院从事健康信息学研究,他最初接触 Unix 是 1994 年在一个人工智能实验室,在那里他学习 emacs,shell 和一点点有关正在迎头追赶的被叫做万维网的东西。在接下来的8年中,它不再理会电脑,而是从事有关精神病和神经病的复原工作。在 21 世纪早期某个时候阅读完尼尔.斯蒂芬森的 Cryptonomicon 后,他意识到他是如此的享受将周围的电脑搞的乱七八糟,他也在一台就的笔记本上安装了一个 Linux 并开始学习 Perl。现在只要有机会他就会将 Perl 应用于他的工作中,主要是结合研究数据做一些很机灵的事情。他主要是实用 Catalyst 来显示这些功能。然而,看上去网络开发只是这项工作的一小部分(但很重要),他不得不投入大量的兴致到文档中,以便能得知它是怎样工作的---读的比写的少(less RTFM than WTFM)。 不工作的时候,他会去徒步旅行或去海滩,在那里他经常冲浪。一年中有几次,he rides a nine-foot longboard and is goofy-footed。当浪很大或者跟家人一起的时候(更多的情况),他就人体冲浪。
■Matt S Trout 由于一个备份事故,他在还未成年的17岁就开始接触 Perl,用它来作系统自动化,网络和数据库开发知道现在。他是第二久的 Catalyst 核心团队的常任成员,DBIx::Class ORM 项目的创始人,在对象系统早期就是 Moose 的提倡者,CPAN 的 PAUSE 管理员,工作重点在于帮助寻找废弃 CPAN 模块的维护者。偶尔,也会抽空写其它的 Perl 模块,然后使其供社区的其他成员使用,如 Devel::REP : 交互的 Perl Shell,Devel::Declare : MooseX::Declare 底层的语法扩展系统,以及 Method::Signatures::Simple。Matt 效力于 Shadowcat Systems 公司的技术团队,一个开源的咨询公司,专门负责帮助客户设计和开发基于 Catalyst 和 DBIx::Class 的应用。 偶尔,不再电脑前的时候,你可能发现他正在玩龙与地下城,或者在哥特和金属俱乐部的舞池甩动他的头发,或者躲在酒吧的某个角落喝啤酒。
■Eden Cardim 计算机理学学士学位,从 1998 开始从事 perl 开发。 其 Perl 在生物信息科学和网络开发上的应用提交的开源的CPAN项目中,Reaction 的核心开发者,Catalyst,DBIx::Class 和 Moose 的贡献这。
■Jay Kuri 自 1994 年旗开始从事应用程序开发和互联网系统架构。 在之后的 15 年中,他做过软件相关的每件事情,从便携式电子阅读器到 800 机器的网络集群。2004 年被 Ionzero (http://www.ionzero.com) 公司发觉,这是一个致力于为其客户提供最好的,最安全的和最容易维护的软件的软件开发企业。在这家公司,Jay 也通过向开源软件捐献代码和组建社区的形式积极参加计算机社区活动,包括 Perl 网站 http://catalyzed.org/。 在他空闲的时候,他会花时间陪伴可爱的(也很有耐心的)妻子 Rebecca 和儿子 Justin。或者偶尔的骑摩托车旅行,也会不时在非代码相关的木工和图案设计方面一些创意。
■Jess Robinson 在 2000 年,出于个人兴趣娱乐开始学习 Perl。 出于某种原因她很喜欢数据库,现在她可以成功的将这两个兴趣爱好合并在一起,主导 DBIx::Class 项目的文档编制。她做 Catalyst 和 DBIx::Class 两个项目的用户支持,偶尔也开发自己的 Catalyst 应用。
关于技术评审者
从一开始,我一直同 Catalyst 团队在一起。从起初尝试找寻更好的创建 WEB 应用程序的几个人的团队(In IRC channel),我们一路走过了漫长的道路。现在,Catalyst 是一个世界级的价值百万的网站,它是一个成功的开发者社区,全球数以千计的人们通过 mail-list 和 IRC 相互联络。
这就是为什么我如此兴奋和关注你现在拿在手里的这本书。这本书在以 perl 实现的 WEB 应用程序开发过程方面具有独到的洞察力。它涵盖了新推出的 Catalyst 5.8 系列和周边技术,像 Moose,DBIx::Class 和 Template Toolkit。
为何选择 Catalyst 为什么我相信 Catalyst 是最好的 WEB 应用程序开发方式?我在其他技术方面有过多年的工作经验,范围从早期的 Netscape LiveWire 平台,到 Microsoft IIS,Java Servlets 和 JSP,PHP,和最近的Ruby On Rails。它们都提供了各种优点,但坦诚的说,在灵活性,开发和开发的速度方面,Catalyst 是无与伦比的,我将在下面几节中讲述其原因。
Catalyst 是灵活的 这有两个不同的原因,其一在于 Catalyst 高优化的程序调度。有了它,你可以编写任意的 URL 方案为你创建紧密和专业的 WEB 应用程序。Catalyst 也授予你在开发上的灵活性,通过它可以将现下广泛流行的网络服务器和部署配置无缝的集成在一起。
Catalyst 是CPAN的 CPAN,综合的 Perl 归档网络,是我选择用 Perl 编码的一个原因。在编程的世界,没有什么东西可以取代它。在我写这本书的时候,有 7474 上传则经过多达 17901 次发布,提交了 69096 个模块。基本上,如果你向解决某个问题,你都可以在 CPAN 上找个适合的模块完成它。这也是为什么 Catalyst 团队早期最重要的设计决策之一是允许 Catalyst 它们一起工作。在 Catalyst 和 CatalystX 命名空间内有 1526 个不同的模块。它们中大部分都和 CPAN 上的其它模块紧密粘合在一起。
Catalyst 是社区的 但最重要的是,Catalyst 是一个家。多年来,我认识了 Catalyst 社区里大部分活跃的成员,同时也很敬畏他们努力改进这个框架的奉献精神。相比其他 perl 框架,我相信这是 Catalyst 最大的力量。 大量的贡献者正在为 Catalyst 各个方面的改进而工作,从写出更好的手册和文档,到通过 IRC 帮助新人们快速的上手,在到写一些针对在链式调度边缘状况的测试。
Perl 复兴 当时,我开始认真的学习 Perl,然而 Perl 语言却开始渐渐的衰落。Perl 5 已经发布十年了,而 Perl 6 的进度似乎一直停滞不前。人们都说这门语言已经死了,但在最后的几年,美好的事情出现了。 Perl 5 平台的稳定性已经使得在扩展和改变这门语言自身出现了空前的灵活性。流行的面向对象的 Perl 完全颠覆了人们记忆中的第一个 perl 5 的 CGI 脚本的编码的方式。得益于 Moose,perl 有了一个只有在一些实验研究性语言中才能看到的灵活的对象系统,像角色和全功能自省已经完全改变了写 perl 应用的方式。 这也是问什么将 Catalyst 迁移到 Moose 框架下是如此重要的。然而,对于 Catalyst 仍然有很多的余地让 Moose 的使用变得更好,你从这本书中学到的知识在很长一段时间内都将是有效的。我们相信它的稳定性并给你写好的新应用的自由,而不是在新版本发布后,浪费你的时间去重写现有的网站。
现代 Perl 近来,在确定现代 perl 方向上出现了一阵活跃的事件。新的启发式 Perl 组织( Enlightened Perl Organization (http://www.enlightenedperl.org/) )出现了,以支持 Perl 的开发成果在将来可以作为企业级的开发平台。除其他外,该组织有一个工作组来制定现代Perl模块扩展的核心,( it puts on the Iron Man Blogging Challenge --不知如何翻译)。 还有一本正在开发中的现代 Perl 的书,和几个其它的成果,像 http://catalyzed.org/,一个致力于现代 Perl 和 Catalyst 的发展的网站。
Perl 自重塑 在这个生态系统中,最新的趋势是用 Perl 重塑 Perl。底层的驱动像 Devel::Declare 和Variable::Magic,成果如 MooseX::Declare(为 Moose 定义了一个新的类语法)和 MooseX::Lexical::Types(一个定义类型变量(typed variables)的方法)以及 TryCatch(一个综合的例外机制)确实新增了一流的关键字到这个语言中。这些工作的大部分都是受了正在进行中的 Perl 6 项目的影响。
Catalyst 的未来 我想带着对 Catalyst 未来的一些想向来总结这个序言。在一像 Catalyst 这样大的生态系统中,开发者们要求必要的稳定性和可预见性。有非常多的附加组件依赖于运行时核心,在 Catalyst 从5.7演变到5.8的时候,我们必须努力尽可能的保持这些东西不变。我们仍然要致力于支持 Catalyst 5.8 系列全部的接口。出于衡量事情的角度,Catalyst 5.7 系列从 2006/07/07 持续到 2009/04/18。大部分的让人兴奋的新的开发都发生在依赖曲线的边缘,这一个自然的进程。 但是,有一个并行的操作以开发下一代框架主要迭代。这个成果计划以 Catalyst6 命名空间发布,它可能会针对大量 Perl 6 的特性(通过 Moose 和 Declare 技术在 Perl 5 上已实现了的)。这项工作大部分仍在进行中,我们将花大量的时间以确保正确性。尽管在电子的世界,事情发生的总是最快的,但这本的内容将在很长的时间了是切题的,有用的。
为何选择 Catalyst 为什么我相信 Catalyst 是最好的 WEB 应用程序开发方式?我在其他技术方面有过多年的工作经验,范围从早期的 Netscape LiveWire 平台,到 Microsoft IIS,Java Servlets 和 JSP,PHP,和最近的Ruby On Rails。它们都提供了各种优点,但坦诚的说,在灵活性,开发和开发的速度方面,Catalyst 是无与伦比的,我将在下面几节中讲述其原因。
Catalyst 是灵活的 这有两个不同的原因,其一在于 Catalyst 高优化的程序调度。有了它,你可以编写任意的 URL 方案为你创建紧密和专业的 WEB 应用程序。Catalyst 也授予你在开发上的灵活性,通过它可以将现下广泛流行的网络服务器和部署配置无缝的集成在一起。
Catalyst 是CPAN的 CPAN,综合的 Perl 归档网络,是我选择用 Perl 编码的一个原因。在编程的世界,没有什么东西可以取代它。在我写这本书的时候,有 7474 上传则经过多达 17901 次发布,提交了 69096 个模块。基本上,如果你向解决某个问题,你都可以在 CPAN 上找个适合的模块完成它。这也是为什么 Catalyst 团队早期最重要的设计决策之一是允许 Catalyst 它们一起工作。在 Catalyst 和 CatalystX 命名空间内有 1526 个不同的模块。它们中大部分都和 CPAN 上的其它模块紧密粘合在一起。
Catalyst 是社区的 但最重要的是,Catalyst 是一个家。多年来,我认识了 Catalyst 社区里大部分活跃的成员,同时也很敬畏他们努力改进这个框架的奉献精神。相比其他 perl 框架,我相信这是 Catalyst 最大的力量。 大量的贡献者正在为 Catalyst 各个方面的改进而工作,从写出更好的手册和文档,到通过 IRC 帮助新人们快速的上手,在到写一些针对在链式调度边缘状况的测试。
Perl 复兴 当时,我开始认真的学习 Perl,然而 Perl 语言却开始渐渐的衰落。Perl 5 已经发布十年了,而 Perl 6 的进度似乎一直停滞不前。人们都说这门语言已经死了,但在最后的几年,美好的事情出现了。 Perl 5 平台的稳定性已经使得在扩展和改变这门语言自身出现了空前的灵活性。流行的面向对象的 Perl 完全颠覆了人们记忆中的第一个 perl 5 的 CGI 脚本的编码的方式。得益于 Moose,perl 有了一个只有在一些实验研究性语言中才能看到的灵活的对象系统,像角色和全功能自省已经完全改变了写 perl 应用的方式。 这也是问什么将 Catalyst 迁移到 Moose 框架下是如此重要的。然而,对于 Catalyst 仍然有很多的余地让 Moose 的使用变得更好,你从这本书中学到的知识在很长一段时间内都将是有效的。我们相信它的稳定性并给你写好的新应用的自由,而不是在新版本发布后,浪费你的时间去重写现有的网站。
现代 Perl 近来,在确定现代 perl 方向上出现了一阵活跃的事件。新的启发式 Perl 组织( Enlightened Perl Organization (http://www.enlightenedperl.org/) )出现了,以支持 Perl 的开发成果在将来可以作为企业级的开发平台。除其他外,该组织有一个工作组来制定现代Perl模块扩展的核心,( it puts on the Iron Man Blogging Challenge --不知如何翻译)。 还有一本正在开发中的现代 Perl 的书,和几个其它的成果,像 http://catalyzed.org/,一个致力于现代 Perl 和 Catalyst 的发展的网站。
Perl 自重塑 在这个生态系统中,最新的趋势是用 Perl 重塑 Perl。底层的驱动像 Devel::Declare 和Variable::Magic,成果如 MooseX::Declare(为 Moose 定义了一个新的类语法)和 MooseX::Lexical::Types(一个定义类型变量(typed variables)的方法)以及 TryCatch(一个综合的例外机制)确实新增了一流的关键字到这个语言中。这些工作的大部分都是受了正在进行中的 Perl 6 项目的影响。
Catalyst 的未来 我想带着对 Catalyst 未来的一些想向来总结这个序言。在一像 Catalyst 这样大的生态系统中,开发者们要求必要的稳定性和可预见性。有非常多的附加组件依赖于运行时核心,在 Catalyst 从5.7演变到5.8的时候,我们必须努力尽可能的保持这些东西不变。我们仍然要致力于支持 Catalyst 5.8 系列全部的接口。出于衡量事情的角度,Catalyst 5.7 系列从 2006/07/07 持续到 2009/04/18。大部分的让人兴奋的新的开发都发生在依赖曲线的边缘,这一个自然的进程。 但是,有一个并行的操作以开发下一代框架主要迭代。这个成果计划以 Catalyst6 命名空间发布,它可能会针对大量 Perl 6 的特性(通过 Moose 和 Declare 技术在 Perl 5 上已实现了的)。这项工作大部分仍在进行中,我们将花大量的时间以确保正确性。尽管在电子的世界,事情发生的总是最快的,但这本的内容将在很长的时间了是切题的,有用的。
Marcus Ramberg
Catalyst Release Manager
http://marcus.nordaaker.com/
关于作者 ■Kieren Diment 一个社会研究者,现在澳大利亚新南威尔士州伍伦贡大学信息系统和信息技术学院从事健康信息学研究,他最初接触 Unix 是 1994 年在一个人工智能实验室,在那里他学习 emacs,shell 和一点点有关正在迎头追赶的被叫做万维网的东西。在接下来的8年中,它不再理会电脑,而是从事有关精神病和神经病的复原工作。在 21 世纪早期某个时候阅读完尼尔.斯蒂芬森的 Cryptonomicon 后,他意识到他是如此的享受将周围的电脑搞的乱七八糟,他也在一台就的笔记本上安装了一个 Linux 并开始学习 Perl。现在只要有机会他就会将 Perl 应用于他的工作中,主要是结合研究数据做一些很机灵的事情。他主要是实用 Catalyst 来显示这些功能。然而,看上去网络开发只是这项工作的一小部分(但很重要),他不得不投入大量的兴致到文档中,以便能得知它是怎样工作的---读的比写的少(less RTFM than WTFM)。 不工作的时候,他会去徒步旅行或去海滩,在那里他经常冲浪。一年中有几次,he rides a nine-foot longboard and is goofy-footed。当浪很大或者跟家人一起的时候(更多的情况),他就人体冲浪。
■Matt S Trout 由于一个备份事故,他在还未成年的17岁就开始接触 Perl,用它来作系统自动化,网络和数据库开发知道现在。他是第二久的 Catalyst 核心团队的常任成员,DBIx::Class ORM 项目的创始人,在对象系统早期就是 Moose 的提倡者,CPAN 的 PAUSE 管理员,工作重点在于帮助寻找废弃 CPAN 模块的维护者。偶尔,也会抽空写其它的 Perl 模块,然后使其供社区的其他成员使用,如 Devel::REP : 交互的 Perl Shell,Devel::Declare : MooseX::Declare 底层的语法扩展系统,以及 Method::Signatures::Simple。Matt 效力于 Shadowcat Systems 公司的技术团队,一个开源的咨询公司,专门负责帮助客户设计和开发基于 Catalyst 和 DBIx::Class 的应用。 偶尔,不再电脑前的时候,你可能发现他正在玩龙与地下城,或者在哥特和金属俱乐部的舞池甩动他的头发,或者躲在酒吧的某个角落喝啤酒。
■Eden Cardim 计算机理学学士学位,从 1998 开始从事 perl 开发。 其 Perl 在生物信息科学和网络开发上的应用提交的开源的CPAN项目中,Reaction 的核心开发者,Catalyst,DBIx::Class 和 Moose 的贡献这。
■Jay Kuri 自 1994 年旗开始从事应用程序开发和互联网系统架构。 在之后的 15 年中,他做过软件相关的每件事情,从便携式电子阅读器到 800 机器的网络集群。2004 年被 Ionzero (http://www.ionzero.com) 公司发觉,这是一个致力于为其客户提供最好的,最安全的和最容易维护的软件的软件开发企业。在这家公司,Jay 也通过向开源软件捐献代码和组建社区的形式积极参加计算机社区活动,包括 Perl 网站 http://catalyzed.org/。 在他空闲的时候,他会花时间陪伴可爱的(也很有耐心的)妻子 Rebecca 和儿子 Justin。或者偶尔的骑摩托车旅行,也会不时在非代码相关的木工和图案设计方面一些创意。
■Jess Robinson 在 2000 年,出于个人兴趣娱乐开始学习 Perl。 出于某种原因她很喜欢数据库,现在她可以成功的将这两个兴趣爱好合并在一起,主导 DBIx::Class 项目的文档编制。她做 Catalyst 和 DBIx::Class 两个项目的用户支持,偶尔也开发自己的 Catalyst 应用。
关于技术评审者 ■Jacinta Richardson BE(Hons),理学学士, 奥大利亚 Perl 培训协调员和资深培训师。她拥有超过 10 年的Perl 商业化和教学经验。Jacinta 是一个资深的软件工程师,专注于过程开发,需求分析和客户沟通。 她已经是 Perl 社区里的著名人物了,一直积极的组织了许多的社区会议,包括 Linux。开源开发者会议(2004–2008)和澳大利亚系统管理会议(2008–2009),她参加过很多这类的会议,并广泛的参与国内和国际的各种计算机相关的用户群体,还定期的在 Perl Monger 和其他的会议上发起一些话题。 她很有激情的希望可以提高妇女在IT的地位。 介于 Jacinta 对 Perl 社区的贡献,2008 年她被授予极具声望的白骆驼奖。 离开计算机的时间,她喜欢去潜水,骑车或是晒晒太阳(baking)。
感谢 这本书是团队的成果,我们特别感激 Jess Robinson (第六章),Jay Kuri(第八章),Eden Caram 和 Robert Phaylon Seladek (第十二章),同意写这篇文章并为每章节做初步的审核。 在这里要特别的感谢 Florian Ragwitz,他提供给 Kieren 第十和十一章节后的大部分代码。 社区的很多成员都给予了宝贵的支持和建议,这里只有部分人被提及到。如果忘了将你的名字放在这里出现,我们表示歉意。感谢 Jesse Sheidlower, Rafael Kitover, Jay Shirley,Joel Bernstein, Andrew Rodland, Tomas Doran, Kennedy Clark, Dan Dascalescu, Devin Austin and Marcus Ramberg 在代码方面及时的帮助。 感谢Charley Harvey 在介绍中对开箱即用的评注。在第十一章中,Rafael Kitover 也编写了 WrapCGI 的代码,Alexander Hartmeier 提供了 Email::Template 相关的代码。 还要感谢 Jos Boumans 高级的 Catalyst::Test 技巧和 Mateu Hunter 以及其他 MojoMojo 开发和的文章。 在这里要向 Luke Saunders 表示歉意,因为我们没有时间来采用他提供的在 DBIx::Class 上的赛程(Fixtures)。也是第十一章,要感谢 Hideo Kumara 和 Cory G. Watson 礼貌的对他们软件中的 bugs 进行了修复。 特别感谢 Dave Rolsky 以他在编写 Moose 手册上的经验对第二章的部分做审核。我知道我基于他的建议对第二章节的部分重写仍然不能满足他苛刻的要求,但仍然有很大的改善和提高。 感谢 Dyana Wu 为 LolCatalyst 所做的工作。 感谢整个 Catalyst 社区为这个不只是最有用的,还是最流行的 Perl 网络框架的努力。 最后,我要感谢我的家人对我的理解和包容,为了在最后的期限了整理足够的材料,我不得不疏远你们,独自将自己关在房间了工作。如果没有你们的支持,我想无法完成这本书的编写。
(注:哎,终于完成了序言的翻译,好累阿,E文太烂,似乎好多句子都不怎么通,也不知道有多少地方被我乱朦过去的,惭愧啊~~~~~~~~~)
关于作者 ■Kieren Diment 一个社会研究者,现在澳大利亚新南威尔士州伍伦贡大学信息系统和信息技术学院从事健康信息学研究,他最初接触 Unix 是 1994 年在一个人工智能实验室,在那里他学习 emacs,shell 和一点点有关正在迎头追赶的被叫做万维网的东西。在接下来的8年中,它不再理会电脑,而是从事有关精神病和神经病的复原工作。在 21 世纪早期某个时候阅读完尼尔.斯蒂芬森的 Cryptonomicon 后,他意识到他是如此的享受将周围的电脑搞的乱七八糟,他也在一台就的笔记本上安装了一个 Linux 并开始学习 Perl。现在只要有机会他就会将 Perl 应用于他的工作中,主要是结合研究数据做一些很机灵的事情。他主要是实用 Catalyst 来显示这些功能。然而,看上去网络开发只是这项工作的一小部分(但很重要),他不得不投入大量的兴致到文档中,以便能得知它是怎样工作的---读的比写的少(less RTFM than WTFM)。 不工作的时候,他会去徒步旅行或去海滩,在那里他经常冲浪。一年中有几次,he rides a nine-foot longboard and is goofy-footed。当浪很大或者跟家人一起的时候(更多的情况),他就人体冲浪。
■Matt S Trout 由于一个备份事故,他在还未成年的17岁就开始接触 Perl,用它来作系统自动化,网络和数据库开发知道现在。他是第二久的 Catalyst 核心团队的常任成员,DBIx::Class ORM 项目的创始人,在对象系统早期就是 Moose 的提倡者,CPAN 的 PAUSE 管理员,工作重点在于帮助寻找废弃 CPAN 模块的维护者。偶尔,也会抽空写其它的 Perl 模块,然后使其供社区的其他成员使用,如 Devel::REP : 交互的 Perl Shell,Devel::Declare : MooseX::Declare 底层的语法扩展系统,以及 Method::Signatures::Simple。Matt 效力于 Shadowcat Systems 公司的技术团队,一个开源的咨询公司,专门负责帮助客户设计和开发基于 Catalyst 和 DBIx::Class 的应用。 偶尔,不再电脑前的时候,你可能发现他正在玩龙与地下城,或者在哥特和金属俱乐部的舞池甩动他的头发,或者躲在酒吧的某个角落喝啤酒。
■Eden Cardim 计算机理学学士学位,从 1998 开始从事 perl 开发。 其 Perl 在生物信息科学和网络开发上的应用提交的开源的CPAN项目中,Reaction 的核心开发者,Catalyst,DBIx::Class 和 Moose 的贡献这。
■Jay Kuri 自 1994 年旗开始从事应用程序开发和互联网系统架构。 在之后的 15 年中,他做过软件相关的每件事情,从便携式电子阅读器到 800 机器的网络集群。2004 年被 Ionzero (http://www.ionzero.com) 公司发觉,这是一个致力于为其客户提供最好的,最安全的和最容易维护的软件的软件开发企业。在这家公司,Jay 也通过向开源软件捐献代码和组建社区的形式积极参加计算机社区活动,包括 Perl 网站 http://catalyzed.org/。 在他空闲的时候,他会花时间陪伴可爱的(也很有耐心的)妻子 Rebecca 和儿子 Justin。或者偶尔的骑摩托车旅行,也会不时在非代码相关的木工和图案设计方面一些创意。
■Jess Robinson 在 2000 年,出于个人兴趣娱乐开始学习 Perl。 出于某种原因她很喜欢数据库,现在她可以成功的将这两个兴趣爱好合并在一起,主导 DBIx::Class 项目的文档编制。她做 Catalyst 和 DBIx::Class 两个项目的用户支持,偶尔也开发自己的 Catalyst 应用。
关于技术评审者 ■Jacinta Richardson BE(Hons),理学学士, 奥大利亚 Perl 培训协调员和资深培训师。她拥有超过 10 年的Perl 商业化和教学经验。Jacinta 是一个资深的软件工程师,专注于过程开发,需求分析和客户沟通。 她已经是 Perl 社区里的著名人物了,一直积极的组织了许多的社区会议,包括 Linux。开源开发者会议(2004–2008)和澳大利亚系统管理会议(2008–2009),她参加过很多这类的会议,并广泛的参与国内和国际的各种计算机相关的用户群体,还定期的在 Perl Monger 和其他的会议上发起一些话题。 她很有激情的希望可以提高妇女在IT的地位。 介于 Jacinta 对 Perl 社区的贡献,2008 年她被授予极具声望的白骆驼奖。 离开计算机的时间,她喜欢去潜水,骑车或是晒晒太阳(baking)。
感谢 这本书是团队的成果,我们特别感激 Jess Robinson (第六章),Jay Kuri(第八章),Eden Caram 和 Robert Phaylon Seladek (第十二章),同意写这篇文章并为每章节做初步的审核。 在这里要特别的感谢 Florian Ragwitz,他提供给 Kieren 第十和十一章节后的大部分代码。 社区的很多成员都给予了宝贵的支持和建议,这里只有部分人被提及到。如果忘了将你的名字放在这里出现,我们表示歉意。感谢 Jesse Sheidlower, Rafael Kitover, Jay Shirley,Joel Bernstein, Andrew Rodland, Tomas Doran, Kennedy Clark, Dan Dascalescu, Devin Austin and Marcus Ramberg 在代码方面及时的帮助。 感谢Charley Harvey 在介绍中对开箱即用的评注。在第十一章中,Rafael Kitover 也编写了 WrapCGI 的代码,Alexander Hartmeier 提供了 Email::Template 相关的代码。 还要感谢 Jos Boumans 高级的 Catalyst::Test 技巧和 Mateu Hunter 以及其他 MojoMojo 开发和的文章。 在这里要向 Luke Saunders 表示歉意,因为我们没有时间来采用他提供的在 DBIx::Class 上的赛程(Fixtures)。也是第十一章,要感谢 Hideo Kumara 和 Cory G. Watson 礼貌的对他们软件中的 bugs 进行了修复。 特别感谢 Dave Rolsky 以他在编写 Moose 手册上的经验对第二章的部分做审核。我知道我基于他的建议对第二章节的部分重写仍然不能满足他苛刻的要求,但仍然有很大的改善和提高。 感谢 Dyana Wu 为 LolCatalyst 所做的工作。 感谢整个 Catalyst 社区为这个不只是最有用的,还是最流行的 Perl 网络框架的努力。 最后,我要感谢我的家人对我的理解和包容,为了在最后的期限了整理足够的材料,我不得不疏远你们,独自将自己关在房间了工作。如果没有你们的支持,我想无法完成这本书的编写。
(注:哎,终于完成了序言的翻译,好累阿,E文太烂,似乎好多句子都不怎么通,也不知道有多少地方被我乱朦过去的,惭愧啊~~~~~~~~~)
相关阅读 更多 +