我即将开始一个需要的项目:
处理XML
重写文本解析非xml文档
将数据从xml和非xml文档插入关系数据库.
使用网页从db向用户显示已处理的数据.
必须很好地处理负载.
该网站将受到短期非常重的页面(每分钟300多名访客,几分钟),但大部分时间将闲置(每分钟十几个访客).
我在Java和Web服务方面有很强的背景,但我不想在这个项目中使用Java,因为我想让我的技能多样化.
我不是在找你认为哪种语言最好的意见.使用这些语言有哪些优点和缺点,您可能会从自己的经历中认识到这些?
我会选择Perl.所述的libxml系列模块给出了各种通过快速的C解析器备份接口(DOM,XPath中,XSLT,等等).
Perl对切片和切块文本的正则表达式支持几乎是任何其他语言所无法比拟的.如果你希望进行大量的任意文本处理,并且至少对正则表达式有点熟悉,那么你会感谢自己.
Perl还有一系列优秀的Web框架,包括简单但功能强大的Mojolicious框架和全面的Catalyst框架.总有古老而稳定的CGI库,但Mojolicious或Catalyst可能是更好的选择.
因为我是一个PHP人,所以我可以提供有关PHP的内容
由于它没有共享架构,PHP可以很好地扩展
PHP对各种XML库提供本机支持
PHP本身支持许多RDBMS
PHP本身支持缓存
PHP具有对Web服务的本机支持
PHP是一个模板引擎
因此,PHP满足了您的问题对语言的要求.
但是,Perl,Python或Ruby甚至ServerSide JavaScript(...)都应该能够满足您的要求.PHP有它的怪癖,其他语言也是如此.如果你是一个Java Guy,你可能会喜欢Ruby的语法,但话说回来,只有你可以决定.
Perl可以很好地扩展
Perl支持各种XML库
Perl通过DBI 支持大量RDBM
Perl支持缓存
Perl支持Web服务,如SOAP,XML-RPC等.
Perl有很多模板引擎
因此,列表中的每个项目都可以使用两种语言完成.考虑到自己的优点和缺点,你应该选择一个你认为最有效的方法.
这确实是一个非常主观的问题.我完全可以想到,在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社区:)