在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在本期文章中我将要评论的三本书都是来自于 O'Reilly & Associates,但您将会看到,它们很不相同。不过,对 Perl 编程的具体方面来说,它们都是优秀的指导资料,您将乐于收藏它们。 是 O'Reilly & Associates 为我友好地提供了这里所评论的书籍的拷贝,为此我要向 O'Reilly & Associates 表示感谢。 Perl 6 Essentials 本书最开始是对 Perl 6 的一个概述,给出了足够的背景资料,以使新 Perl 程序员了解他们所需要知道的所有最新知识,然后,作为补充,详细说明了 Perl 6 开发工作如何进行、如何评价最新的版本、甚至如何实践 Perl 6 的开发者发行版本。 然后,在第 4 章,作者为读者准备的是对 Perl 6 语法的讨论,全面介绍了 Perl 基本概念和规则。 第 4 章是正式内容的开始。它是对 Perl 中可期待内容的完整总结,如果您不得不从本书中只选择一章,那么就是这一章。每个 Perl 程序员都应该去阅读这一章,不只是为了了解 Perl 6 的诱人特性,还会说出“哎呀,我从来没想到过那一点”,因为 Perl 6 引入的视点对 Perl 5 开发者来说经常是新的。第 4 章惟一的不足之处在于,它不是对初学者准备的。具体内容特别简明有趣,而且它假定读者具备 Perl 5 术语和背景的知识。 由于曾经使用支持关联符号属性(properties)的 Emacs Lisp 进行过编程,所以我为 Perl 6 属性而感到兴奋,它可以做极其类似的事情。属性必然会为 Perl 编程带来一个全新的“侧面的(sideways)”途径。我之所以称之为“侧面的”,是因为它们用“另外”的方法来表达含义,不需要使程序的逻辑变得复杂,也不需要面向对象的方法。篇幅所限,很多其他的特性我不能提及。在阅读到 junctions、currying 以及 Perl 6 将要具备的所有其他特性时,我感觉就像是小孩子走进了糖果店。 第 4 章比较详细地解释了 Perl 6 的语法,我当然欣赏这一点。Perl 6 语法是一个肯定会让程序员迷惑、烦恼而又会产生灵感的特性。它们和 Perl 5 的语法有着巨大的差异;实际上,就其灵活性而言它们更像是 第 4 章结束后,第 5 章开始研究 Parrot 的内部机制。Parrot 是运行 Perl 6 代码的引擎,因此它对 Perl 6 编程来说非常重要。作者解释并论证了他们为 Perl 6 所做出的设计选择。Parrot 的内部机制显然不适合编程的初学者学习。熟悉计算机体系结构、编译器内部机制、甚至是 Java? 语言等其他语言,有助于深入理解这些内容。对我来说,第 5 章是令人着迷的,但是我的观点可能会因为我个人的经验而有失偏颇。如果您是那种热衷于多方法分派和迭代器实现的程序员,那么这一章就是为您准备的。如果您不是,那么此时您可能只是会略读一下第 5 章和本书其余的部分,以后再回来重新阅读这些内容,或者是本书以后版本中(保证一年内会得到更新)相应的内容。 第 6 章回答了“说了这么多,有什么可看的吗?”这个古老的问题。介绍了 Parrot 汇编语言。类似于第 5 章,第 6 章假定读者具有计算机体系结构知识,并且至少有一些汇编语言编程的经验。如果没有那些知识和经验,第 6 章可能难以理解。 如果说第 4 章是 Perl 6 的驾驶手册,第 6 章就是引擎部分列表。第 6 章中并没有展示第 4 章中的大部分特性,但是展示了其实现方法。阅读完这一章后,我认识到,Perl 6 的语法和特性比以前好了很多。例如,在第 6 章中对栈和寄存器结构的解释要联系到第 4 章中对变量作用域的解释。 此外,第 6 章有一些关于如何将引擎部分加入到一辆全新汽车的介绍,也就是说语言的选择不仅仅局限于 Perl 6。我发现,有趣的是,用疯狂的计算机科学教授(crazy-computer-science-professor)的思路来想像如何在 Parrot 汇编中表达 Java 或 Lisp 代码。 在第 6 章的有趣内容之后,第 7 章描述了 IMCC(中间码编译器,Intermediate Code Compiler)如何可以简化 Parrot 汇编编程中的大部分工作。IMCC 使事情变得更简单,但它并没有免去理解 Parrot 内部工作原理的负担。IMCC 还是 Parrot 特性的一个极好界面。 第 5 章到第 7 章显然不是容易读懂的,但它们非常有价值。我希望在 Perl 6 Essentials一书的下一版中看到更多的那些话题。 总体来说, Perl 6 Essentials是一本好书。我建议那些初级的程序员等待更容易理解的关于 Perl 6 的书的面世,因为这本书将计算机科学与技术多年的发展过程浓缩到了 200 页之中。对中级的和高级的 Perl 程序员来说, Perl 6 Essentials是指引您走向 Perl 未来的必备路线图。 Perl Cookbook,第二版 Perl Cookbook第二版中关于 Unicode 的资料是对本书第一版的可喜的补充,而且要比 Programming Perl,第三版中整个 Unicode 一章更为完整和实用。毫无疑问,这是因为在编写旧版本的时候,很多 Perl 5 Unicode 特性的时机还没有成熟。 Perl Cookbook中对 Unicode 的复盖贯穿于全书始终,其中第 1 章(字符串)和第 8 章(文件内容)中涉及到了最新的 Unicode 内容。 尽管有个别的地方被更新或重写,但大部分章节的内容几乎没有改变。换句话说,先前版本中对问题话题的组织并没有随时间而改变,但其答案发生了变化。 第 14 章讨论了数据库的访问,已经被扩展,但没有涉及 第 18 章涵盖了在第一版中可以找到的 Internet 服务,有了关于邮件附件、LDAP、XML-RPC 和 SOAP 访问的新资料。这些都是很好的技术,它们为在上个世纪(20 世纪)就已经根深蒂固的一章带来了一丝新鲜空气。不幸的是,没有提及 SSH 自动操作,也没有提及 IMAP 协议。 第 20 章是关于 Web 自动操作,包含了大量的新资料。无论是客户端还是服务器端,对 Web 程序员来说它都是一个很好的参考资料。 第 21 章( 现在吹毛求疵地提出一些问题,尽管在这部 900 多页的书中几乎没有问题。 我希望第 3 章直接在介绍中提到 POSIX 我感到惊奇的是,竟然没有提到方法 4.16 中的 Schwartzian 转换的名称,尽管它很容易识别。 我应该指出,方法 5.9,也就是“倒置一个哈希表”,也可以用我的 如果方法标识出支持它们的 Perl 版本,将是很好的。还有很多人安装的是 5.005 和 5.6.1 版本的 Perl,出于常见的原因,这些不会很快得到升级。 第 15 章应该提及 CPAN 的 读完 Perl Cookbook的第二版后,我感觉已经为应对当今环境中的 Perl 编程的挑战作好了准备。第一版由于印刷以后出现的技术而导致现在看来有些地方存在不足,第二版再次为所有 Perl 程序员(从初学者到高级程序员)提供了一个可靠的基础。我向大家强烈推荐 Perl Cookbook,甚至是那些已经拥有第一版的人。 Perl Template Toolkit 这本 TT 书籍的规划类似于经典的“Learning Perl”的规划,首先是关于基本概念的一个简单介绍性章节,接下来是较长的解释性章节。第 1 章到第 6 章遵循这一策略;TT 语言、指令、过滤器和插件都解释得很详细,令人满意。即使我多年来就是一个 TT 用户,我还是发现几乎在每一页上都会找到新的资料,不管是在函数中还是在给出的例子中。阅读 TT 的在线文档是实用的,但是,对于学习如何全面彻底地使用 TT,TT 书籍显然是更好的途径。 第 1 章到第 6 章适合初学者,也同样适合高级 Perl 程序员。TT 语言是独特的,但是任何人在阅读完 TT 书后,都将发现它很简单。 不过,第 7 章到第 12 章就高级得多了。至少,读者应该熟悉 Perl 面向对象编程(OOP)和 HTML 编程。第 9 章(关于数据库访问)和第 10 章(关于 XML)更容易理解,但是分别具备一些实际的使用数据库和 XML 的经验会非常有帮助。这不是 TT 书籍作者的过错;数据库和 XML 是深深植根于计算机科学与工程中的复杂话题。 在第 3 章中讨论的“视图(view)”特性让我感到兴奋,但是让我疑惑的是为什么如此有限。要为哈希表、数组和标量都提供视图多好呀,为什么不呢?视图的声明应该基于类名,所以类“ 这本 TT 书籍的作者非常尽力地去保持 TT 只是一个描述工具,没有执行逻辑。实际上,有些情况下(比如 总体来说,这本 TT 书籍详细地、令人着迷地介绍了 Perl Template Toolkit。所有对 Web 开发感兴趣的人,不管用不用 回顾 Perl Cookbook 第二版对所有的 Perl 程序员来说都是一个极好的参考资料。我无保留地推荐它,而且我保证多年内它都是实用的。 Perl Template Toolkit是一本迷人的书,非常详尽地介绍了 Template Toolkit。我向所有的 Perl 程序员推荐它,我想初学者程序员将会发现前 6 章更有用。与使用源代码版本控制器及吃巧克力一样,使用模板进行编程很容易上瘾。要是上钩了可不要怪我!
|
请发表评论