导读:2020年11月26日,PHP的又一个里程碑8.0 正式发布。在国外媒体开发者杂志上,采访了四位技术专家,来看看他们怎么看PHP8新技术的各种观点。

 

先了解一下访谈嘉宾:

 

Susan:TYPO3 Scrum Master,开发者和CTO

Vitalij Mik:PHP开发工程师

Brent Roose:比利时Sptie公司PHP工程师,喜欢撰写PHP和编程的相关文章

Jeremy Pastouret:《Phalcon框架开发》的作者,同时也是les-enovateurs.com的编辑。Jeremy同时还是Phalcon核心团队的一员,致力于开源项目。同时他还创立了Unlock MyData,还创立了Garwen平台。

 

以下为访谈正文:

 

开发者杂志:PHP 8已经发布,您如何评价这一新版本?对于PHP社区来说,这是不是个重大里程碑,还是只是一个不起眼的,需要不断发展的一个阶段?

 

Vitalij Mik:我认为这是一个非凡的里程碑。在PHP 7.4中有许多出色的创新,版本7.4几乎是完美的。但是,我想看看这门语言如何朝着统一的方向和严格的方向发展。

 

Brent Roose:PHP 7到8的区别不像PHP 5那么大。在我看来,PHP 8将使该语言更加成熟,并且由于这是一个主版本,我们终于可以做一些突破实施更改了。

 

Susanne Moog:我认为PHP 8是PHP社区的一个重要里程碑。除了JIT编译器之外,还有许多其它功能值得一看:除了属性和联合类型之外,诸如str_starts_with和str_ends_with方法之类的功能演进,或者::类现在也可以在实例上用了,对我来说是一个好消息。总体而言,PHP 8使开发者在代码中更加严格,编写更重要的内容。

 

JörgMoldenhauer:PHP 8绝对是重要的一步。在我看来,这些创新并不像跳PHP 7那样具有革命性。例如,PHP 7带来了严格的数据输入。

 

JérémyPastouret:总体来说,新版本总是好的。这表明这门语言正在不断增强,变化很重要-即使有时可能有些吓人。我认为从PHP 7起,随着用户数量的增加,PHP团队正不断提高PHP的质量-在短时间内发布很多小版本并进行了有趣的代码迭代。使用PHP 8,主要重点是有了JIT编译器。我迫不及待想与Phalcon框架一起来尝试了。

 

PHP 8.0和新的jIT编译器

 

开发者杂志:新的JIT编译器对您个人有多重要?

 

Mik:我认为JIT编译器不会对我的个人工作发挥重要作用或产生重大影响。我可能只是判断何时用到它。

 

roose:我认为JIT编译器在Web编程之外的领域中可能具备潜力,当我在自己的项目中对其进行尝试时,结果并不太出色。实际上,配置错误的JIT编译器可能会降低Web应用程序的速度。我担心的是,JIT会使长期核心维护更加困难,同时又不会给我感兴趣的领域带来太多价值。我并不是说JIT没有价值,但是从我的角度来看,它仅带来很小的附加值。但是谁知道未来几年用户以及核心领域会发生什么?我的看法很可能是错的。

 

Moog:对于我个人和使用的应用程序来说,JIT编译器起初可能没有多大用处。它带来了CPU负荷且必须进行大量计算程序的改进-这在经典的Web应用程序和CMS中很少见。尽管如此,我相信JIT编译器是向前迈出的一大步,它为PHP开辟了新的领域,而这些领域以前是其它语言所无法使用的。特别是,结合异步解决方案,从我的角度来看,出现了许多新的可能性。并且个人而言:也许在PHP 8中,现在可以用它执行我的Project Euler任务了。

 

Moldenhauer:我很期待JIT编译器,但是我对典型Web应用程序中的性能是否真的会显著提高表示怀疑。PHP 7已经相当快。不过,我认为JIT编译器是重要且必要的优化。

 

Pastouret:我认为JIT编译器将提高性能,而对于开发人员而言无需进行重大更改——也许某些C扩展名将转换为PHP。这样,扩展将更容易由PHP开发人员维护,并且不会因为JIT而损失很多性能。

 

PHP 8.0的新功能

 

开发人员:除了JIT编译器之外,您最感到兴奋的是PHP 8中的哪些新功能?

 

Mik:我期待混合类型和泛型。如果您进行更严格的编程,从一开始就可以减少大量错误,后面静态分析工具也降低很多工作量。

 

rose:命名参数和构造函数属性提升。它们将对我作为程序员的日常生活产生重大影响。

 

Moog:联合类型和属性-这种结合意味着将来我们可以在很大程度上无需加注释分析。今天,人们主要使用Doc-Block指令来记录联合类型,因为我们尚无法“回写”它们,并向ORM或序列化器提供其它指令。我希望是,如果不再需要注释的解析,则可以升级为PHP 8,并且可以得到进一步的性能提升。

 

Moldenhauer:我已经等了很长时间了str_contains以及str_starts_with和str_ends_with函数了。我还发现这些属性很有用,因为我用Symfony框架比较多,并且注释现在更精简了。还有一个小的但不错的创新是参数列表中的结尾逗号。

 

Pastouret:除了JIT编译器之外,我很期待PHP8中的一些新功能,例如:B. match(switch/case的一种更简单的方法)和str_contains(一个很棒的函数,因为我对strpos和strstr感到厌倦,我很乐意使用)。

 

PHP的未来

 

开发人员:除了现在的PHP8,您希望在PHP中看到哪些新变化?

 

Mik:类型化变量,可以提高性能,使用固定类型的编程更安全,但是处理数据类型的速度较慢。正如Rasmus Lerdorf在他关于PHP 25年的演讲中所证实的那样,由于性能原因,目前不应该依赖固定数据类型。但是如果该语言可以在将来的版本中更好地与数据类型配合使用,我们将能够看到应用程序性能的显着提升。

 

Roose:我想在PHP中看到另外两个变化,我认为这会对编写PHP的方式产生重大影响:泛型和编译时静态类型检查器——Rasmus Lerdorf两年前提到过后者。随着静态分析工具的出现以及诸如TypeScript之类的强类型语言的流行,我认为PHP社区正在缓慢但肯定地为这种(选择加入)改变做准备,这可能还要再过几年。

 

Moldenhauer:将来的PHP,我希望看到类型化数组,以便您可以通过集合节省自己的弯路。

 

Pastouret:至于其他更改,我希望下一个PHP版本将挑战流行的编程语言(如JavaScript),并带来更多功能来创建简单的REST API。我还要期待与JS框架(例如React,Vue等)的更多交互。

 

开发人员:谢谢各位的发言!

 

对于PHP8的发布,各位怎么看?欢迎文底留言。

 

 

编译:场长