PHP与Ruby on Rails两大阵营均拥有大量各自的忠实粉丝。拿二者做比较,自己就是难以取舍。不管谁赢了,都会引来对方粉丝的口水。受此影响,在二者选其一这个问题上,开发者一般会显得犹豫不决。这篇文章的出发点虽然是比较,但并非一边倒式地唱盛唱衰,而是辩证式的综合对比。没有好坏,适合本身的才是最好的。数据库
实际上,拿PHP与Ruby on Rails比较是个伪命题,是不公平的。相比于Ruby on Rails语言加框架的完整性,PHP仅是一门编程语言。你看,PHP已经输在起跑线上了。但PHP拥有四两拨千斤式的轻巧与灵活,这就意味着它消耗极少的内存资源,性能卓越。另外一方面,PHP社区是成熟的、稳定的,各类PHP扩展插件与工具包百花齐放,百家争鸣。如此看来,PHP又扳回了一成。编程
PHP具备性能高、插件多的优点,并不意味着它没有缺点。PHP语法源自脚本风格,却加入面向对象特性,这种画虎不成反类犬的不三不四,饱受诟病。这也许能够成为Ruby on Rails粉丝攻击的软肋。另外一方面,如前所述,PHP做为单一编程语言,不具有Ruby on Rails的框架特性。这就意味着,除非借助插件与工具,单靠PHP从零开始开发应用程序,须要很是高的编程成本。好比,为取得与数据库的链接,你不得不从头开始写一个数据库链接器API。但有时候,缺点其实也是优势。不一样于Ruby on Rails,受限于自身的框架,PHP则能够灵活自如的选择成熟稳定的第三方插件与工具。这就比如说,单身的同志也大可没必要太羡慕成双成对的鸳鸯,由于没有选择每每意味更多的选择。不一样的是,爱情鼓励专注,而“脚踏几只船”是PHP的卖点,开发人员能够同时选择不一样的框架,实现与各类单一功能特性的最佳匹配。在这一点上,对于没有选择的Ruby on Rails来讲,只有羡慕的份儿了。正因如此,相对于PHP开放性地支持第三方插件而言,Ruby on Rails天生的封闭特性,无可避免地要面临性能换取功能的挑战。每当遇到没法知足业务程序需求的时候,就意味着Ruby on Rails须要更多的研发成本投入。这绝对是一大利空。session
刚才强调了PHP的不少优点,若是就此打住,相信会招来Ruby on Rails粉丝的无数口水。是时候该替这个后起之秀说说话了。Ruby on Rails做为一个框架,是专为Ruby这门编程语言设计的。Ruby的设计理念很清晰,就是彻底的面向对象,语法很是紧凑,清晰,代价是损失必定的灵活性。从编程语言的性能对比来看,Ruby一般会比PHP慢,耗用更多内存。不过,Rails框架能帮助Ruby快速开发出Web应用程序,算是一种弥补吧。这是一个典型的功能换性能的例子。做为一个Web框架,Rails具备许多很是多很是棒的特性。好比,Rails的ActiveRecord特性能支持数据库表记录与Ruby对象的映射,带来的好处是,Rails帮助开发人员隐藏繁琐的SQL细节,直接使用Ruby就轻松实现对数据库的增删改查。换句话说,Ruby开发人员无需依赖SQL,照样玩转足浴粉数据库。另外,Rails支持不少的HTML特性,好比HTML代码生成器,session机制等,能够更加轻松便捷地构建Web应用。这也以为是一大利好。框架
Rails众多强大的特性,从另外一个角度来讲,也是一个弊病。好比,Rails虽然屏蔽SQL,同时也意味着Ruby开发人员失去了直接操控SQL的机会。功能多也未必全是须要的。这样看来,鱼和熊掌,真是不可兼得。编程语言
说了这么多,到底谁赢谁输呢?仍是那句话,没有谁好谁坏,只有谁更适合。选择本身熟悉的领域始终是没错的。从我的的感受来讲,仍是偏好PHP。第一,PHP先入为主,大量的网站采用的都是PHP,尤为是论坛。起码PHP提供的工做机会更多一些吧。第二,Rails提供的不少特性,其实PHP都具有,重复发明轮子是不鼓励、不推荐的。最后,PHP是轻巧、灵活的,快速的,很符合乒乓球式的小、快、灵特色。若是不须要框架的辅助,PHP自己其实就够了,若是须要,以此提升开发效率,也很容易集成现有各类成熟、稳定的插件与工具。基于这三点,即使Ruby on Rails具备不少优势,我的仍是把奖颁给了PHP。工具