PHP 是不是被 Ruby on Rails 带上了邪路?

很早以前就想说说这个问题,在知乎里忍了很久,看了很多大神们的文字,终于忍不住把它提出来。。。

背景大家都知道,不多说了,开始是Ruby on Rails挑战PHP,现在几乎各种大点的PHP框架都在一个劲模仿Ruby on Rails。。。最厉害的就是CakePHP了。

然而很多制作大型框架的大神们貌似都忘记了PHP简单易用的本质,PHP不是Java,把一些东西封装得太厉害,感觉是弄巧成拙!

php 开发团队缺少一位象DHH那样有想法的领袖。从5开始逐渐偏向java,看来php核心团队对“PHP不适合企业级开发”耿耿于怀。简单易用、适合新手的 特性也逐渐丢弃。流行的php框架也都没有自己的设计思想,要么学spring,要么django,更多的是学rails,说到底,php并没有出现优秀 的框架。

说php被rails带上邪路我不太赞同,rails之所以优秀,得益于dhh提出的一些设计思想,比如dry,比如约定优先于配置。还有大量的最佳实践。php框架应该学习的是他的思想,而不是表面的东西。应该说是开发者被那些五花八门框架带上了邪路,

PHP 是不是被 Ruby on Rails 带上了邪路?0

Rails是刺激了PHP,

也有一半部分原CakePHP开发人员感觉是CakePHP不是很符合PHP,所以重开了一个Lithium PHP框架,

比起Zend,Symfony这些(个人觉得zend有太重的Java味道, 至于Symfony的函数名是不是obj-c味,CakePHP是不是rails味,Yii是不是.net味倒是不清楚了)“大型” 框架,Li3很不错

拿 官方的Zend Framework来说,我感觉它更像一个啥代码生成器,好多故弄玄虚的东西。用Zend Framework的时候,我感觉不是在编写一个网站而是感觉在用Java或是C#编写一个软件。完全没有PHP那种感觉。比起Zend Framework,Symfony做得有过之而无不及。就像Android在Linux上面自己做一个层一样,这些框架貌似想在PHP基础上自己再搞个 层出来。PHP本来是一种非常高级的语言,这些框架却有把它变成底层语言的意思。

所以我更喜欢使用一些更轻量级的东西,比如ThinkPHP、CodeIgniter之类的东西。。。

——————-

我承认PHP不太适合大型项目,大型项目你用Java啊!何必勉强PHP呢?听说Twitter不是也考虑放弃Ruby on Rails而改用Java了么。。。

希望听听大家的语言。。。

之前大学的时候玩过php,一开始工作用java,然后创业用rails。自己本身各种语言都玩。玩过这么多语言,觉得还是算比较全面的分析一下:

欢迎拍砖。

  1. 严谨性。 很难写出没有bug的代码,PHP本身是一门hack语言,各种打补丁的方式来扩展自己。
  2. 生 态圈 。 php社区的投资或者积累都在web这块。PHP非常适合变化很快的web产品的开发。> ( @Allen )本身的优势就在于生成页面。但是在于事务,数学计算,安全等领域,PHP的积累都不足以支撑其在企业领域的应用。 php 开发团队缺少一位象DHH那样有想法的领袖。rails各种web的最佳实践(pjax,scss,coffee)甩开php几条街
  3. 应用场景 php更多的是前端,在后端,桌面端,移动端基本上没有任何的市场。
  4. 与其他平台系统的 互操作性(web service) 。企业老的系统通过webservice 进行交互,java,.net 都有成熟的解决方案。
  5. 版本演进。 php6一而再再而三被延迟发布。
  6. 语言被创造时候的基因。 >(php — 超文本预处理器的字母缩写)(感谢@张画虫),显然主要是为了网页而生,当然这个历史很久了,不过从历史可以看出某些语言设计的初衷,而这些都会成为语言的基因,会随着语言的发展一直继承下来
  7. 维护成本因为蕴含了太多的hack,太多的全局函数,魔术变量,各种不统一,维护成本非常高

php语言本身的特性不足一支撑一个框架所要表达的思想,导致的结果就是各种框架满天飞,质量参差不齐。

> ( 借用 @王小一 的话 )拿官方的Zend Framework来说,我感觉它更像一个啥代码生成器,好多故弄玄虚的东西。用Zend Framework的时候,我感觉不是在编写一个网站而是感觉在用Java或是C#编写一个软件。完全没有PHP那种感觉。比起Zend Framework,Symfony做得有过之而无不及。就像Android在Linux上面自己做一个层一样,这些框架貌似想在PHP基础上自己再搞个 层出来。PHP本来是一种非常高级的语言,这些框架却有把它变成底层语言的意思。

你也许感兴趣的:

共有 2 条讨论

  1. 只是想问下,这个篇文章是什么时间写的

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注