【黄啊码】为什么程序员大都鄙视php?

news2024/11/15 11:02:11

PHP 是世界上最好的语言”。。。“吗”?相信很多人跟我一样,都会在后边打个问号。这些年以来,“PHP 已死”、“PHP 行将消亡”之类的言论甚嚣尘上,由此看得出,很多开发人员讨厌 PHP。这又是为什么呢?PHP 真的就这么令人讨厌吗?

我们先谈谈php的优势吧:

好处一:门槛低,前面我说过,PHP其实是很容易上手的,它的语法混合了c、java、perl以及PHP自己创新的想法。PHP把几种语言的一部分拿过来又自己创新了一点,把PHP做的更好了,所以很多人有点想法。

PHP门槛低,学几个月就能做些基本的项目了,而且工资还是可以的。还有一点是PHP开发的速度相比其它的都快点,一个中小型的web项目,最少一个多月就能做出来了,最多也就三个月左右,除非是那种不懂的人。超过了时间。

好处二:代码的量比较少,而且和上面说的一样,速度又快,看到很多学别的东西的人发现自己要写一些或者很多的代码,而PHP程序员写的话,就是调用函数就完成了,这也让很多人有想法了。

好处三:主要是成本低啊,PHP最经典的组合是LAMP,兄弟连啊(全称是linux+Apache+mysql+PHP),所有的软件都是开源免费的,减少了多少投入。。。

好处四:跨平台强啊,PHP是运行在服务器端的脚本,不但在这里用,而且还能在Unix、Linux、Windows、mac OS里面都能运行,目前微信的二次开发基本上都是用PHP做的。

最最重点的是:Facebook、Wikipedia、Yahoo!、Flick、Tumblr 等所有这网站都是用 PHP 运行的,每个月都毫无畏缩地迎接数以百万计的用户。PHP 在这方面做得非常好,而且也已经做了很长时间。

但是,php最令人头疼的缺点也很明显:

缺点一:这门语言是如何没有类型的,这门语言是如何变幻莫测的。无论是操作符的使用,还是函数的命名,都存在令人难以置信的不一致性问题。我就不给你一一列出 PHP 的问题了,要不然,这篇文章就会变得奇长无比,占用你一整天的时间才能阅读完毕。

缺点二:待遇有点低,刚才说了,上手几个月就能跟着做点小项目,但是要学精到赚大钱的地步还是有点难啊,很少有PHP基础的是很多的,很少看到有PHP大神啊,为什么,就是因为学精难啊,一旦学精难了之后,工资就很难涨起来,所以工资在别的行业里面平均算起来算是低的了。

缺点三:成长的空间小,跟刚才说的差不多,上手容易精通是比较难的,一个PHP的大神一般都是在java和c等语言上面有着很深的研究的,很多人都是学完PHP基础之后,发现成长的空间太小,所以好多都去转投别的行业去了,导致了现在会PHP的很多,但是很难看到有精通的。

缺点四:奋斗的方向不好找,因为PHP真的不是大型企业常用的开发语言,PHP语言的方向是针对web前端方向的,如果换一个方向的话,那么PHP的用处就很低了。在我看来,把PHP用作web方面的最好的语言绝对是当之无愧的。

那为什么大多是程序员都鄙视php呢,因为在许多开发者的心目中,PHP 一直停留在版本 4。当这门语言不稳定时,具有灾难性的性能,且不存在的面向对象进程设计。开发人员讨厌 PHP,是因为他们认为这门语言已经停滞不前有 20 年了。当你今天去了解 PHP 时,你就会知道它已经远远超过当年的 PHP 4 了。
PHP 7 比 Python 和 Ruby 都要快。如果你愿意的话,PHP 7 也可以做到强类型。随着近年来出现的静态解析器,工具也在不断发展。像 Symfony 或 Zend 这样的框架强制采用良好的实践。每年都会发布一个新版本,并附有非常精确的议程。此外, PHP 7.4 具有更好的性能。还是那句话,由于篇幅所限,我不会赘述现代 PHP 正在发生的一切。如果你想知道所有的事情,我推荐你阅读这篇文章《 2019 年的 PHP 》(PHP in 2019):是时候改变你对这门语言的看法了,它已经和过去没有任何关系了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/677485.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx配置https证书遇到的一个问题

前言 今天在给一个站点配置 HTTPS 证书的时候,遇到了一个问题,写此文章记录一下解决过程。 环境 Ubuntu 22.04 Nginx 1.18 过程 今天给一个站点申请了 HTTPS 证书,然后在 Nginx 中进行配置,Nginx 的 SSL 配置如下&#xff1a…

Matplotlib---饼图

1. 饼图 pie()函数用于绘制饼图,其基本语法如下: plt.pie(x, explodeNone, labelsNone, colorsNone, autopctNone, startangleNone, shadowFalse) 其中,参数含义如下: - x: 数组,表示饼图中每个部分的数值大小。 -…

手机技巧:iOS微信 8.0.38正式版更新功能一览

目录 1、安装包变大了很多 2、拍摄功能优化 3、订阅号消息展示优化 4、转账界面优化 5、视频号关注展开更多 7、朋友圈置顶(灰度测试) 8、搜一搜页面新增问一问功能 2023.06.09大家期待已久的IOS微信8.0.38正式版终于发布了,今天就来给…

第四章网络层

1.网络层概述 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。 要实现网络层任务,需要解决以下主要问题: 网络层向运输层提供怎样的服务(“可靠传输”还是“不可靠传输”)网络层寻址问题路由选择问题 因特网(Internet)是目前全世界用…

idea快捷键和常用设置和maven

因为Eclipse快捷键较为统一,因此我们提前设置好,统一idea中的快捷键遵从Eclipse的快捷键。 常用设置 快捷键的统一 设置–按键映射–Eclipse 自动导包 设置–编辑器–常规–自动导入 这个操作主要是为了正确导包,当我们将某行代码注释的…

【物联网无线通信技术】LoRa从理论到实现(SX1268)

文章先从LoRa的物联网通信技术前辈们讲起,慢慢引出了这种功耗又低,距离又远的无线通信技术,然后又似庖丁解牛一般,从物理层到链路层,详细的介绍了LoRa这种技术的组成,最后以一种实际的原理与嵌入式软件实现…

MySQL实战解析底层---如何正确地显示随机消息

目录 前言 内存临时表 磁盘临时表 随机排序方法 前言 现在说说MySQL中的另外一种排序需求,希望能够加深对MySQL排序逻辑的理解从一个单词表中随机选出三个单词这个表的建表语句和初始数据的命令如下: 为了便于量化说明,在这个表里面插入…

ChatGPT科研阅读论文应用插件(txyz.ai)使用初探

前言 ChatGPT没有办法直接阅读论文,但使用txyz.ai插件可以使用ChatGPT来帮助快速得到论文中想要的信息,特别是对于专业名词较多的文章,而且可以问它关于这篇文章的问题,能够加快研究的进程。刚开始了解到这个应用是一个ChatGPT插件…

06- c语言指针 (C语言)

一 指针的引入 1、一般把内存中的一个字节称为一个内存单元。 2、为了正确地访问这些内存单元,必须为每个内存单元编上号。根据一个内存单元的编号即可准确地找到该内存单元。内存单元的编号也叫做地址,通常也把这个地址称为指针。 3、如果在程序中定义…

设计模式之策略模式笔记

设计模式之策略模式笔记 说明Strategy(策略)目录策略模式示例类图抽象策略类策略A类策略B类策略C类促销员类测试类 说明 记录下学习设计模式-策略模式的写法。JDK使用版本为1.8版本。 Strategy(策略) 意图:定义一系列的算法,把它们一个个封装起来,并且…

【数据分享】全国县市2000-2021年综合经济数据(地区生产总值\一二三产业增加值等)

《中国县域统计年鉴》是一部全面反映我国县域社会经济发展状况的资料性年鉴,收录了上一年度全国2000多个县域单位的基本情况、综合经济、农业、工业、教育、卫生、社会保障等方面的资料。 本篇文章我们给大家带来从2001年—2022年《中国县域统计年鉴》整理的数据—…

MySQL:事务

事务 在介绍事务之前,我们先来了解一个案例: 在一个买票的软件中,当客户端A检查还有一张票时,将票卖点,但是还没有更新数据库,客户端B检查了票数,发现大于0,于是又卖掉了一张票。然…

ROS:通信机制

目录 一、通信机制简介二、话题通信机制2.1话题通信简介2.2话题通信实操(C)2.2.1分析2.2.2发布方代码2.2.3订阅方代码2.2.4配置CMakeLists.txt2.2.5执行2.2.6注意 2.3话题通信实操(python)2.3.1分析2.3.2发布方代码2.3.3订阅方代码…

【计算机网络】第二章 物理层(上)

文章目录 2.1 物理层的基本概念2.2 物理层下面的传输媒体2.3 传输方式2.4 编码与调制2.4.1 介绍2.4.2 常用编码2.4.3 编码习题2.4.4 基本调制方法2.4.5 混合调制 2.1 物理层的基本概念 物理层考虑的是怎样在连接各种计算机的传输媒体上传输数据比特流。 物理层为数据链路层屏蔽…

4.0、Java_IO流 - 流的概念细分

4.0、Java_IO流 - 流的概念细分 按照流的方向分类: 输入流:数据流从数据源到程序(以 InputStream 、Reader 结尾的流); 输出流:数据流从程序到目的地(以 OutputStream 、Writer 结尾的流&#x…

【雕爷学编程】Arduino动手做(120)---游戏摇杆扩展板

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

2023-06-23:redis中什么是缓存击穿?该如何解决?

2023-06-23:redis中什么是缓存击穿?该如何解决? 答案2023-06-23: 缓存击穿是指一个缓存中的热点数据非常频繁地被大量并发请求访问,当该热点数据失效的瞬间,持续的大并发请求无法通过缓存获取到数据&…

Triton教程 --- Triton 响应缓存

Triton教程 — Triton 响应缓存 Triton系列教程: 快速开始利用Triton部署你自己的模型Triton架构模型仓库存储代理模型设置优化动态批处理速率限制器模型管理自定义算子解耦后端和模型 概述 在本文档中,推理请求是模型名称、模型版本和输入张量(名称、…

ChatGPT从入门到精通,深入认识ChatGPT

ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定1、ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视( 点击观看完整版本 )https…

TreeMap数据结构及源码解析.跟学黑马

TreeMap数据结构及源码解析 1.TreeMap的特点2.TreeMap的数据结构2.1二叉查找树2.1.1二叉查找树的定义2.1.2二叉查找树的查找操作 2.2平衡二叉树2.2.1平衡二叉树的定义2.2.2平衡二叉树的旋转 2.3红黑树2.3.1红黑树的定义 2.TreeMap的源码分析2.1get()获取方法分析2.2put()添加方…