如何客观公正地评价PHP语言?

WBOY
Release: 2016-06-17 08:31:54
Original
1231 people have browsed it

客观、公正、无偏见地评价一下PHP,它的优点、缺点,与其他语言的比较,以及其他一切。
不要简单地说“PHP是最好的语言”“PHP是最差的语言”之类的。

回复内容:

作为一个有C语言基础的,一直养成了对数据类型很敏感的习惯,直到用了php. 我滴个神啊,定义变量怎么和闹着玩似的。 你已经先入为主地坚决否认 “PHP是最好的语言”,还说什么客观公正?
事实上PHP就是最好的WEB开发语言(没有之一),除非你认为80%的网站开发者是傻X。

如何客观公正地评价PHP语言?
虽然有不少人坚持不懈地喷PHP,但PHP用飞速上涨市场占有率还以响亮的耳光。

PHP的优缺点,网上讨论也很多了。
作为WEB开发语言,最主要的优点是:
1. 开发速度快,秒杀其他所有web开发语言
2. 部署、维护极其简单,再次秒杀其他所有
3. 性能好,好于Python、Ruby。不如JAVA,但差距可以接受。

有这几点,其他已经不重要了。

PHP被喷得最多的是语言特性,但语言是用来实现功能的,不是停留在学术研究层面的,实战效果好是王道。
你设计个特性完美的语言,但是极其难学难用,也不会有什么卵用。 做过几年的php开发,后来短期做过c#,java开发,也接触了一些其他的语言,包括ruby和python,目前专注于web前端开发。因此我觉得自己还是可以比较公正客观地评价php。

优点
在web领域,php确实是一门开箱即可使用的语言,不管是在linux下还是windows下,搭建web开发环境都非常便利,特别是对于新手来说。按照示例就可以很快写出一个demo,是非常方便简单的,不需要OO,不需要额外的模板引擎。如果需要额外的库,把文件直接加到目录里面,使用include或者require进来即可。这对于新来,或者开发微型项目,都无疑是最方便的。四个字:开箱即用。

而开发大型项目,那么OO,模板引擎,包管理器,各类框架也是应有尽有。可以说,php也是能够满足企业级的开发需求。

很多人以前诟病的php的缺点包括
  1. 没有好的包管理器(pear,只是用的不多)
  2. 缺乏命名空间
  3. 开发不规范
目前来说上述的一些缺点都已经得到了解决
  1. Composer 目前应用比较广泛的php包管理器
  2. 5.3以后增加了对命名空间的支持
  3. PHP之道 对php的开发做了一定的规范限制

缺点
性能问题,这方面确实是比不上java,但目前php NG在性能上已经得到了大幅度的提升。

函数命名和参数顺序没有统一的规范,比较紊乱。 写了几年的php代码,发表一下个人看法。

相对于其他语言,Php的显著优点是简单粗暴,上手快,农民工便宜。

但是这些优点都是以牺牲健壮性,可维护性,可拓展性为代价的。

php弱类型,即时编译,导致很多错误在运行的时候才能发现,所以对健壮性要求很高的系统都不会用php这样的语言来构建,你见过哪个银行的系统是用php写的?

Php在代码规范上面没下功夫,导致php代码各种写法混存,最终苦逼的是维护别人代码的接盘侠。。。

再说说php的架构,php采用的是脚本+扩展的架构,你会发现php应用的很多核心代码都是放到扩展上面实现的,而扩展都是用c写的,这样移植又复杂了好多了。从这一点来说,php就是一个组装师。 从语言设计的目标看,主要面向web,这一点可以说既是php广泛使用的原因,也是被人吐槽的原因。我从以下三个方面对比一下php和java这对冤家:
1.网络编程
php能很好地和server整合,因此从socket编程中解脱出来了,不像java/python其他常见web编程语言通常需要自己实现server,而且php自身通过sapi封装了http所需的全局变量,这大大简化了手工解析http协议,但是另一方面也导致php对socket、多路复用等网络编程的支持明显弱于java。
2.并发编程
php没有提供良好的并发编程手段,这一点在为server服务的时候不是太大问题,但是如果编写独立的客户端或服务端程序就比较蛋疼了。这一点,相对java来说就极大限制了php成为一门更优秀的语言。
3.语法特性
从语法特性上来说,php和java很像,但是也各有特点,也都在进步。比如,java对范形编程的支持,php对匿名函数,闭包等的支持(java8有了),php在hack的影响下也引入了标量类型等新特性

综上:php在网络编程与并发编程方面还不算友好,在php7以后应该会有改进,对于web编程php是有独到优势的,但是要成为一门更通用的语言,还有较长的路。
Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template