欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

我为什么不看好PHP?

时间:2022-11-03 07:10:32 | 浏览:3318

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

讲道理来说对 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 现有的项目一大堆,做快速开发还是可以,并且还有很多历史遗留的项目,在很长时间内不会死,甚至活得很好,你也不用担心事业,但从长远来看它并没有前途。

------摘自“开源中国”

相关资讯

PHP学习Thinkphp框架(1)——关于Thinkphp结构目录和数据库操作

Thinkphp:=> 简介:是由上海顶想公司开发的一款,PHP写成的,开源的MVC框架;官网:http://www.thinkphp.cn下载:https://github.com/top-think/framework 环境要求:

国产PHP框架ThinkPHP与SpeedPHP的浅析对比

本文主要简析两个国产的PHP框架ThinkPHP与SpeedPHP。通过学习发现,它俩在很多方面有着相似但又不同的地方:1.单一入口,二者都是单一入口文件。每个app都需要一个入口文件,且只能有一个入口文件。ThinkPHP生而就有多app

《PHP》什么是PHP框架,为什么要用PHP框架

PHP框架是什么?PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。这样不但节省开发时间,有助于建立更稳定的应用,而且减少了重复编码的开发。框架还可以帮助初学者建立更稳定的应用服务,这可以让你花更

「PHP发展史」PHP5.2到PHP5.6中新增的功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护的 PHP5.2, 其余的一半用户在使用 PHP5.3。因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本

PHP开发者的福音,解读PHP异步通信框架Swoole的机制

在中国互联网行业膨胀的12-16年,PHP语言凭借自身易上手,开发周期短的优势,深受各中小企业的喜爱。小编也很荣幸在2009年底进入这一行业,为自己谋生分得一杯羹。但是PHP又先天有它的局限性,导致客户很多需求无法得到满足。大家都知道,P

ZWebPHP基于API的简易PHP开发框架

ZWebPHP 框架设计目的:标准化、体验统一、简单可靠、易于扩展后端PHP框架基于PHP、smarty 构建。基于composer自动加载。完全基于API接口设计,API文档自动生成。权限包含菜单访问权限和API接口访问权限。工具类、数据

PHP组件及框架推荐系列:PHP世界中最好的日志组件——Monolog

这也许,不,就是PHP世界中最好的日志组件—— Monolog所有的 PHPer,请站在巨人的肩膀上。随着 Composer 的普及,PHP 组件化开发思想越来越深入人心,我们没有必要重新自己打造轮子,只要确定需求和目标,设计好软件的架构,

「php框架教程」给PHP初学的你10个最常用的函数

PHP的功能越来越强大,里面有着非常丰富的内置函数。资深的PHP程序员对它们可能都很熟悉,但很多的PHP学习者,仍然对一些非常有用的函数不太熟悉。这篇文章里,我们就列举10个你或许不了解但实用的PHP函数,供大家参考和学习。1. php_c

纯PHP开发的高性能PHPsocket服务器框架

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持W

PHP框架开发-如何拥有自己的PHP框架

框架是帮助初学者创建稳定的程序。使得你可以花更多的时间去创造真正的Web程序,而不是编写重复性的代码。框架第一阶段什么是框架?一直以来php框架被广泛利用,多半都是基本mvc架构模式的,国内外框架有HDPHP框架、ThinkPHP、CI框架

可持续更新的PHP框架---是时候有自己的PHP框架了

怎样搭建自己一个PHP框架?PHP写了5年,不想用其他框架,想自己搭建一套mvc oop的框架 可以用别人一些类库,但核心orm 之类希望自己写。这是最近遇到了别人的一个问题,5年时间的PHP资深程序是可以独立开发出自己框架。小编今天带来H

PHP应用中比较好的php框架

PHP的框架很多,有phalcon,kohana ,laravel,Yii,thinkPHP,ROR,HD,,CI,和ROR等,我觉得PHP框架其实本身就是一个工具而已,没有好与不好,只有合不合适。任何东西都没有最好,只是不同的取舍。有人说

PHP框架之ThinkPHP框架

ThinkPHP框架人们习惯性又叫它TP框架,是一个轻量级的国产PHP开发框架,快速、兼容而且简单, ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、

PHP框架的发展背景以及主流PHP框架横向对比

PHP框架的发展背景毫无疑问,Web框架技术在近几年已经得到了突飞猛进的发展和普及,在过去几年里,框架技术的普遍经历了比较大的完善过程,很大一部分可以归因于RubyonRails,以及在其他编程语言中流露出的MVC框架思想。如果你是一个PH

“PHP是最好的编程语言”这19款PHPWeb框架要知道

PHP是主要用于Web开发的服务器端的脚本语言,也用作通用编程语言。Web框架(WF)或Web应用程序框架(WAF)是一个软件框架,来支持Web应用程序的开发,包括Web服务,Web资源和Web API。Web框架能够自动化Web开发中执行

友情链接

网址导航 SEO域名抢注宝宝起名网妈妈知道币圈奔驰迈巴赫汽车网厦门交友聚会网防溺水安全知识网杨幂影迷网老白干酒股票网崂山旅游攻略红木家具网牙科知识科普网陕西旅游网兼职悬赏猫全屋定制加盟网韩红歌迷网华为电脑评测网音乐培训网短视频电商创业网
python编程教学网-python数据库开发教程、python基础知识入门、python数据库编程入门、python语法基础、python下载安装教程、python下载手机版、python翻译器下载手机版、python翻译器代码、python语言翻译、python基础代码、python编程自学网。
python编程教学网 dadeji.cn ©2022-2028版权所有