《士兵突击》中有这么一段话:

老马继续苦笑:“跟你讲个故事。狗栏里关了五条狗,四条狗沿着顺时针方向跑圈,一条狗沿着逆时针方向跑圈。后来顺着跑的四条都有了人家,逆着跑的那条被宰了吃肉,因为逆着跑那条不合群养不熟,四条狗……甭管怎么说,它们的价值也是一条狗乘以四——你听明白了吗?

。。。。。。

许三多不理他,接着说他的“明白”——那条狗要是一会儿顺着跑,一会儿逆着跑就好了。

老马明显是噎了一下:“为……什么?”

“因为……反正在圈里,反正得跑圈,这样有意思一点……”许三多被老马瞪得有些发毛,顺时针逆时针地划着手指,“这样跑不容易晕……跑圈嘛,很容易晕的。”

PHP严格来说不算是一个独立的,功能齐全的编程语言。它本身就是为了快速生成网页而被发明出来的。现在PHP有了很大的发展,但是它的这个出身,其实对他的发展还是有挺大的影响的。比如和java比吧,不够企业化。

比如java有企业级功能,特别是EJB,能够支持非常复杂和健壮的企业级应用,以及比较大的规模的并发系统。

为什么有些程序员看不起PHP这门语言?“规矩”二字你要牢记!

和c/c++比又不够底层,很多底层功能无法支持。

和python,ruby,perl比,又不够脚本,没有unix/linux血统。和go比吧,没有google撑腰。而且说快速生成网页吧,现在大把的语言都支持,就拿java说吧,java还是有企业级的比如JSF支持。而且现在WEB系统都玩的富客户端,js基本上都独立实现很多业务逻辑了,后端已经退化成或者还原其本来面目了。因此PHP的发展和地位可想而知。

总结一下PHP的情况就是生不逢时,没有好爹。

为什么有些程序员看不起PHP这门语言?“规矩”二字你要牢记!

但是PHP的优点也很多,要我说,就是处理字符串很简单,你用过Perl吗?Perl总是要区分标量、数组、哈希,尤其是那个引用规则,加上她OOP里那些个宗教用语,显然PHP相对来说规则要简单太多,不是吗?

为什么有些程序员看不起PHP这门语言?“规矩”二字你要牢记!

PHP早期就带着个基础函数有个大毛病,命名规则不统一加上参数顺序稀里糊涂,很多程序员都有对齐、命名强迫症,会觉得这设计得也太随意了。如果你按用途和添加时间分个类,就会发现也没那么糟了。

其次,神奇的array,老实说我觉得这也许算个优点,搞得我甚至在Java里都习惯一个Map通吃全部结构,并弄了个方法集以便像PHP的array一样随意多层存取而不报异常。这个观点估计会被喷,没错,这就是我要说问题之一。

对于一个已经习惯了在其他语言里区分数组、哈希等的程序员来说,这array是个啥玩意呀,它同时是list/map/set,那么你的同事写的代码传递给你一个array时你也得小心了,两人没讲清楚结构最终可能就要干一架。

为什么有些程序员看不起PHP这门语言?“规矩”二字你要牢记!

然后,错误处理。总的来说他有三套异常方案,返回值、error_handle、try/catch。

返回值本来没什么好说的,但问题是一般比较时void、null、false、0、空串和字串0均表示否,尤其是那个字符串0简直是新手犯错的重灾区。error_handle的问题在于截获的现场不在当下,什么意思呢?当trigger_error后仅仅表示程序有问题、或有要注意的事,在发生的位置,你可以终止也可以继续,所以这根本不像一种异常处理机制,倒更像一个试图统一的运行时日志机制。

还有,全局环境。比如$_GET、$_POST直至$GLOBALS,它太方便(没规矩)了,导致程序员虽然从表面上分了MVC,可是不知道哪层突然想用到一个比如Session里的什么东西,就直接取了——手册就这么教的?!

为什么有些程序员看不起PHP这门语言?“规矩”二字你要牢记!

作为胶水语言PHP挺好,但问题在于早期也就仅限于能做胶水。过去PECL/PEAR收录的还不是很全,或者倒霉催的遇到前同事遗留的不知道啥法子编译安装的PHP时,你想加模块也得跟着编译。这一编译不打紧,在Linux上有非常大的概率遇到依赖问题,一个库要这个版本,另一个库要另一个版本,或者依赖的库又依赖另一个库。当你在你自己的机器上搞得一切顺利的时候,结果上了客户的机器就一箩筐的问题,搞得下不来台。

为什么有些程序员看不起PHP这门语言?“规矩”二字你要牢记!

有时候你也不能批评这个语言不好,因为它只是多做了些封装、多提供了一些可能,这有错吗?你更不能批评人不行,在不同的历史时机使用他的人群也不尽相同。

语言是什么?语言就是交流的规则。但愿随新老交替,能贯彻好规范吧。

了解更多PHP相关知识欢迎来到合肥达内PHP培训,合肥PHP培训班免费训练营正在报名中,北京一线名师入门高薪互联网行业,全程大咖讲师亲授,为你解析行业发展趋势,就业前景,帮你了解技术,轻松入门,更快一步成为技术大牛!在线留言客服即可报名参加。

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!

更多推荐

PHP为什么被看不起,为什么有些程序员看不起PHP这门语言?