PHP 语言已经过气了吗

210 天前
 AndrewHenry
16014 次点击
所在节点    PHP
153 条回复
ninjashixuan
210 天前
应该是的,现在不是折腾 nextjs nestjs nuxtjs 的多么。
Sunzehui
210 天前
@runlongyao2 #30 我有 lock 文件,然而装包的时候也不根据 lock 走啊,还是会扫一遍 package.json 查查有没有版本更新,指不定哪个小版本更新就跑不起来了
systemGuest
210 天前
当地招聘数据才是最有用的证明,别听那些偏执的程序员瞎扯。
idragonet
210 天前
@ChainLock #12 用 PHP 基本都是小公司。
whyso
210 天前
@runlongyao2 事实就是 go 抢了 php 相当一部分份额,有个 go 框架就是 php 的框架翻译过来的,比较出名;还有个 php 的网站,有 php 转 go 的 go 教程;身边统计学,我们公司俩 php 都转 go 了(自己主动的)
systemGuest
210 天前
@idragonet 绝大多数人都是普通人,他只能进小公司啊?
cbythe434
210 天前
php 是世界上最好的语言
systemGuest
210 天前
@ChainLock 我们公司技术招聘,以前写 php 转 go 的又回来写 php ,问他们面试情况,go 不到 php 的一半,坐标深圳,真实招聘数据。
Genshin2020
210 天前
你说的对
ninjashixuan
210 天前
中小公司有时候是会抄大公司技术方案的,毕竟梦想还是要有的,万一上市了呢。所有大公司不怎么用的话,小公司也会慢慢消减。
jonsmith
210 天前
PHP 做 web 开发更成熟
to2false
210 天前
不协作可以用 php
协作绝壁不能用 php
javalaw2010
210 天前
php 有没有过气不好讲,但是整个 php 社区发展在我看来确实有停滞的趋势了。

框架层面,全球市场 laravel 一家独大,整个 php 开源生态与其说是 php 生态,不如说是 laravel 生态,国内的话 laravel/thinkphp/hyperf/webman 倒是分庭抗礼,我也几乎都试过,但是用下来体验最好的还是 laravel ,选 laravel 的一般很少选 tp 了,hyperf 体验次之,但是 hyperf 也有自己的问题,比如对 IDE 不够友好,有时候报错会报道 xxxx.proxy.php 上,不太方便调试。以前 php 圈子活跃的时候,有很多框架如雨后春笋般冒出来,很多有特色的框架会给人眼前一亮的感觉,然而最近再去翻那些框架的 repo ,要么 archive 了,要么就几乎不维护了。

常驻进程/协程/异步方案上,国内外分化地比较明显,国内偏好 swoole/workerman 方案,国外更偏好基于 fibers 的 reactphp ,swoole 另辟蹊径使用 hook 方案,整个异步/协程的体验比较丝滑。当年 fibers 提案时被寄予厚望,整个 php 圈子希望由此统一并繁荣 php 的协程/异步 IO 生态,不过这么多年过去了,看起来事与愿违。而 swoole 作为一个第三方扩展,库作者开发库时,也不太会考虑为其专门做适配。phper 只能等待官方再一次重视协程/异步支持,不知道这一次又要等到猴年马月去了。

php 本身也有一些问题亟待解决:

php-fpm 是一个很大的问题,当一个公司很小的时候,fpm 确实很奏效,解决(隐藏)了很多问题,但是一旦业务规模上升到一定程度,他就成了累赘,每一个请求都要重新走一遍初始化框架的流程,这带来了很多不必要的性能开销。php 作为一个脚本语言,其实性能并不弱的,fpm 就像一个枷锁,阻碍了 php 的性能释放,这也成为大公司抛弃 php 的一个很重要的原因。当然你说我们有 reactphp/workerman/swoole 常驻进程方案,但同样的道理,没有官方对 cli 下 server 的支持,各个小群体各自为战,劲使不到一处,又能翻多大的水花。

类型问题:1. php 成也 array ,败也 array 这句话不是没有缘由的,关联数组太好用了,无论做什么,第一时间想到的就是用 array 来装,而整个组里只要有一个人,关联数组到处乱飞,就能极大地降低项目的可读性和可维护性,所以在我的项目里,只允许方法内使用关联数组,一个关联数组不能传到方法外面,如果要,就请转成对象,即便如此,你也只能约束自己,无法约束第三方的 SDK 或者开源库,很难完全阻止关联数组的泛滥。2. 缺少泛型支持,当然弱类型语言对泛型的支持并不那么迫切,但一个 php 项目做的越深,就越觉得应该要有泛型,当然有 phpdoc 帮助我们声明泛型从而获得 IDE 的支持,但是写代码还要写 phpdoc 让整个开发的体验很割裂,体验下降了一大截。

其他的高级开发用到的什么多进程/线程/协程/锁/定时器乱七八糟的就不说了,而且周边生态上没有官方的语言服务器实现使得开发者只能依赖收费插件/phpstorm 才能获得良好的开发体验,环境搭建复杂,使得语言上手的成本较高(似乎是有一些社区方案,不过都只能开发使用,并不是生产级的)。

php 规划的问题:此处看法比较主观,我觉得目前 php 圈子缺乏一个有足够权威的大佬领导规划 php 的开发,能有魄力和实力带领 php 走出目前的困境,据我所知 php 基金会目前全职加上兼职总共有 10 名开发者,swoole 也有不少开发者在 php 开发组,开发力量不算弱,但近年来 php 的更新并没有给人带来惊喜。
pangzipp
210 天前
php 是最好的语言
wanniwa
210 天前
主要是后继无人
zzfly256
210 天前
个人觉得还是圈子的问题。
有段时间独立开发出海很火,很多人在疯狂安利 Cloudflare Page 、Vercel 这类免费的前端云平台,Next.js 等等框架走红,相比起了 PHP + 免费虚拟主机那一套 CI/CD 流更完善,挤压了一部分 PHP 建站的空间。
而这批独立开发出海的人,不少都会来 V2EX 宣传,相对而言我们可能会觉得 PHP 没这么火了,别人首选都是 Vercel+js 等
(虽然 PHP 占用率在衰退是事实。前面 V 友说的对,PHP 是存量市场,但生存空间不至于到 0 。至少我知道的不少知名游戏公司,在做企业内部系统、管理后台、数据后台等方面用 PHP 还是用的嘎嘎香的)
back0893
210 天前
主要是 php 的工资不够高 没办法
ipfox
210 天前
sagaxu
210 天前
毫无疑问,过气了。2010 年移动互联网兴起后 PHP 就开始衰慢慢退了。

https://www.tiobe.com/tiobe-index/
https://spectrum.ieee.org/top-programming-languages-2024

TIOBE PHP 排第 14 ,IEEE spectrum PHP 第 13 ,双双跌出前 10 。过气了不是死了,PHP 虽然没多少增量了,但存量还是很大的,招聘职位数量不一定比 Go 少多少。

有人说经济不活跃,创业公司少所以 PHP 少,我不认同这个看法。美国依然有很多互联网相关创业公司,但他们服务端以 nodejs 为主,基本上看不到初创用 PHP 的,PHP 正是被 JS/TS 蚕食了。

说 PHP 开发效率高,array 灵活,我赞同。但 PHP 动态类型不利于三个月以后的迭代和维护,也不利于多个后端共同开发。综合的看,PHP 的开发效率没有比其它语言高,甚至 Java 少写几个 O 之后出活速度也不输于 PHP 。我 PHP 和 Java 都写过 10 万行(不含生成的)以上,两者熟悉程度接近,但熟悉 PHP 还是要比 Java 少花很多时间,至少不用读内存模型的文档,也不用研究泛型擦除,逆变协变之类的东西,更不用去掌握各种 GC 的原理和参数。

存量 PHP 项目很多,但增量约无。老 PHP 开发不少,但新入坑的约无。
ChainLock
210 天前
@systemGuest #48 公司还收人吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1112469

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX