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

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

。。。。。。

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

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

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

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这门语言?相关推荐

  1. 程序员如何选择第二门语言

    多人爱争论第一门程序语言该学什么.每个人的出发点不同,有人认为,第一门语言应当是有趣.无进入门坎:有人则认为,第一门语言影响往后程序开发的思考方式,要严谨而富有思考性:有人以实用为出发点,认为视(将来 ...

  2. 为什么大部分程序员看不起PHP这门语言?

    为什么大部分程序员看不起PHP这门语言? 原因很简单,人的追求都是不一样的: 1. 有些程序员以拥有多少 IT 工具和知晓多少专业梗为乐,PHP 这门语言,主要适用在中并发以下的 web 项目快速开发 ...

  3. 为什么每个程序员都应该学习C语言?

    为什么每个程序员都应该学习C语言? 每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了.除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识.它能给我们提 ...

  4. 程序员成长之旅——C语言三子棋

    程序员成长之旅--C语言三子棋 简易介绍三子棋 三子棋编程过程 三子棋代码总览 game.h game.c test.c 简易介绍三子棋 进行了这么多天的c语言学习,今天给大家讲一下三子棋是如何用c语 ...

  5. 程序员必须要掌握哪些语言

    随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随之带来的变化就是程序员需要跟进学习的语言也很多.但是语言这么多不可能都去一一掌握,在当前形式下,最需要掌握的三种编程语言.评判的标准是不过 ...

  6. 学了java有必要学c语言吗_程序员有必要学习C语言吗?这几点原因很现实

    原标题:程序员有必要学习C语言吗?这几点原因很现实 C语言是编程语言中的一种,有不少程序员会有这样的疑问?难道做程序员就必须要学习C语言吗?甚至有人觉得,我平时的工作中也用不到C语言我为什么要学习呢? ...

  7. 程序员看不起事业单位员工:一年收入才4万?网友:40岁再比一比,究竟谁更牛逼!!

    在职场中很多人会不自觉地进行攀比,特别是工资究竟是谁的多,谁的少这是免不了的一件事情. 就在最近,有一位程序员和自己得同学比较了一下工资,他是这么说的:事业单位里的一个同学,工作三年了,现在一年的收入 ...

  8. Java开发四年的程序员想再学习一门语言,该选着C还是Python呢?

    首先,对于已经从事Java开发工作四年的同学来说,如果想再开一门编程语言,应该结合自己的发展规划来选择C或者是Python,如果未来想进入大数据.人工智能领域发展,选择Python会更方便一些,而且P ...

  9. 能让你成为更优秀程序员的10个C语言资源

    本文由 伯乐在线 - archychu 翻译自 mycplus.欢迎加入 技术翻译小组.转载请参见文章末尾处的要求. 一些人觉得编程无聊,一些人觉得它很好玩.但每个程序员都必须紧跟编程语言的潮流.大多 ...

最新文章

  1. 独家专访:SequoiaDB 3.0 版本正式发布!协议级完整兼容MySQL!
  2. Python中的测试工具
  3. inodemac_校园网客户端Mac版-Inode7.0 for mac下载 V7.0-PC6苹果网
  4. 【Qt】QModbusRtuSerialMaster类
  5. 数据库系统原理笔记:关系数据库设计
  6. 循环删除list中多个元素
  7. PASS云计算书简介——接近完美的模式
  8. 安卓抓包,为何总是 Tunnel to?
  9. windows server 2008下载及序列号
  10. Aquatone -- 子域名探测
  11. 一点点读懂regulator(四)
  12. 网站标题关键词SEO优化技巧
  13. poj2528 贴海报
  14. BZOJ4480:快乐的jyy(回文自动机)
  15. echart 热搜词云(字符云)的制作以及遇到颜色不会随即变得bug
  16. 曲速未来 发布:新基建下,区块链将急速发展
  17. Python的容器:列表、元组、字典与集合
  18. Win10 蓝牙已配对但无法连接的问题
  19. Weblogic报错BEA-141281
  20. linux系统下制作启动u盘,制作Linux系统启动盘的四种简便方法

热门文章

  1. OrCAD中编辑元件属性时元件白色区域位号与黄色区域位号不一样的解决办法
  2. 百度地图多边形覆盖物,可自定义颜色、个数,并获取坐标。
  3. SwiftUI——如何调用相机
  4. NDI Tools使用介绍
  5. mybatis中关于日期类型问题汇总
  6. 重装win10系统后linux系统还在吗,重装Win10纯净版系统后ubuntu启动消失了怎么找回...
  7. fsu动环监控系统九大功能
  8. Jupyter使用详解
  9. FAST-LIO论文解读与详细公式推导
  10. ArcGIS license server administrator无法启动问题