InfoQ:从PHP 4到PHP 5的升级不是一个简单的迁移过程。关于那些犹豫是否对即将发布的PHP 6进行投资的公司,你们想说些什么?
Zeev: 实际上我并不同意关于4->5迁移是个非常困难过程的说法。整个过程并没有太多的兼容性破坏问题,而只是相对简单地修补应用程序。事实上想要利用新的功能,多花一点工作是在所难免的,也是意料之中的。在6的版本中我们实际上更多的考虑了兼容性破坏问题——目前这个问题在6中要比在5中更具实质性。这就是我们需要花时间去做的事情。
Rob:我认为PHP5在今后很长一段时间都会存在。即将发布的5.3版本已经尽可能的设计为无痛升级,且增加了原本定在PHP6.0中的几乎全部的功能,只差移除掉一些不用的功能和增加PHP 6.0中的unicode了。我非常渴望看到unicode版本的的PHP,因为它可以让基于PHP的JVM具有更加直接的兼容性,之所以更加直接是因为 JVM原生地采用了unicode来表示字符串,但是我怀疑采纳过程在PHP 5和PHP 6中都将会非常缓慢且持续许多年。
Derick:虽然大家对此总是怀疑,但是我们会努力减少这些问题,通过引入向前兼容的功能来转移到PHP 6。如果大家能够向我们反馈一下自己在当前开发版本中碰到的问题的话,那么可以帮助我们将迁移过程变得更加简单。
InfoQ:在所有的建立的语言中,社区中的人们都推动增加了许多高级的功能。而另一方面PHP一直被认为易学的功能较少。你们认为这种情况需要改变吗?
Zeevv:我绝对不认为它应该改变,因为它是PHP成功的一个关键因素。希伯来语中有句谚语大致这么说“给的越多,拿的越多”,我坚信这句话对于 PHP是适用的,至少在语言结构与语法上如此。通过使用扩展和框架,PHP可以无止境的扩展,在我来看,这些扩展和框架正是PHP非常好的和最有趣的“最后前沿”。我觉得完全使用PHP的大型复杂网站(Facebook,Yahoo,Flickr),完全基于PHP的复杂现有应用(SugarCRM,OpenPro,CMS's),以及公司网站或内部系统依赖于PHP的企业证明了这样一个事实:PHP的功能集已经成熟,并且我们应该朝着这个方向走下去。
Rob:在我们着手为IBM的脚本产品WebSphere sSmash选择脚本语言时,就因为PHP如此广泛的使用面而特别选择了它。我们希望能够让数以百万的PHP程序员们能与企业或者企业软件紧密联系在一起,并且我们希望支持一种能够让新人程序员快速上手的语言。PHP的强大在于它的简单性。一门语言如果不想灭亡的话就一定需要不断的演变。如果PHP 5没有支持面向对象编程的话,肯定会丧失很多吸引力。伴随着PHP 5.3的发布,PHP肯定可以在这些新的特性上潜在的增加其复杂性。我想未来更多的工作是去了解怎样使用它们和在此之上形成的语句。鉴于新版本被采纳的滞后性,因此在大部分主流应用程序转移到使用5.3功能之前,还需要等上若干年,我想在这段时间里PHP程序员将会用大量实例来掌握这些新功能,并将它们用在简化常见的编程任务上。
Derick:不,它不需要改变,这两类开发人员都存在。增加新功能并不一定需要提高入门的门槛。
InfoQ:PHP作为一门语言,在这些年里一直追随优秀的范型而演变,并从一个简单的预处理器演变成了一个强大的OO语言。随着函数式编程风格崭露头角,你们觉得这种这种范式是否会走进未来PHP的世界?
Zeev:不会。PHP仍然支持过程式开发,并且不太可能会消失;我们早在启动PHP(PHP 3)中就增加了OO的支持,虽然它现在跨越到了PHP 5中。lambda大概是最接近函数式范式的东西了,而这正是我们需要完成的。这也映衬了我前面回答的一个问题——我们不想要一个一劳永逸的语言,只是想要一个能够完成工作的简单语言。
Rob:这在一定程度上已经发生了。PHP 5.3中闭包的概念就是来源于函数式编程的世界里。PHP社区混杂了大量经过“经典训练”的计算机科学专业人员以及一些业余自我训练的程序员。看到这个多样的社区中闭包的诞生和常用语句的演化其实是一件很有趣的事。我相信我们最终会完成一套被广泛接受的模式和语句,它可以很优雅的解决web开发中的常见问题,而程序员在使用时都不会想到其实这一切都源于函数式编程。
Derick:我不确定,我认为它不会特别合适。但是如果它对PHP应用程序有意义的话,也许可以找到进入PHP的出路。PHP在集成其他语言中有趣和有用的理念方面一直做得很优秀。
你是怎么认为的呢,选择PHP是企业的明智之举吗?