不久前从Zend公司离职的Zeev Suraski以PHP开发组成员的身份提议要创建PHP方言,暂命名为 P++。
Zeev表示,现有的PHP继续作为动态语言存在,而他提出的PHP方言暂命名为P++,改成更严格的静态语言。他强调道,P++不是PHP的分叉。因为两者的代码库完全相同,维护代码库的开发者也会一样。另外,如果你安装了PHP,那么将安装P++,反之亦然。
总而言之,PHP和P++的绝大部分代码都是相同的。两者在特定差异点方面才会有不同的实现方式——有点类似于PHP 7中的严格类型检查模式(strict_types),只不过P++涉及的范围更广。
Zeev还说到,动态语言和静态语言并无对错之分,这两种思想都是有价值的,然而创建一种同时迎合这两个人群的语言是一项挑战,这也是他提出P++的原因之一。
所以P++会有什么大胆的改进呢?据Zeev介绍,作为PHP的方言,P++会与PHP共存,但不会背负 PHP语言背后的历史包袱。换句话说,这种新方言本质上可能会有更加严格的语法,它也会大胆移除被认为是负赘的元素,例如饱受诟病的短标签(short tags),并添加更复杂的功能—— 尤其是那些非常适合强类型语言的特性,如此一来就无需为PHP引入相同的复杂性。
不过 Zeev表示目前尚不清楚该如何标记一个文件为 P++文件,可能是在文件顶部的添加某种特殊的header,例如:
此外,他们可能会找到将整个名称空间标记为P++的方法,因此框架不必将每个单独的文件明确标记为P++。
那作为开发者的我们,是否需要在PHP和P++之间做出选择?前文已提到,由于PHP和P++会同时安装,所以从这个层面来说,开发者不存在该选PHP还是P++的犹豫。