当前位置:  开发笔记 > 编程语言 > 正文

我应该在这个项目中使用Perl或PHP或其他东西吗?

如何解决《我应该在这个项目中使用Perl或PHP或其他东西吗?》经验,为你挑选了4个好方法。

我即将开始一个需要的项目:

处理XML

重写文本解析非xml文档

将数据从xml和非xml文档插入关系数据库.

使用网页从db向用户显示已处理的数据.

必须很好地处理负载.

该网站将受到短期非常重的页面(每分钟300多名访客,几分钟),但大部分时间将闲置(每分钟十几个访客).

我在Java和Web服务方面有很强的背景,但我不想在这个项目中使用Java,因为我想让我的技能多样化.

我不是在找你认为哪种语言最好的意见.使用这些语言有哪些优点和缺点,您可能会从自己的经历中认识到这些?



1> Quentin..:

我会选择Perl.所述的libxml系列模块给出了各种通过快速的C解析器备份接口(DOM,XPath中,XSLT,等等).

Perl对切片和切块文本的正则表达式支持几乎是任何其他语言所无法比拟的.如果你希望进行大量的任意文本处理,并且至少对正则表达式有点熟悉,那么你会感谢自己.

Perl还有一系列优秀的Web框架,包括简单但功能强大的Mojolicious框架和全面的Catalyst框架.总有古老而稳定的CGI库,但Mojolicious或Catalyst可能是更好的选择.


如果您还不知道这一点,那就明确了:无论您使用Perl还是PHP或其他东西,除非您的服务器具有无限的内存,否则永远不要使用DOM XML解析器来处理大型XML文档:)

2> Gordon..:

因为我是一个PHP人,所以我可以提供有关PHP的内容

由于它没有共享架构,PHP可以很好地扩展

PHP对各种XML库提供本机支持

PHP本身支持许多RDBMS

PHP本身支持缓存

PHP具有对Web服务的本机支持

PHP是一个模板引擎

因此,PHP满足了您的问题对语言的要求.

但是,Perl,Python或Ruby甚至ServerSide JavaScript(...)都应该能够满足您的要求.PHP有它的怪癖,其他语言也是如此.如果你是一个Java Guy,你可能会喜欢Ruby的语法,但话说回来,只有你可以决定.


@Sinan - 我必须承认,虽然我一般认为PHP与Perl狂热主义一样令人反感,但事实上这个答案对我来说非常无害,因为明确的"其他语言都应该能够满足你的要求"从一开始.虽然这使得它对OP的问题没那么有用,因为它实际上没有提供选择其中一个的任何边际理由:)

3> Sinan Ünür..:

Perl可以很好地扩展

Perl支持各种XML库

Perl通过DBI 支持大量RDBM

Perl支持缓存

Perl支持Web服务,如SOAP,XML-RPC等.

Perl有很多模板引擎

因此,列表中的每个项目都可以使用两种语言完成.考虑到自己的优点和缺点,你应该选择一个你认为最有效的方法.



4> Eric Redon..:

这确实是一个非常主观的问题.我完全可以想到,在2010年,Perl或PHP(甚至Python或Ruby)可以同样为您提供此类项目.差异不是来自语言本身,而是来自工具,最佳实践和社区.

在这些语言中,我最熟悉Perl,所以让我试着从这个角度提供一个关于你需求的答案.

文本和XML解析: Perl非常强大地支持甚至很长文件的文本解析(只要你不吝啬),并允许强大,清晰和简单的正则表达式编程.它具有明显的内置Unicode支持和标准的转码编码工具(Encode模块),在用户界面方面非常方便.它还以标准,快速且维护良好的模块形式直接绑定libxml2:XML :: LibXML.

关系数据库支持:除了标准的数据库接口(DBI),它可以直接使用SQL查询一些的DBMS,有很多的框架,以使DB-到Webdoc管理更加容易,同时仍然强大.最着名的可能是催化剂.

HTML文档演示: Mason是我最喜欢的Web应用程序交付引擎.与Perl的集成非常优雅,但它不会牺牲模板模式或语言功能.

重载处理:解决负载问题的解决方案很多.Perl为memcached提供绑定:Cache :: Memcached(用Perl编写)和Cache :: Memcached :: Fast(用C编写).

根据您的语法和一般语言哲学的个人喜好进行平衡,您很快就可以加入Enlightened Perl社区:)

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有