标签: 2025-11-14 次
巨人的碰撞:Airbnb和Basecamp与Facebook和Yahoo!前两者是用Ruby on Rails构建的,后者是用PHP构建的。但是谁是谁非呢?你站在哪一边?

现在,让我们为我们的主题带来更多背景信息。Ruby on Rails、Ruby、PHP……对于不太熟悉的人来说,这些差异有点模糊。但让我为你澄清一下:PHP是一种编程语言,而Ruby on Rails只是建立在Ruby语言之上的一个框架。就是这样简单。
但是,是什么让人们在这个话题上如此困惑呢?首先,Rails 可能只是一套框架,但它正是让 Ruby 受欢迎和强大的原因。当然也有一些替代品,比如 Sinatra、Cuba 或 Padrino,但它们很少被使用,并且在大兄弟的阴影下逐渐消失。
Rails 仍然是使用Ruby进行网页开发的主要核心,并且在未来几年内似乎看不到这种情况会改变。
PHP 另一方面,伴随着许多广泛使用的框架 - Laravel,Zend,Symfony 等等,这些框架鼓励创作者在市场中与其他竞争。
因此,要开始比较,首先应该仔细查看这些技术的主要核心和根源:PHP 和 Ruby 本身。
目录:
1. Ruby 与 PHP:优点与缺点
2. 红宝石和PHP背后:框架、性能、工具和支持
3. 用PHP或Ruby开发的世界知名应用程序
4. 结论
它们都出现在90年代中期。PHP(超文本处理器)令人惊讶地迅速获得了人气,成为很长一段时间内网页开发的首选方式。它被设计成一种通用的脚本语言,具有灵活、快速和务实的特点。
Ruby 从另一方面来看,是为更通用的目的而设计的,注重简单性、生产力和优雅。据说阅读Ruby 代码几乎就像在读普通的英语句子。
一开始,它更多用于娱乐或小型项目,而不是正式开发。直到2003年Rails出现,情况才发生了变化, Rails吸引了开发者,因为它提供了新颖、快速和创新的解决方案。
现在,让我们来看看Ruby的优势和劣势。
在Ruby和PHP背后:框架、性能、工具和支持
框架
当然,语言是每个应用程序的核心,但程序员通常是非常懒惰的人,喜欢使用现成的解决方案。为什么要在一个个项目中不断重新发明轮子呢?这就是框架发挥作用的地方。通常认为框架是一组协同工作的包/库或宝石,它们共同作用于提高代码质量、稳定性、开发速度等许多方面。
PHP:
有数百万的开发人员分布在全球各地,拥有不同的原则和理念,PHP 可以为可以使用的大量库和框架感到自豪。唯一的问题是,随着数量的庞大,这些库和框架的质量差异也很大。让我们关注月球的明亮一面:
Symfony - 框架和一组可重用的技术和库。 2015年作为开源项目启动。 旨在加快维护和创建Web应用的速度,并取代重复代码。
Laravel - 于2011年发布,已成为PHP网络开发框架中的领导者。它遵循模型-视图-控制器模式,并基于和同步于Symfony。这种联系可能导致需要在每个版本之间进行大量更改,以跟上Symfony的步伐。这样的更改会花费开发人员大量时间进行调整,并且只是令人恼怒。
CodeIgniter - 以其速度和性能在与其他PHP框架相比时而闻名。简单优雅。
CakePHP - 一个为更快开发而写的框架。基于RoR的概念和原则。
红宝石:
可以高兴地宣布,宝石和框架的整体质量得到了提高,但由于数量问题在PHP中失去了优势。问题是,什么更重要?质量还是数量?国王来了,在几年内有望夺走王位的唯一希望在 rubys 的王国中:
Ruby on Rails - 使Ruby如此受欢迎的框架。广泛应用于初创公司。TheRoR社区多年来一直在网络开发领域引领潮流(如模型-视图-控制器模式或约定优于配置)。虽然2004年正式发布,但实际上始于2003年。
Sinatra - “Sinatra 是一个用 Ruby 语言快速创建网络应用程序的 DSL,只需最少的努力”。如今,Sinatra 可能是 Ruby 社区中最好的 Rails 替代方案,尽管仍然相差甚远。Sinatra 可能是较小应用程序的更好选择。
表现
Ruby 被认为是一种运行速度慢的语言。十多年前,当 Twitter 从 Rails 换到 Scala 时,它被贴上了这样的标签,他们认为 Rails 存在可扩展性问题以及性能本身的问题。
如今,Ruby 已经几乎完全解决了过去的问题。然而,PHP 7 在大多数情况下仍然比 Ruby 快得多。

当涉及到框架时,Laravel 大多数情况下比 Rails 更胜一筹。它可以每秒处理更多的请求。而且在并发处理上通常更高效。问题是,你的项目是否会在某个时刻变得如此繁忙,以至于选择合适的框架会有显著的影响?
在大约95%的情况下,这将没有任何影响,只要你不是每分钟处理数百万次的另一个Twitter或Facebook。
我们还必须记住,开发人员本身对应用程序的速度有很大的影响。不熟练的开发人员,即使使用最快的工具,也会搞砸并使项目变慢,最多可达到100倍。
发展速度
接下来的部分比语言本身更依赖于框架本身,因为这是框架出现的原因之一——自动化和加速整个产品创建过程。
PHP有许多出色的框架,这些框架彼此竞争。另一方面,Ruby 由 Rails 管理,竞争远远落后。因此,为了您的阅读时间和常识,我将比较这两种语言中最受欢迎和最有前途的框架 - Laravel 和 Rails。
Laravel 的开发速度被评价为非常快,但在这个方面,Rails 仍然占据主导地位,就像十年前其他框架一样。Rail 非常专注于尽快交付项目。Rail 仍然是领导者,并且是其他框架应该效仿的榜样。
Laravel 和 Rails 都实现了 scaffolding,即根据一些基本假设和参数自动生成包含可工作代码的文件。这几乎可以瞬间设置项目的框架。因此,RoR 和 Laravel(并非偶然)常用于初创公司和 MVP。
开发人员工具
从这个角度来看,PHP 显然胜出。它具有无情、稳健、高级、轻便快速、开源或企业级的特点,PHP 拥有这一切。PHP 的领域由 Eclipse、NetBeans、phpstorm、Aptana 等许多 IDE 组成,具体取决于项目的复杂程度,这些 IDE 都可能派上用场。
多年来,PHP社区得到了许多公司的支持,从而产生了大量的专业工具。Ruby on Rails 由于不那么受欢迎且依赖于开源和社区,缺乏工具和商业支持。它通过许多帮助代码生成和部署自动化的 gem 来应对这一问题。
支持与学习
对于许多开发者来说,Ruby 通常比 PHP 更难学习。许多开发者学习的第一种网页语言是 PHP,而那些有更多经验并希望学习新语言的人通常会选择 Rails。
掌握PHP需要更少的努力,但Ruby提供了更好的代码质量和为实验留下了开放的门。在几乎所有情况下,转换(如果有的话)都是从一个PHP开发者到一个Ruby 开发人员, 而不是反过来。
至于支持,PHP拥有一个更大得多的社区和更广泛的技术和库,而Ruby似乎有更多的忠实粉丝,主要集中在 Rails 上。由于代码可读性,Ruby 的 gems 和框架大多是自文档的,而 PHP 的软件包则需要额外的解释。
对于这两种语言,都有大量的文档和教程介绍如何开发,这些文档和教程在不断增加。同样的情况也适用于Laravel和Rails,其中前者拥有增长最快的社区之一。它们在社区框架中分别被评为第二和第三最开发。GitHub。
世界知名的应用程序使用PHP或Ruby开发
PHP - 根据w3techs.com,现在大约80%的网页都是用PHP制作的。PHP远远超过了竞争对手,这主要归功于像WordPress、Joomla、Drupal等网页创建者。我们也必须记住,网页应用程序可以同时使用多种语言进行制作。
脸书
这个不需要描述。世界最大的社交网络,也是第三大最受欢迎的网站(仅次于YouTube和Google),已经征服了全世界,把竞争对手远远甩在后面。
雅虎!
搜索引擎网站,每月有大约6.27亿个独立用户使用。大部分是由PHP语言构建的。
维基百科
世界上最大的多语言百科全书。它对志愿者免费开放使用、编辑和贡献。
弗里克
最成功的图片托管平台之一。正如Flickr网站上所述:“拥有数十亿张照片和200万个群组。”
WordPress
最受欢迎的内容管理系统(CMS)。它是免费和开源的。主要用于博客创建,但功能远不止这些。
PHP 可能有更多的网站,但根据 w3techs.com,Ruby 的增长速度最快。

爱彼迎
住宿 - 分享网站,拥有1.5亿用户(包括64万房东)
Shopify
顶级电子商务平台,帮助 businesses 开始、运营和成长。600,000+ 商家和 1.2百万+ 活跃用户。
基地营地
Rails 的根源和起源,仍然在社区中引领潮流。它将团队高效工作所需的一切都集成到一个工具中。电子邮件、聊天记录、文档、想法、计划全部合并在一起,以提高性能。Basecamp 大约有 300 万人使用它作为项目管理工具。
结论
Rails 和 Laravel 都是令人惊叹的框架。它们有很多共同之处——核心原则、专业的社区、快速开发。真正的区别在于它们增强的语言——PHP 和 Ruby。
这由你决定,你会选择哪一个来为项目服务。在生产力/时间方面,找到比 Rails 更好的解决方案很难,尤其是对于初创公司或 MVP,但请记住,Laravel 也是个值得较量的年轻对手。
绝对真理是:没有任何语言或框架能够弥补糟糕的编程和架构决策,因此,请确保选择你能找到的最佳团队!一个技术娴熟的程序员能够在任何框架/语言下开发高质量的产品,因为核心原则是一样的。
想想看——真正的熟练伐木工只用斧头就能比一个拿着顶级电锯的新手更高效地砍更多的树,并预测每棵树倒下的后果,而新手只是想尽快完成(在这种情况下,忽略明显的安全问题,并假设这个新手甚至知道如何使用电锯)。