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需要更多的研发成本投入。这绝对是一大利空。
刚才强调了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。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
PHP终于迎来了自己的正式语言规范
尽管PHP脚本语言早在1995年左右就已经诞生并在Web开发领域占据着重要地位,但其一直没有自己的正式语言规范——只提供广泛的用户说明文档。
-
通过四种方式让PHP编码变得更轻松
尽管已经目前PHP语言已经建立起属于自己的软件文化,但要找到它令人抓狂的弊端也绝对不是难事。我们曾经在之前的文章中列出过该语言最让开发人员难以接受的十二大糟糕特性。
-
排名前八的PHP调试工具你认可吗?
Web开发并不是一项轻松的任务,有超级多服务端脚本语言提供给开发者,但是当前 PHP 因为具有额外的一些强大的功能而越来越流行。
-
2014年web开发者应该学习的技术盘点
web开发行业发展迅速,每天总有新的技术、框架、语言或技术方法诞生,对大部分人来说都喜欢学习“所有东西”,但这不符合实际!所以,在2014年,作为Web开发者应该学习什么呢?