关于 P++ idea

最近 Zeev Suraski 在 php.net 的 wiki 上提出了一个 idea,是关于打造一个 P++ 的 PHP 项目。

P++,静态化的 PHP。但是,有这么一段话:

This is not a fork. The codebase will be identical, it would be versioned together and developed by the same people. The binaries will be identical - if you’d install PHP, you’d be installing P++ and vice versa. The same binary will be running your PHP, P++ or combined PHP/P++ apps.

意思是 P++ 不是 PHP 的另一个分支,而是共存的。在 PHP 环境下,多了一种选择,让我们可以用静态语言的方式去写代码。

<?p++?>
<?php 'Hello, world!'; ?>

这真是让我虎躯一震,PHP 核心开发者竟然也提出这种方案了。

这个方案究竟如何,为此我还去推特上看了看,除了一些直接叫好的人外,还有一些人的想法是这样的:

  • 静态语言模式的 PHP 并不能给 PHP 带来什么质的飞跃,应该寻思着怎么通过添加功能来获得更多收益,而不是更改语法和语言规则
  • 看起来像是 FB 的 Hack/PHP 在 HHVM 做的事
  • 是否考虑渐进类型
  • 为什么不在目前的严格类型声明模式下去拓展

这不禁让人想问,PHP 目前遇到了什么问题?

目前 PHP 的状况

最近这几年,PHP 确实是处于很尴尬的地位。虽然 PHP 在小公司里仍然占据很高的地位,但是随着业务的不断发展,很多公司不免都走上了 PHP 转 Java、PHP 转 Go 的路子上,亦或是将 PHP 逼向上层业务系统或者边缘化业务中。我的上一家公司,在我走之后,就开始招 Java 进行微服务改造了。

目前国内 PHP 的大梁,被 Swoole 硬生生给拉起来了,Swoole 的出现确实是给 PHP 注入了新的生命。但是呢,当我第一次接触 Swoole 的时候,我就感觉, Swoole 是在向 Go 靠拢,包括后来的 Swoole 4 协程,都有一种 PHP 中的 Go 的意思。而且韩大确实也表达了对 Go 语言的致敬。所以在刚接触 Swoole 时,我的想法是,为何不干脆上 Go 呢,然后我就转向学习 Go 语言,之后一发不可收拾,很大一段时间我都把功夫放在 Go 上了,现在我甚至不想重回 PHP。PHP 能做到的事,Go 都能做;Go 能做到的事,PHP 未必能或者未必能做得那么好。虽然 PHP 简单粗暴的优点相比 Go 还是存在优势,但是这不妨碍我喜欢上用 Go 语言。

PHP 就死了吗?

现在很多 “PHP已死” 的声音,还有“PHP正在走下坡路”之类的。说实话,确实有走下坡路的趋势,但是离死还差得远。

来看看这个统计就知道:
PHP份额(2018.08)

现在还是有 79% 的网站是由 PHP 打造,ASP 都没死,PHP 怎么会死呢,可以说未来10年 PHP 开发者都还能找到工作。不过这个统计不能说明什么,因为历史遗留的站点也包含其中,ASP Web开发者现在确实少见了吧。

不过 PHP 现在必须寻找出路了,PHP 单是性能上的提升,目前来看并没有给 PHP 带来很大的关注度,毕竟这门语言有诸多限制。所以 P++ 的提出,也是体现了 PHP 核心成员也是在给 PHP 寻找出路。

为什么这么尴尬

P++ 方案,在我看来,其实是违背了 PHP 的初心,但是如果保留初心,却没有出路,被其他语言蚕食份额,这正是尴尬点所在。

将 PHP 改造成静态类型语言,并不能改变给 PHP 的应用场景带来什么变化,其实有一大批开发者也是更倾向于动态脚本语言的;让 PHP 同时维持两种模式,又显得有些不三不四,本身 PHP 的一大槽点就是乱,这样反而会更乱。还不如学习 TypeScript 之于 JavaScript, 现在 TypeScript 的呼声还是挺高的。

PHP 本身的定位就是适合快速开发的服务器端编程语言,原本就适合与其它语言搭配,比如 PHP + Java/Go/C++ 进行优势互补就是一种选择方式,只不过这种配合方式是可以被取代的,将 PHP 复杂化似乎不符合其定位。

未来

以上都是个人看法。

作为一个 PHPer,PHP 作为我过去几年的核心开发语言,对 PHP 我还是很有情怀的。个人来看,PHP 的未来,就看接下来的 3~5 年的动作了,不管是 JIT 也好,P++ 也好,还是别的新理念新功能,必须要有让人眼前一亮的东西出现,否则还会继续走下坡路。

让我们一起期待吧。