2023年PHP依然热门:为何小团队偏爱PHP而非Node或Java?
2023 年已经结束了。观察招聘情况可以发现,php 仍然有很多公司在使用。人们不禁想要知道,为什么这些公司不换成 node 或者 java 之类的呢?是不是 php 已经太陈旧了呢?

开发人员最易被割韭菜。微服务、低代码、云原生、saas 化这些都是天坑,一旦踏入,此人在三两年内基本就无法继续发展了。而那些能够赚钱且真正解决客户问题的技术则较为简单直接。很多赚钱的业务,即便不是一万 QPS,哪怕每小时有一两个客单价较高的成交业务,公司也基本能发财。
尤其对于只有三五个后端 PHP 程序员的小团队来说,配备几个前端人员,就能够较为轻松地支撑起公司上千万的销售业务。这种模式的开发成本较小,投入产出比高,单个 PHP 程序员能够分到的钱相对也较多,说不定每年公司还能够组织出国旅游,定期进行团建并享用烤肉。反而是那些有十几个 Java 的情况,各种高大上的概念被全面运用。看其他大厂是如何做的,就生硬地照搬照抄,没日没夜地加班。一旦上线,结果却令人失望,没有客户,没有业务量。直接导致公司进行裁员和倒闭。这种大批量的生产模式与现代商业完全背道而驰。
我是一个自己开公司的老板,使用 PHP 已经超过 5 年了。最近五年,我主要使用 Java。然而,我公司的主要业务,大部分还是用 PHP 编写的。
我为何将 PHP 用作主要业务的编程语言呢?原因其实很简单。我不能确定这个业务是否就是我的主要业务。因为我同时开发并运营着几十款 APP 和网站,一个创意从产生到实现盈利是一个漫长的过程,也许它仅仅因为政策或者市场方面的原因就夭折了。在初期,我会分配一台配置较低的服务器,让它同时运行一堆刚刚上线的应用。一台 4 核 2G 的服务器,若部署超过 10 个 Java 应用,且没有访问量,服务器就会内存爆掉。然而 PHP 不会出现这种情况。如果这个应用不受市场欢迎,访问量很低,那么我部署 100 个都没有问题。这是我从成本方面进行考虑的。
如果一个应用确实能够赚钱,那么我能够直接且快速地转到 Java 。只需按照步骤,一步一步将接口替换掉即可。
Java 程序员工资比 PHP 高。在同样的应用开发速度方面,PHP 有时候能够比 Java 略快,或者与 Java 等同。这就产生了性价比的问题。
总之,前期在产品原型期,PHP 能够满足支撑需求。产品到了中期,具备充足的性能,可以支撑产品过渡到其他高性能的架构。这就已经足够了。至于语法方面,为何没人提及 Haskell 呢?
来百度APP畅享高清图片
实话而言,php 的成本是比较低的。那些真正对程序有一定了解的老板,都更倾向于招收 php 程序员。
我看市面上的那些需求,通常情况下 php 都能够处理好。php 的性能并没有那么糟糕,它主要是关于代码层面的东西。真正的性能瓶颈其实还是在数据库方面。当项目搭建起来后,mq 和缓存才是用来解决性能问题的非常有效的工具。
我曾经用 php 打造了一个日活达到百万的论坛,其内部的功能相当复杂,既有客户端管理后台,也有其他相关功能。当别人听我讲述其中的功能时,许多人都觉得这个项目规模不小,像是很多人一起做出来的。但实际上,这个论坛是由 2 个后端和 1 个前端共同完成的。后端的部署是由公司购买的云服务,而我负责进行搭建。
不要说 php 工程化不好。现在的大多数项目,情况无非是 controller 调用一个 service,要是更复杂些,也就是 service 之间再互相调用,最多也就没几层而已。你知道为什么 java 复杂吗?就是因为原本一层调用就可以搞定的事情,在 java 中却需要调用好几层。有些人写东西很死板,凡事都按照标准化的技术来操作。例如,不管是什么功能,都要把 vo、dto、repository、service、controller、mapper、dao、test 都走一遍。甚至一行的功能代码也要拆分成一个类。写完之后,还会自我欣赏一番。他以为自己写得很清楚明白,等后人来维护的时候,会觉得很轻松。然而,他想多了,不管你写的代码有多清晰,后人永远优先选择重写。
强类型这件事暂且不论,其实弱类型也能够写出好的代码。只要你的代码符合规范,程序本质上就是个输入输出的问题。倘若输入输出都确定好了格式,那为何就不能写出清晰且易于维护的代码呢?
别说最新的 php 支持强类型了。官方追求绝对严谨,可现实中你的项目能做到绝对严谨吗?我干开发多年,觉得大公司项目也好,小公司项目也罢,都很混乱。若语言简单,像用 php 写的,重构起来会更方便些;若语言复杂,重构起来简直就像在火葬场一样。之前有人嘲笑php重构火葬场,java重构就容易了?
真正像课本所讲的那样,对于不同的需求使用不同的设计模式,这么多年我从未见过这样的写法~~~并且基本上也没见过水平如此之高的人,很多人以为自己会用设计模式,实际上都是胡乱使用,用了反而不如不用。反而在有些地方,凭直觉都能知道不会进行扩展,他却在那里给你用上一堆设计模式~~~这是在故意找茬吗?是想体现你的水平高吗?这类人,完全是以自我为中心,只图自己痛快,而没有真正为项目着想。
php 有一个显著优点,即你无需考虑语法方面有什么能难倒你。只要是你想做的事情,就可以去书写。这意味着你的精力可以完全集中在业务和实现逻辑上。如果真要谈及 php 有什么不太适合做的事情,或许也就是爬虫了。对于这方面,用 golang 或者 python 进行弥补就可以了。如果不是专门从事爬虫工作,只是要爬少量数据,那么开启多个命令进程是完全足够的。
我承认 java 在性能方面比 php 更好,在工程化方面也更严谨。有很多 php 无法涉足的领域,java 是能够涉足的。然而,现实情况是,如今市面上的大部分产品,用 php 已经足够了。
很多人都说很多大公司把 php 转成了 java 。然而,你不能否认有很多项目确实是用 php 赚到了钱。一旦有了钱,你想怎么折腾都行,你可以转 python ,可以转 go ,甚至可以自己开发一套语言,这都没什么关系了。这就如同小老板,在没钱的时候会花钱去聘请性价比高的人,乐意招收那些吭哧吭哧努力干活的人。而当有钱了之后,就开始招揽那些看上去很体面的人,招收一些会溜须拍马、做事好看的人,甚至还有闲钱去供养小秘书。
很多公司壮大后,比较倾向于建立企业文化。例如将程序员划分等级,像 p6、p7 等。这样做的目的在于让程序员有奋斗的目标,使程序员感到脸上有光。如果你仅说自己是月薪两万的程序员,那么别人对你在公司的层级难以形成概念。然而,倘若你自己提及在公司做到了 P 几或 L 几,你自己也会觉得脸上有光。这就如同学历的情况,即便大专生与本科生从事相同的工作,本科生天生就具有一种优越感,而大专生则天生带有一种自卑感,这些情况是你想隐藏也隐藏不了的。php 和 java 的选择情况类似,上过大学的人大多认为 java 是正统的。因为从学校教育开始就接触 java,大学课本中也有相关内容。很多程序员将 java 视为最高追求,走 java 学习路径被认为是正统路线。而认为学 php 属于旁门左道,不够系统,难以达到专业水准。
实际上,谁比谁强呢?当有新技术出现时,你之前所学的那些正统知识不是同样会被替换吗?可能以前觉得很难实现的东西,现在已经变得很简单了。就如同 springboot 的出现,基本上只要有手就能操作吧。所以,出现了很多老 java 程序员不乐意的情况,他们认为不行!你只会 springboot 是不可以的,你应该学会查看 springboot 的源码!其实大多数人即便看了 springboot 的源码,也仅仅是会发出感叹,会说这里很牛,那里很精妙。然而,除此之外,并没有任何实际的作用。让他们在实际开发中运用 springboot 中的思想,根本就做不到。
想说的是,php 目前仍具有很大作用。只有当 java 能够将 php 的优点全部取代时,我才会认为 php 真的该被淘汰。
被 java 坑过的想告诉你,创业公司最好无脑选用 PHP。不要与钱作对,也不要与时间作对。
很多人询问缘由。16 年使用 php 构建的 b2b 站点,到现在依然运行得十分稳定。该站点仅用一个月就上线了,之后又用半个月时间调试 bug,之后一直持续迭代运行至今,目前仍是公司的支柱盈利项目。后面鬼迷心窍地使用 java 来搞 b2b 家装类站点,一组 java 开发工作断断续续持续了半年,线上还遗留着一堆 bug。前端大佬用 ts + vue3 玩得很溜,而这边连切页面都不会。之前的 php 大佬仅用 2 天就能切好并且对接好页面,到了这里却需要 10 天。现实向我表明,java 和 ts 写出来的东西就像是屎山。那波人被干掉后,再招来的 java 和前端根本无法承接之前的工作。
后面要把整组 java 全部去除掉,因为他们的效率实在是太低了,并且如果继续留着的话,公司的营收都会出现问题。于是重新招聘了一位有 12 年经验的 php 大佬来重新编写。这位大佬有 12 年 java 经验和 7 年 php 经验,前后端都能够编写。我告诉他薪水给两倍,但要在 1 个半月内稳定上线,不能使用 go、java、ts,就用 laravel。我之所以这么告诉他,是因为我们 16 年上线的项目,现在每月的净收入能达到 30 万多,日 ip 也仅仅才 8000。后面的事实证明我是正确的,2020 年上线的子类目垂直项目,现在每月也能收入 20 万多,而且人员精简之后,我们平稳地度过了疫情的三年。之前有 20 多个人,精简后只剩下 7 个人,薪水只有之前的三分之一,全员在家办公,这样一来,办公室的费用和水电费一年就节省了 20 万多。不要说互联网公司裁员是黑暗的,有时候如果不降低成本提高效率,公司就无法生存下去!!!
创业公司技术要成熟,人员结构需稳定,作风得务实,这非常重要。能一个人搞定的就别招两个人,宁可让一个人辛苦些,多给些钱。人一多,管理成本就上来了,五险一金的成本、办公位的成本也都上来了。一旦项目不平稳,营收出现问题,公司很快就会陷入困境。
还有一点,要告知前端,seo 能够带来较为不错的自然流量,并且一定要将其做好。因此,不要使用 vue 进行打包,而是要用后台语言来进行渲染。