关于php的发展前景
-
php7 宣称速度比php5.6快两倍,宣称要打破一切旧规则
-
2015年,php 7.0发布
-
2016年,php 7.1发布
-
2017年,php 7.2发布
-
2018年,php 7.3发布
-
2019年,php 7.4即将发布
-
并且php8已经在讨论中,并已确定支持JIT,应该会在2020年发布
-
各版本cpu性能测试,php8比php5.0时快了40倍,比php5.6快了9倍,http://www.laruence.com/2016/12/18/3137.html
看的出来php这几年很活跃,php确实做出了很大的改变,性能得到了很大提升,同时也在向弱类型和解释型动刀,弱
类型和解释型都是php之前的优点,好用,简单,快速开发,然而过去的有点不一定适合未来,php的团队也注意到了这一
点,不断进行类型规范和运算符规范的调整,比如支持类型声明,支持运算符的类型异常抛出,以及数组和foreach做出的
改变。这所有的一切都是对php的一种修复,过去php太杂耍了,隐式类型自动转换,看着很厉害,用着很舒服,实际上隐
藏了大量的未知BUG,可能看起来逻辑毫无问题的代码,莫名其妙的不通过。弱类型在计算时必然要进行类型的判断和转换,由于php的数组以及字符串包装的层次足够深,必然浪费性能。
这也是为什么php开发速度快,号称世界上最好的语言,却只能蜷缩在web开发这一角,这是php的病,得治。随着php7.0
~ 7.4的改进, 这些问题正在逐渐解决,然而路漫漫其修远兮!
- php 7.0
PHP 7.0.0 Alpha 1 [1] 使用新版的ZendEngine引擎,带来了许多新的特性,以下是不完全列表:
性能提升:PHP7比PHP5.6性能提升了两倍。 Improved performance: PHP 7 is up to twice as fast as PHP 5.6
全面一致的64位支持。 Consistent 64-bit support
以前的许多致命错误,现在改成抛出异常。Many fatal errors are now Exceptions
移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。Removal of old and unsupported SAPIs and extensions
新增了空接合操作符。The null coalescing operator (??)
新增加了结合比较运算符。Combined comparison Operator (<=>)
新增加了函数的返回类型声明。Return Type Declarations
新增加了标量类型声明。Scalar Type Declarations
新增加匿名类。Anonymous Classes
- php 7.4 性特性
1、php7.4 支持了预加载。现在传统的 PHP 框架或者项目,都是有一次请求就加载和重新编译一次文件的。预加载的实现
使得我们可以直接将 PHP 文件加载到内存中,并一次来永驻内存来应对后续的请求。(是不是看着这段话很熟悉)
不过预加载也会带来一点机器内存要求和一些损耗,你还需要注意的是,每次在更新完 PHP 文件之后,你需要重启服务才可以使得新的 PHP 文件生效。
2、属性类型限定
在定义类属性的时候,你可以限定属性的类型 string boolean 或者是一个类的实例:
class GeiXue
{
public string $name;
public Foo $foo;
}
3、类型限定的改进
4、外部函数接口
外部函数接口(Foreign Function Interface)总的来说就是允许你调用 C 代码,也就是说,最好的应用场景可能就是:你以后写 PHP 的扩展就可直接用 PHP 来写了!
不过需要注意的是:这目前来说还是比较复杂的,你最好还是有点 C 语言的基础。
5、null合并符的改进
6、PEAR不再默认开启,使用compose替换
7、自定义对象序列化
在 PHP 7.4 的时候,增加了 __serialize 和 __unserialize 这两个魔术方法,你可以用来自定义对象的序列化。
- php8
继php对于变量类型的加强之后,又支持了JIT, 引入JIT后,会扩大PHP的使用范围,使得PHP成为一种真正的通用型语言,而不仅仅是个Web开发语言,尽管目前咋Web开发上面PHP做的确实是非常成功。
对富CPU密集型计算方面的改善,可以在机器学习,3D渲染,2D(图形)渲染和数据分析方面提高适用范围。
从此php将不再蜷缩在web开发的一角,将有机会和java、python展开全面竞争。
其它的改进方案都还在讨论中,希望php8继续打破过去,浴火重生,成为真正的最好的语言!
- p++ 的争论
PHP的核心开发者内部,关于是否由弱类型动态向强类型静态语言转变发生重大分歧 ,想了解详情的可以点击下面的连接
https://externals.io/message/106503
https://externals.io/message/106453
一部分认为php引入的变量类型声明是个错误,就应该保持PHP的本色,包括引入者本人,
另一部分就是像我这样希望PHP进行改变,向强类型静态语言转变。
正如zeev说的,双方没有谁对谁错,只不过前者考虑的是php的整个传承和社区,以及php的特色
而我认为,5G已经到来,物联网普及化和AI的到来只是时间问题,现在的应用动辄上亿用户,大数据分析处理的需求即将白热化,
将来PHP何去何从?守着web领域一块孤岛?守得住吗?以后的web仅仅是IO密集型吗?
计算密集型不一定,因为有分布式,各种流数据库,但数据密集型是必然的。
php即使对数据密集型有了很好的支持,那也是守住疆土而已,谁不想涿鹿中原呢。
也许PHP搭上大数据这班车,这一切就不一样。
上个周听说zeev 想要开发php方言p++,然后一轮投票后以0比50的结果被否决,最后zeev自己也投了反对票(2019-08-27) https://wiki.php.net/rfc/p-plus-plus
最近唱衰PHP的人越来越多,其实PHP作为web语言,本身并没有太大毛病,有毛病的是国内的PHP从业者。
大多是培训出来的,培训出来也没啥,毕竟大学一般没有PHP专业,只要愿意学,都可以进步。
但是培训出来随便找个工作,也不深入学习,就天天糊弄,最后啥也不懂,搞得其他语言的开发者对PHPer有怨气,领导不相信PHPer也是必然。
我身边这样的例子太多了,说是工作三年,水平比我刚大学毕业时还低
整整一年了,单点登录还没对接上,天天跟做单点登录的部门吵架。(给部门拉仇恨)
不会用kakfa,说php就不支持kafka。(给php招黑)
接收参数后,先查询sql,再验证参数是否为空。( 真的,我都不敢想,还能有这种骚操作)
真不怪别人黑PHP,这样的人,我敢说要占PHPer的相当大一部分,
当然我举得这个例子有点极端,
中庸点的就是,会写写增删改查,对对接口,新东西给点时间也能凑合用,原理一概不知。
整个PHP行业现在就是这么个情景,如果我是老板,也会对php失望。
知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。
所谓诚其意者,毋自欺也。