关于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失望。
关于php的发展前景的更多相关文章
- Web前端发展前景及就业方向
Web前端发展前景及就业方向 HTML5技术已经日趋成熟 Html5是移动互联网前端的主流开发语言,目前还没有一个前端的开发语言能取代 html5的位置,所以说,无论你是做手机网站还是在手机app应用 ...
- SAAS在中国市场的发展前景
发展现状 2008年1-7月软件行业实现收入4199.1亿元,同比增长32.4%.2008年第一季度,业务管理软件市场总量达16.31亿元,同比增长17.8%.面对成本的上升,企业选择了向信息化要效率 ...
- HTML5简介及HTML5的发展前景
WEB技术发展越来越迅速,HTML5的到来更是把WEB技术推向了巅峰,目前HTML5技术已经日趋成熟,不仅在PC段,HTML5更是在移动终端上也有广泛的应用,HTML5的未来十分光明,值得我们去学习. ...
- InSAR在地面沉降监测中的应用及发展前景
合成孔径雷达(Synthetic Aperture Radar,SAR)的概念始于20世纪50年代,是正在发展中的极具潜力的微波遥感技术.SAR具有全天时.全天候的工作能力,能够穿透云层,对某些地物具 ...
- PHP语言在中国的发展前景怎么样?
PHP语言在中国的发展前景怎么样? “在互联网泛滥得今天,想要做好这一行业不是那么容易的,然而,互联网编程语言的发展PHP编程语言的出现也是赢了世界发展的潮流. PHP在我国发展也很快,越来越多的编程 ...
- Progressive web app理念及发展前景
前一段时间微信推出微信小程序进行公测,着实火了一把,博得了大众的眼球,不明真相的吃瓜观众们纷纷围观,所谓的“微信小程序”,通俗的讲就是一种不需要下载安装即可使用的应用程序,脱离于app商店依托于浏览器 ...
- AJAX 概念 优势 发展前景 工作原理 底层技术 状态 缺点 框架
1. 概念 Ajax asynchronous JavaScript and XML , 异步js和xml. 这种解释已经过时了, 现在ajax就是, 允许浏览器和服务器通信, 而无需刷新当前页面的技 ...
- Java发展前景与职业方向解析
大多数人选择Java可能只是因为听说Java前景好.Java比较好找工作.Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么概念的.本文为你解答学J ...
- 码农Coding Peasant(s):一般指从事没有发展前景的软件开发职位
码农Coding Peasant(s):一般指从事没有发展前景的软件开发职位,这种职位只能强化职业者在单方面的技术领域技能,学不到新技术,同时也是部分从事软件开发工作人员的一个自嘲的称号.一个依靠写代 ...
- 乐字节Java学习01-Java语言概述,Java发展前景,Java的特点
从这篇文章开始,小乐准备写一整系列的Java学习文章,一步一步带您进入Java的神奇世界! 这是第一篇:Java语言概述以及Java的发展前景 1.SUN公司介绍 SUN公司全称是Stanford U ...
随机推荐
- 原生vue实现表格的编辑,包括单元格合并,拆分,删除行/列, 添加行/列
先看效果图如下: 代码看这里: https://github.com/YalongYan/vue-table-edit
- (转载)悟透JavaScript
引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...
- Asp.net Core深入一:数据库访问(Mysql为例)
一.数据库概述 1.一个DBContext操纵一个数据库 2.DbContext下的一个DbSet<Model类>关联一个表,但是也可以只写一个表,DbContext可以关联其他的表. 3 ...
- 启动hive,提示ls: 无法访问/home/software/spark-2.0.1-bin-hadoop2.7/lib/spark-assembly-*.jar: 没有那个文件或目录
原因是:spark升级到spark2以后,原有lib目录下的大JAR包被分散成多个小JAR包,原来的spark-assembly-*.jar已经不存在,所以hive没有办法找到这个JAR包. 解决办法 ...
- 【图像处理】H.264流媒体播放
相信有不少人和我一样,希望实现H264格式视频的流媒体播放.但是对于一个新手来说,往往不知道从何入手.利用百度,GOOGLE等搜索资料真是沙里淘金.在琢磨了N周之后,才弄出来了点成果,其中费了很多无用 ...
- VMware中centos虚拟机的安装
几个月前,就下载了VMware,centOS 6 操作系统镜像.苦于对linux的不理解和安装教程的不熟悉,一直未安装成功. 几天前,终于独自安装好了,特此记录一下. 安装其实很简单,之前失败是在于安 ...
- MNFTL: An Efficient Flash Translation Layer for MLC
1. we propose two approaches, namely, concentrated mapping and postponed reclamation, to effective r ...
- 【Python】【demo实验22】【练习实例】【猴子吃桃问题】
原题: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...
- X86逆向3:通过修改关键CALL破解
软件逆向第一课中我们通过爆破的方式直接破解了程序的登录限制,但这一种方式很不合理,因为你只是破解了登录这一处的验证,如果程序内部还有其他的验证那么你需要再次爆破第二个验证,显然这种方式是很烦人的,如果 ...
- 25-Perl CGI编程
1.Perl CGI编程什么是CGICGI 目前由NCSA维护,NCSA定义CGI如下:CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTT ...