时至今日,PHP的性能已经今非昔比,PHP7的性能几乎是PHP5的10倍,这得益于底层解释器的升级以及对旧语法和旧库的废弃。但是,仍有人对PHP的性能不满,并且想要引入更多其他语言的特性来满足它们的需求。我只想说,你用扩展来实现,我无所谓;但是你说要改底层实现,对不起,我接受不了。PHP本身就是一个糅合了各种语言特性的脚本语言,它花了很多时间弃粗取精,而现在你却想把它们都拿回来,这确定不是开倒车吗?虽然PHP语法逐渐向Java靠拢,但这不代表它将会成为下一个Java,因为它本身的特性就不一样。
首先,PHP最显著的特征就是弱类型。弱类型意味着不需要严格区分各种数据类型,某些程度上灵活性高,但给解释器和看代码的人会带来压力。我明白弱类型并不是一个特别好的设计,但是它给足了灵活性,我们既可以按强类型的设计来写代码,也可以充分利用弱类型的特性来进行某些特殊的数据类型转换。PHP做得最出色的地方在于JSON数据的编解码,这一直都是我最中意它的地方,而这也是体现PHP弱类型带来好处的地方。当然了,如果不注意数据类型,传给其他强类型语言的时候就会造成一些麻烦,这也是它不太好的地方。我认为,这样的一个语言特性不应该因为开发者水平参差不齐而改掉,一个好的程序员,不在于他用什么编程语言,而在于他拥有好的编程思想。
其他方面的我暂且不提,就这个数据类型,就有人觉得应该做到像Java那么严格。真没有必要,即便是改了,也不能确保解释器效率能够像之前那样提升10倍,而且面对复杂的工程,瓶颈也不在于解释器了。PHP本身的定位就没有你们想的这么广阔,不要强求它成为一个全能的编程语言。假如PHP真的做成Java那样子,首先它也竞争不过Java,其次它也会失去一大批追随者——由于语言特性的大改,很多人放弃它而转入其他灵活的编程语言。编程语言制造出来是为了做项目的,而不是玩语法游戏的,要清楚地认识到这点。
PHP7的改动还是挺正常的,希望还是不要真的飘了,认清定位就好。PHP8也应该快要正式发布了,如果能够无缝升级,我会很乐意去学。