2077年了,PHP语言现在怎么样啦?
off999 2025-01-13 16:47 16 浏览 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了!
相关推荐
- 如何理解python中面向对象的类属性和实例属性?
-
类属性和实例属性类属性就是给类对象中定义的属性通常用来记录与这个类相关的特征类属性不会用于记录具体对象的特征类属性的理解:类属性是与类自身相关联的变量,而不是与类的实例关联。它们通...
- Java程序员,一周Python入门:面向对象(OOP) 对比学习
-
Java和Python都是**面向对象编程(OOP)**语言,无非是类、对象、继承、封装、多态。下面我们来一一对比两者的OOP特性。1.类和对象Java和Python都支持面向对象...
- 松勤技术精选:Python面向对象魔术方法
-
什么是魔术方法相信大家在使用python的过程中经常会看到一些双下划线开头,双下划线结尾的方法,我们把它统称为魔术方法魔术方法的特征魔术方法都是双下划线开头,双下划线结尾的方法魔术方法都是pytho...
- [2]Python面向对象-【3】方法(python3 面向对象)
-
方法的概念在Python中,方法是与对象相关联的函数。方法可以访问对象的属性,并且可以通过修改对象的属性来改变对象的状态。方法定义在类中,可以被该类的所有对象共享。方法也可以被继承并重载。方法的语法如...
- 一文带你理解python的面向对象编程(OOP)
-
面向对象编程(OOP,Object-OrientedProgramming)是一个较难掌握的概念,而Python作为一门面向对象的语言,在学习其OOP特性时,许多人都会对“继承”和“多态”等...
- 简单学Python——面向对象1(编写一个简单的类)
-
Python是一种面向对象的编程语言(ObjectOrientedProgramming),在Python中所有的数据类型都是对象。在Python中,也可以自创对象。什么是类呢?类(Class)是...
- python进阶突破面向对象——四大支柱
-
面向对象编程(OOP)有四大基本特性,通常被称为"四大支柱":封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)和抽象(Abstrac...
- Python学不会来打我(51)面向对象编程“封装”思想详解
-
在面向对象编程(Object-OrientedProgramming,简称OOP)中,“封装(Encapsulation)”是四大核心特性之一(另外三个是继承、多态和抽象),它通过将数据(属性)和...
- Python之面向对象:对象属性解析:MRO不够用,补充3个方法
-
引言在前面的文章中,我们谈及Python在继承关系,尤其是多继承中,一个对象的属性的查找解析顺序。由于当时的语境聚焦于继承关系,所以只是简要提及了属性解析顺序同方法的解析顺序,而方法的解析顺序,在Py...
- Python之面向对象:通过property兼顾属性的动态保护与兼容性
-
引言前面的文章中我们简要提及过关于Python中私有属性的使用与内部“名称混淆”的实现机制,所以,访问私有属性的方法至少有3种做法:1、使用实例对象点操作符的方式,直接访问名称混淆后的真实属性名。2、...
- Python之面向对象:私有属性是掩耳盗铃还是恰到好处
-
引言声明,今天的文章中没有一行Python代码,更多的是对编程语言设计理念的思考。上一篇文章中介绍了关于Python面向对象封装特性的私有属性的相关内容,提到了Python中关于私有属性的实现是通过“...
- Python中的私有属性与方法:解锁面向对象编程的秘密
-
Python中的私有属性与方法:解锁面向对象编程的秘密在Python的广阔世界里,面向对象编程(OOP)是一种强大而灵活的方法论,它帮助我们更好地组织代码、管理状态,并构建可复用的软件组件。而在这个框...
- Python 面向对象:掌握类的继承与组合,让你的代码更高效!
-
引言:构建高效代码的基石Python以其简洁强大的特性,成为众多开发者首选的编程语言。而在Python的面向对象编程(OOP)范畴中,类的继承和组合无疑是两大核心概念。它们不仅能帮助我们实现代码复用,...
- python进阶-Day2: 面向对象编程 (OOP)
-
以下是为Python进阶Day2设计的学习任务,专注于面向对象编程(OOP)的核心概念和高阶特性。代码中包含详细注释,帮助理解每个部分的实现和目的。任务目标:复习OOP基础:类、对象、继...
- 外婆都能学会的Python教程(二十八):Python面向对象编程(二)
-
前言Python是一个非常容易上手的编程语言,它的语法简单,而且功能强大,非常适合初学者学习,它的语法规则非常简单,只要按照规则写出代码,Python解释器就可以执行。下面是Python的入门教程介绍...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python重命名文件 (54)
- python面向对象编程 (60)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)