今日消息,不久前从 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++?> <?php 'Hello, world!'; ?>
此外,他们会找到将整个命名空间标记为 P++ 的方法,因此框架不必将每个单独的文件明确标记为 P++。
那作为开发者的我们,是否需要在 PHP 和 P++ 之间做出选择?前文已提到,由于 PHP 和 P++ 会同时安装,所以从这个层面来说,开发者不存在该选 PHP 还是 P++ 的犹豫。