【51CTO独家专访】钟胜辉,也就是国内PHP领域广为人知的淡淡风。钟胜辉是PHPcms的创始人,之后他第二次创业,带来了令人期待已久的CMSTOP。近日,51CTO记者阿菜通过电子邮件联系到了钟胜辉先生,请他谈一谈PHP发展的现状和前景。以下是交流信件原文:
51CTO记者:从Web开发的历史看来,PHP、Python和Ruby几乎是同时出现的,都是十分有特点的、优秀的开源语言,但PHP却获得了比Python和Ruby多得多的关注度(PHP在本月的TIOBE排行榜上已经排行第三,超过C++了)。您认为这和PHP旨在网站开发的立足点与PHP语言本身的特点有很大关系么,还是有什么其他的因素影响?
钟胜辉:三门语言当中,无疑php是最流行的,而Python和Ruby在最近几年也有着不错的发展趋势。我个人认为,Ruby的流行更多地源于Ruby on Rails,这个框架的流行程度甚至超过了Ruby语言本身,也引发了其它语言平台上对框架的研究。而Python在近来的被关注度和发展速度要超过Ruby,被一些喜欢创新的项目采用,这可能要更多地归功于google。
这三种语言都是相当优秀的脚本语言,为什么PHP能大行其道,杀入排行榜的三甲呢?从表面上来看,这是就业环境使然。越来越多的新公司或者新项目使用PHP,这使得PHP相关社区越来越活跃,而这又反过来影响到很多项目或公司的选择,形成一个良性的循环。就我目前了解到的情况,PHP是国内大部分web项目的首选,而且有很多公司从其它语言(如ASP,JAVA)转到了PHP。合适的就是最好的,PHP的快速,开发成本低,周期短,后期维护费用低,开源产品丰富(这点可以影响到很多项目的决策),这些都是另外两种语言无法比拟的。另外,在很多大项目中,Python更多地是做为一种“粘合剂语言”出现,似乎正在走向与PHP不同的发展方向,让我们拭目以待。
51CTO记者:PHP开发框架的盛行是由RoR的火爆所引起的,而PHP框架的发展也从模仿Rails到逐渐有了自己的风格。不过仍然有很多入行较早的PHP开发者至今仍认为PHP这种快捷的语言不需要框架,甚至认为只要有优秀的架构,框架根本没必要。您认为PHP框架对PHP而言是必要的么?您对于PHP开发工具的现状满意么?
钟胜辉:这是一个见仁见智的问题,我个人认为,一个优秀的框架能在很大程度上提高工作效率,尤其是对大中型项目。当然如果对项目有足够的把控能力,框架也并非是必须的,毕竟PHP的框架跟ROR的情况有所不同,多而混乱,而学习一个框架是需要时间的。像你的问题中提到的,很多老的PHP程序员对框架不屑一顾,认为自己对项目有足够的把控能力,不需要框架这么累赘的东西,然而从长远来看,一个优秀的框架可以延长一个项目的寿命,降低维护和二次开发的成本。我们目前正在开发中的CMSTOP,是一个产品型项目,在这样的项目中,没有一个优秀的框架是很难想象的。在研究对比了目前主流的PHP框架之后,我们发现没有哪个框架能完全适合一个CMS的项目,于是我们决定自己开发一个框架。目前这个框架极大地提高了我们的工作效率,而且,我们会在适当的时候将这个框架开源。
51CTO记者:PHP的面向对象设计的并不是很好。很多在Java一类语言里面可以很好应用的面向对象写法在PHP里面实现起来却很繁琐。您认为面向对象对于PHP这样的Web开发语言来说重要么?PHP的面向对象是否还能够改进呢?
钟胜辉:PHP的面向对象属于历史遗留问题,而且,说其不好,慢慢也会成为历史问题。从PHP5相对PHP4的进步,我们有理由去期待PHP6给我们带来更多的惊喜。不论对什么样的语言,面向对象更多的是一种思考问题的方法,没有必要为了面向对象而去面向对象。PHP最初的面向对象,可以简单地看作是函数的升级,曾经被很多其它语言的开发者取笑,但PHP5的面向对象已经足以满足大部分WEB项目了。一门语言要想生存下去,就得去适应技术发展的潮流,并不断做出调整,在这方面,PHP的团队充满了活力。
51CTO记者:PHP网站的安全是个很常见的问题,有关PHP网站漏洞的消息是很多的。您认为这其中的原因和PHP语言本身的特点有关么(相对于如PHP网站数量、PHP代码编写习惯等其他因素)?PHP的安全有改善的空间么?
钟胜辉:网站的安全是一个比较系统的问题,它跟服务器安全以及代码的质量是直接相关的,我们并不能说PHP这门语言不安全。目前PHP有很多优秀的开源产品,例如discuz,phpcms等,即使在开源的情况下,这些产品也保证了足够的安全性。PHP的门槛很低,一两周的时间就可以入门,而这些“快速入门”的程序员,往往容易忽略代码安全问题。安全问题的改善,取决于越来越多的PHP程序员对这个问题的重视程度。
51CTO记者:现在在不少大型项目中,PHP完全充当了脚本的功能,而逻辑性比较强的业务处理则由另一门功能丰富的语言(例如Java)来实现。您认为这样在复杂度、开发快捷度、开发周期以及成本等方面有着怎样的影响?
钟胜辉:这种情况确实存在,但我认为之所以出现这种情况,并不是因为PHP“做不了”,而是很多项目负责人对PHP的偏见以及对JAVA等语言的迷信造成了这种现状。当然,我们不能否认,有很多问题确实是PHP做不了的,做为一种解释型的脚本语言,PHP本身就不适合做大型的数据运算,它也不可能成为一门“万能语言”。在大型项目中,多种语言配合工作是一件很正常的事情,例如说,PHP负责收集数据,提供界面,C负责处理分析数据,Python来做粘剂。各种语言各司其职,协同合作,只是分工的不同而没有高低贵之分,就像如果用C来做数据展示一样会很痛苦。我不认为PHP往复杂计算方面发展是一件好事,而且我相信PHP的开发团队也会把握好这个度。没有哪种语言可以做到“万能”,java有这样的野心,但我们可以看到java现在的境遇似乎并不如PHP那么红火,如果PHP也追求“万能”,那将是一场灾难。
【编辑推荐】