2077年了,PHP语言现在怎么样啦?(2077年是什么)
nanshan 2025-05-08 03:51 8 浏览 0 评论
“PHP是世界上最好的语言!”这句话一出来,编程界的鄙视链一触即发,程序员的键盘世界大战就爆发了。
那么,本文就简单讨论PHP语言,笔者作为创业小公司小团队的角度来妄议一下PHP。首先直接说明观点:新手入门学习的话可以推荐,但是使用的话你是项目技术栈决策人,那非常不推荐PHP。
回想我的编程往事,PHP无疑是我最先在项目中使用的编程语言,差不多10年了,当年环境下来说,结合个人情况,PHP无疑是最合适的编程语言。
PHP的好处不少:
- 免费使用
- 开源/盗版源码特别多
- 环境开发搭建容易
- 服务器部署方便
- 动态类型,学习简单且代码宽松
- 脚本运行,可直接登录FTP在web服务器文件空间就修改代码
- 专注web网页后端开发
- mysql友好
正是这些原因,对于没钱购买独立服务器的个人、小团队来说,写一个后台网站无疑是首选LAMP(Nginx/Apache Linux MySQL PHP),开发成本实在是太低了,以至于在上学时候我只需要免费申请一个国外PHP虚拟主机空间就可以进行网站后台开发了,然后在上课时候,使用Andorid手机登录FTP,就可以编辑网站代码了。低配置也能让网站运行起来,感觉十分炫酷。
而在十年前,很多做网站,大部分人根本没有完全独立开发的编程能力,但是使用织梦DedeCMS就可以做博客网站做企业网站,使用Discuz!就可以搭建论坛程序,使用ECShop就可以搭建一个B2C电子商务网站,如果使用国外免费不限空间的虚拟主机几乎是可以零成本建网站(网速慢点)。PHP开源代码建站,这是我们那老一代网站站长的回忆!那时候我就用Discuz搭建了很多论坛,也搭建了学校的官方论坛,也认识了很多基友共同研究网站技术,这些都使用PHP以及Smarty模板引擎替换HTML标签编写前端界面。到现在来说,很多论坛网站依然使用Dozcuz搭建,即使Discuz基本没升级维护,也很难跟上现在的开发模式。
玩现成的开源代码够了不能满足“玩”的需求了,下一步就是开始使用封装更少的PHP开发框架来开发PHP网站后台系统了,流行的PHP框架有ThinkPHP、Laravel、Yii、CodeIgniter等,使用这些开源框架,只有有一点点PHP编程基础,就能快速开发一个PHP后台。
不过,软件开发变化太快了,曾经PHP就是快速开发的代表,那些年可以嘲笑Java开发太慢,服务器搭建成本高,而转眼到了2077年了,PHP的弱点也显而易见,它除了开发起步低成本以外,好像对于像我这样的创业公司小团队来说,越来越不推荐了。
首先就是,云服务器时代来临,我们现在买个阿里云ECS服务器成本非常低,都有独立操作系统的服务器了,我们就可以随意搭建服务器环境,不需要再像以前一样使用虚拟主机,以往而那些虚拟主机一般就只有PHP、JSP/Tomcat、Access限制了我们的选择。
其次就是:安全性和性能较低,PHP是脚本语言,程序代码散落地放在服务器文件目录,容易被篡改,且性能较低。虽然安全问题在于人,也就是bug和漏洞就是人的因素,跟PHP关系不大,厉害的人写的PHP就安全,不厉害的人写PHP就不安全。话虽如此,我们同样水平的程序员,选择PHP就可能暴露出更多不安全因素,而选择其他语言这个概率就可以大大降低,长久看来,PHP是不推荐的。
PHP除了擅长web后台开发,其他都不擅长。虽然也有一些如PHP-GTK等绑定库,可以用PHP写GUI程序,但是那得多无聊的人才会用啊。而现在APP端开发,PHP就更不行了,生态不行,而且这不仅仅是生态问题,是PHP本身机制就是为了web开发来说的,所以,创业小公司,Nodejs更好。Nodejs找个会js的程序员,使用一个语言的技术,就有机会开发服务端、web前端、以及APP甚至是嵌入式还有Electron桌面程序。而js是所有网页开发都必备技能,创业公司使用nodejs确实是好的方案,当然,对于一个程序员来说,我精通Java的话让我去学习一下Kotlin、Dart学习成本很低,那我使用Java开发后台、Dart和Flutter开发APP那也没什么大的困难和成本。
c除了上面的和Nodejs的简单对比,和Java生态比起来,Java程序员,使用Java或者其它JVM语言几乎就可以干任何事情,比如Kotlin可以无缝转换,支持后台、前台以及Native程序开发,而PHP,官方库或者官方api没有的功能,你就得自己去开发基于C/C++开发的PHP插件来完善PHP的功能,比如著名的Swoole,那你只会PHP语言就不能担当大任了,你得有C/C++的知识才能去创建一个类似Swoole这样的扩展。
最后一点,就是PHP,逼格太差了,学习和使用PHP不仅技术难以精进,而且其他语言的程序员都在默默地鄙视PHPer。
所以,是时候放弃PHP了!
相关推荐
- F5负载均衡器如何通过irules实现应用的灵活转发?
-
F5是非常强大的商业负载均衡器。除了处理性能强劲,以及高稳定性之外,F5还可以通过irules编写强大灵活的转发规则,实现web业务的灵活应用。irules是基于TCL语法的,每个iRules必须包含...
- 映射域名到NAS
-
前面介绍已经将域名映射到家庭路由器上,现在只需要在路由器上设置一下端口转发即可。假设NAS在内网的IP是192.168.1.100,NAS管理端口2000.你的域名是www.xxx.com,配置外部端...
- 转发(Forward)和重定向(Redirect)的区别
-
转发是服务器行为,重定向是客户端行为。转发(Forward)通过RequestDispatcher对象的forward(HttpServletRequestrequest,HttpServletRe...
- SpringBoot应用中使用拦截器实现路由转发
-
1、背景项目中有一个SpringBoot开发的微服务,经过业务多年的演进,代码已经累积到令人恐怖的规模,亟需重构,将之拆解成多个微服务。该微服务的接口庞大,调用关系非常复杂,且实施重构的人员大部分不是...
- 公司想搭建个网站,网站如何进行域名解析?
-
域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转...
- 域名和IP地址什么关系?如何通过域名解析IP?
-
一般情况下,访客通过域名和IP地址都能访问到网站,那么两者之间有什么关系吗?本文中科三方针对域名和IP地址的关系和区别,以及如何实现域名与IP的绑定做下介绍。域名与IP地址之间的关系IP地址是计算机的...
- 分享网站域名301重定向的知识
-
网站域名做301重定向操作时,一般需要由专业的技术来协助完成,如果用户自己在维护,可以按照相应的说明进行操作。好了,下面说说重点,域名301重定向的操作步骤。首先,根据HTTP协议,在客户端向服务器发...
- NAS外网到底安全吗?一文看懂HTTP/HTTPS和SSL证书
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry搭好了NAS,但是不懂做好网络加密,那么隐私泄露也会随时发生!大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数...
- ForwardEmail免费、开源、加密的邮件转发服务
-
ForwardEmail是一款免费、加密和开源的邮件转发服务,设置简单只需4步即可正常使用,通过测试来看也要比ImprovMX好得多,转发近乎秒到且未进入垃圾箱(仅以Mailbox.org发送、Out...
- 使用CloudFlare进行域名重定向
-
当网站变更域名的时候,经常会使用域名重定向的方式,将老域名指向到新域名,这通常叫做:URL转发(URLFORWARDING),善于使用URL转发,对SEO来说非常有用,因为用这种方式能明确告知搜索引...
- 要将端口5002和5003通过Nginx代理到一个域名上的操作笔记
-
要将端口5002和5003通过Nginx代理到域名www.4rvi.cn的不同路径下,请按照以下步骤配置Nginx:步骤说明创建或编辑Nginx配置文件通常配置文件位于/etc/nginx/sites...
- SEO浅谈:网站域名重定向的三种方式
-
在大多数情况下,我们输入网站访问网站的时候,很难发现www.***.com和***.com的区别,因为一般的网站主,都会把这两个域名指向到同一网站。但是对于网站运营和优化来说,www.***.com和...
- 花生壳出现诊断域名与转发服务器ip不一致的解决办法
-
出现诊断域名与转发服务器ip不一致您可以:1、更改客户端所处主机的drs为223.5.5.5备用dns为119.29.29.29;2、在windows上进入命令提示符输入ipconfig/flush...
- 涨知识了!带你认识什么是域名
-
1、什么是域名从技术角度来看,域名是在Internet上解决IP地址对应的一种方法。一个完整的域名由两个或两个以上部分组成,各部分之间用英文的句号“.”来分隔。如“abc.com”。其中“com”称...
- 域名被跳转到其他网站是怎么回事
-
当你输入域名时被跳转到另一个网站,这可能是由几种原因造成的:一、域名可能配置了域名转发服务。无论何时有人访问域名,比如.com、.top等,都会自动重定向到另一个指定的URL,这通常是在域名注册商设...
你 发表评论:
欢迎- 一周热门
-
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
WindowsServer2022|配置NTP服务器的命令
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WIN11 安装配置 linux 子系统 Ubuntu 图形界面 桌面系统
-
解决Linux终端中“-bash: nano: command not found”问题
-
NBA 2K25虚拟内存不足/爆内存/内存占用100% 一文速解
-
Linux 中的文件描述符是什么?(linux 打开文件表 文件描述符)
-
K3s禁用Service Load Balancer,解决获取浏览器IP不正确问题
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)