hyff 话唠
  • 1484发帖数
  • 183主题数
  • 0关注数
  • 1粉丝
开启左侧

我为什么不看好 PHP?

[复制链接]
hyff 发表于 2019-10-14 23:14:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

                               
登录/注册后可看大图


讲道理来说对 php 还是蛮有感情的,从第一次看到 HHVM,swoole , PHP7,再到后来 laravel reactphp php-pm 等项目,php 社区有着源源不断的潜力,和一群热爱开发的人来给它续命。
糟心的设计

  • 性能问题
  • PHP 设计之初是没有过多考虑性能问题,同步阻塞模型非常适合一般思维,多进程也一定解决了脚本语言长时间跑会不稳定的问题。但是这样做的后果就是多进程十分占用 CPU 资源,进程需要等数据库操作。而且 PHP 本身不常驻内存,像 laravel 这样重量级框架,每次请求需要从磁盘加载代码到内存,再执行,响应速度可想而知。 这就好比你开了一家饭馆,厨师炒菜慢,为了简化管理,你选择增加 100 个服务员,给顾客 1 对 1 服务。而异步非阻塞模型,一个服务员通过排号点餐叫号,就实现了你上万个服务员要做的事情。
  • 环境安装问题
  • 不得不吐槽,phpize + perl + composer 三连是 php 的一大败笔,当我们安装一个拓展时,最麻烦的情况是系统安装对应软件,phpize 编译,然后添加到 php.ini ,重启 php。而对于 golang/Rust/Node.js/Python,比如 node.js 你只需要 npm install 就能安装好所有,甚至包含了拓展和各种包,它会自动编译。所以,对于很多 php 开发者来说,拓展等环境要求耗费了很多无用功。 你可能会说,我用 phpstudy , laradock … 但是 Python golang node.js 这种,一个 apt install xxx ( yum install xxx )就解决了。 你可能会说,php 也可以用 apt 安装,但是对不起,你还需要安装它的七大姨八大姑,php-xm,php-json,php-xxxx 等十几个软件包。
生态方面

  • 大司用的 php 并不是你用的 php
  • 事实上,用 php 的大公司不算多,Facebook 总的来说,我更愿意称他在用 PHP 的风格生成 C++ 代码。微博更是有着无数 C 拓展,yaf 本身也是一个 C 拓展,其他一众公司基本上是 CI 这类框架为主,做视图层渲染,并且大都常驻内存。 真正能用到正宗 PHP 的基本上是没有。
  • 软件生态
  • 整体来说,php 生态还算不错,Laravel 生态也值得一提。 相对来说,一些新兴的 swoole 框架就没那么火了。PHP7 发布有许多年了,虽然支持类型定义,但是大部分 PHP 仓库都没有支持,相比之下,JavaScript 的生态对 Typescript 的支持要火热很多,大部分仓库都支持。
  • 开发人员问题
  • PHP 目前的开发生态是一个恶性循环,入门级开发者偏多,导致 PHP 开发组不敢做太大的变动,基于 php-cli 的框架的寥寥无几,使用 PHP7 的开发者不算很多,那类型定义就更无从谈起了。对于新鲜事物的接受程度如此。
  • 企业生态
  • 不得不说的一个问题是,如果你学 PHP,而且对 C 和 swoole 不懂的话,那么你有很大的可能会入职外包公司。而 swoole 这些对于一般公司来说,招人成本太高,还不如直接 golang node.js 划算。
  • 未来的前景
  • 开发效率将不再是优势
  • laravel 的火热,决定了 PHP 未来势必走上复杂化这条路,越来越复杂,越来越适合写大项目,但本身性能和设计问题限制了它。而 spring boot 等一众其他语言框架,将会越来越简单,像 node.js 你只需要 npm install , npm start 就能启动项目,不需要管拓展,不需要配置 nginx 配置伪静态等等…
  • 语言本身的限制太多
  • PHP 本身提供了极为匮乏的系统层函数,你无法简单的操作和管理内存,做定时任务,做队列,做开启一个 websocket 端口,甚至处理串口通信,等等,将来这些操作将极为普遍,而 php-fpm 本身搞这些很麻烦。你只能通过拓展,通过 C 和 C++。
  • 应用场景
  • PHP 除了它所宣称的开发快,本身没有什么特色,不论是性能(相对于 JS 和 JAVA ),甚至没有 JIT,当然,更不适合做 IO 密集型应用,或者像 JS 在浏览器,JAVA 在企业级应用,.NET 在 windows,有着很强的门槛或者语言特色。 可预见的事实是,不管未来 微服务,区块链,AI,VR,AR 还是会出来 BR CR DR … 都不会有 PHP 一席之地。这是一个很残酷的事实,而 PHP 如果做出重大改变,就意味着失去原来的生态和开发者。
总结
我无心挑起语言之争,只是想告诉很多 PHPer :
1. 你们可能在今后中遇到的很多问题,在其他语言中都十分好解决。比如操作 excel 文件 容易内存泄露,比如 做 websocket,比如做定时任务。
2. 语言是死的,人是活的,不管 C++ 也好,java 也罢,有很多值得程序员学习的东西,对个人是提高。
3. 对于 PHP 初学者来说,如果你十分讨厌外包的话,我建议你慎重考虑下,要不要继续学习 PHP。
4. 鸟哥和韩大 不推崇 laravel 的原因也是因为它本身太庞大,不适合 php-fpm。 并且从架构角度来说,CI 框架更好优化,把 IO 操作让给更适合的程序或者语言。
总的来说,PHP 现有的项目一大堆,做快速开发还是可以,并且还有很多历史遗留的项目,在很长时间内不会死,甚至活得很好,你也不用担心事业,但从长远来看它并没有前途。
------摘自“开源中国”

精彩评论20

gyzgdq 发表于 2019-10-14 23:15:07 | 显示全部楼层
php是世界上最好的编程语言
刘伟 发表于 2019-10-14 23:15:07 | 显示全部楼层
我也是一个半phper,目前的确php薪资较低,没有异步框架情况下,io的确是php劣势,但是cli的workerman性能极强,强到什么样?强到你需要考虑带宽能不能负荷,至于swoole,我只能说,文档太少,协程的开发模式的确很吸引,问题是我们程序员需要了解的是底层根源的实现方式,而不是像用jq那样熟悉方法和参数的调用。至于ai,php-ml或许是第一部,虽然实现的有点简单,但是用于文字识别的工具已经做出来了。
刘伟 发表于 2019-10-14 23:15:07 | 显示全部楼层
在这样一个快节奏的社会,快速开发就是王牌,同样的项目,用PHP比用JAVA等其他语言节省一半时间。抢先进入市场。等你JAVA做好都凉凉了。所以现在都是用PHP开发第一版,等市场打开,哟。用户量上来,感觉出现瓶颈的时候才去使用其他语言进行迭代。但是大部分在第一版就倒闭了[笑哭]
立森影像LESU 发表于 2019-10-14 23:15:07 | 显示全部楼层
“PHP 目前的开发生态是一个恶性循环,入门级开发者偏多,导致 PHP 开发组不敢做太大的变动,基于 php-cli 的框架的寥寥无几,使用 PHP7 的开发者不算很多,那类型定义就更无从谈起了。对于新鲜事物的接受程度如此。”这个深有体会,感觉phper好多初学者,这些人也阻碍了PHP发展
A随行付POS机_赵 发表于 2019-10-14 23:15:07 | 显示全部楼层
1.长远来看,php没前途?,软件的不是都说30岁过后就要转型么?那还谈什么长远,现在好用就行,2,你跟我说国外大企业用php跟我用的不一样,但是事实是。国内都是中小型公司居多,而且技术更新不会很靠前,人家都是讲求效率的,各个语言既然存在,即有它的生存之道
PF3686 发表于 2019-10-14 23:15:07 | 显示全部楼层
我不听我不听,PHP是世界上最好的语言!
刘伟 发表于 2019-10-14 23:15:07 | 显示全部楼层
你不知道JAVA要开始收费了吗
立森影像LESU 发表于 2019-10-14 23:15:07 | 显示全部楼层
我只可以说,PHP跟Java我都会
经典 发表于 2019-10-14 23:15:07 | 显示全部楼层
平台或许不行,流行程度是用人数来凑的,就因为新手容易上手,新人才多。哪有那么多公司都用到你说的那个级别,就中小企业用用服务器负载都够用了。虽然缺点很多,但是在中小企业提现不出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
在线客服邮箱
wxcy#wkgb.net

邮箱地址#换为@

Powered by 创意电子 ©2018-现在 专注资源实战分享源码下载站联盟商城