设为首页 收藏本站
查看: 750|回复: 0

[经验分享] 为什么说PHP是个集中营

[复制链接]

尚未签到

发表于 2017-3-28 14:11:01 | 显示全部楼层 |阅读模式
  
有一天我跟在DUMBO的一个非常棒的创业公司的老板聊天,谈到为什么非PHP界的开发人员普遍轻视PHP和PHP相关社区。他提出了一个观点让我印象很深,很大程度上是因为以前从来没有听到过这样的说法。
如果你不知道大多数的程序员都会对PHP发什么样的牢骚,那么,这些牢骚差不多会像这样:

  • 语法丑陋
  • 缺乏其它语言都有的一些必要的特征(在5.3版本之前,没有命名空间,闭包)
  • 不一致的函数命名、使用惯例,以及其它一些怪异的东西
  • 过程和面向对象的杂混
  • 基本上80-90%的PHP项目都烂如一堆狗屎
但他所说的PHP的问题却是另外一个问题。他并没有说这种语言有问题——他认为这种语言被一种常见的文化现象包围着,是一种通常由语言的创造者造就的文化传统,现在看来这对一些糟糕的编程实践方法起到了鼓励作用。也就是它使PHP代码变的劣质和不可维护。
这种一个语言或框架上体现出创始人的哲学思想并被相关社区推崇的现象是的确存在的。他拿出来Ruby和其创始人Matz作为例子。Matz想要的是一种易读易写、能提高程序员工作效率的语言。没看见Ruby开发人员们言之必称快速开发以及这种语言的优雅?
接着就是DHH 和他的Rails框架。还有Guido和他的Python语言。于是我在想:Rasmus对于PHP呢?
Rasmus Lerdorf给人的印象非常的有趣。他创建了最初版的PHP语言,而且一直在改进这种语言,他在PHP社区里被当作神一样崇拜,他在PHP的任何方面都享有最大的权威。他被众多的会议邀请去做演讲,同时被大网络公司所雇用,他获得了所有人的尊敬——尽管有这样一种事实:他成了大多数的非PHP程序员所鄙视的PHP上的众多问题的形象代表。
Rasmus倡导避免使用框架,而把PHP更多的当作一种模板语言。对他来说,这种做法能产生直接的运行效率和可扩展性(程序负载可知)。而对于其他的所有人来说,这种做法导致了大量的乱炖似的过程式代码,大量的无法维护的项目。自从1995年PHP诞生至今大概10年左右的时间里,所有的PHP项目都是按照这种指导写成的。
与此同时另外一个问题突然的出现了:在PHP5.0之前,PHP的初期,PHP获得了大量的新手的追随。这种语言的入门门槛出奇的低,任何人都可以下载自解压的×AMP Windows程序安装包、在2两分钟内用上这种语言。除此之外,那时在web开发方式上对MVC模式的共识并没有真正的出现。这样一来你可以想象,一群新手和一个缺乏好的开发实践方法的语言组合到一起能创造出什么?一堆无法维护的垃圾。而且整个大环境都是这样。
不要误解我的话——优秀的PHP开发者还是不少的,即使是当时。但是,就像我说的,粗制滥造的菜鸟作品到处都是。当牛仔式无羁的PHP程序员在没有指导原则的情况下聚集到一起开发程序,于是像PHPbb、 PHPNuke以及很多的粗糙的.php3程序包就出现了。但是你能单纯的责怪PHP开发人员吗?不能!其它的web语言巨人,ASP和Perl,同样恶名远扬,同样宣传着一种乱炖式的开发方式。
所以这就是为什么PHP会得到这样的骂名。是因为它的历史流传。大多数已经转向Python,Ruby和Java的当年的PHP开发人员并没有在web上MVC概念兴起时回头去重新思考这种语言。此外,更有一些像”Ruby公子“Zed Shaw抱怨一些程序员的思想”受PHP毒害“这样的露骨的讽刺,像这样的言论在RubyInside上很盛行
PHP是个集中营
但像Zend和CodeIgniter这样的框架的出现把这种语言推向了正确的开发方向上。事实上,它把PHP推向了与Rasmus所希望看到的相反的方向上了。查看一下Zend和CodeIgniter框架,你会发现它们是为数不多的文档写的很好,代码写的很好的程序。
大多数学习了Ruby开发人员同时都要学习Rails和MVC知识;PHP在此之前已经被使用了整整10年。对于那些新手来说可恶的Ruby没有给他们这段时间让他们自由发挥。Rails有现成的标准指导,它的入门门槛相对高很多,通常会把一些缺少经验的开发人员挡在门外。
事实上,PHP应用程序是可以向其它种语言那样写的很好,而且还会具有一定的运行速度上的优势。PHP世界里的MVC风格的开发方法兴起只是在近几年才出现的现象。不得不承认,我们应该感谢Rails带来的这种变化。
那么,PHP如今是个什么样呢?

  • 各种标准(非统一,但大多数项目使用MVC,很少有垃圾般的过程式程序)
  • 很低的入门门槛
  • 速度和可扩展性(在各种脚本语言里PHP应该是最好的)
  • 有一个好的单元测试框架
  • 有最好的各国语言翻译的文档
除此之外,互联网上大多数有影响的网站都使用PHP作为它们后台的语言或工具,诸如Facebook,Digg,维基百科,Wordpress,Drupal等等。我相信,对PHP有一个深入的掌握会使一个程序员打开更多的未知领域的大门。
如果你不赞同上面所说的,请留下评论,或email给我——我想听听你为什么不这么认为。
事实上,我并不是一个PHP迷,我对语言没有感觉。我使用PHP大多是因为——你猜到了——有人愿意付钱给我。所以一切归咎于此:
如果你希望在软件设计上做出明智的决定,PHP是你开发web应用程序的最佳选择。


顺便说一下,如果你确信要使用PHP来开发下一个web应用,请试一试CodeIgniter。它是一个轻量级的,普通的,超级快的PHP框架。对于CodeIgniter,我是个粉丝。
 
:)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356593-1-1.html 上篇帖子: [转]OOP的PHP长啥样 下篇帖子: PHP页面3中跳转方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表