【问题标题】:What are main advantages of RUBY and RAILS to PHP and CODEIGNITERRUBY 和 RAILS 对 PHP 和 CODEIGNITER 的主要优势是什么
【发布时间】:2010-10-25 20:50:20
【问题描述】:

我们即将启动一个新的 Web2/AJAX 应用程序,并试图确定是否值得花时间和精力学习 Ruby/RubyOnRails,而不是我们目前使用的 PHP、CodeIgnitor 和 JQuery。

关键问题是干净/快速/现代的 AJAX UI、强大的错误处理和可维护性。

我会感谢经验丰富的 PHP 和 RUBY 开发人员提供公正的(如果那是所有可能的谈话语言/框架)cmets。

【问题讨论】:

标签: php jquery ruby-on-rails ruby


【解决方案1】:

我不能对 Ruby 说太多,但我可以说我经常觉得 PHP 名声不好。 PHP 是你做的。是的,那里有很多糟糕的 PHP 代码,但你知道,它主要是由那些会编写糟糕的 Ruby 或糟糕的 Python 的人编写的。 PHP 拥有如此广泛的受众,各种能力的程序员都在使用它,其中许多人编写的程序很糟糕。

也就是说,你可以用 PHP 编写好的程序。你有优秀的开发人员吗?如果是这样,您当然可以用 PHP 编写好的代码。

【讨论】:

  • 他们可能写过糟糕的 Ruby 或 Python,但 PHP 似乎比这两种语言更容易自爆。
  • 你当然可以,但它不太可能造成这么大的混乱(类似于你在 Ruby 中的段错误,但它比 C 中的可能性小)。举一个重要的例子,将所有业务逻辑放在视图中并不是 Ruby Web 应用程序的默认状态。
  • php 也缺少诸如闭包之类的东西。是的,很多人用php写过不好的代码,但是php也鼓励了很多坏习惯,语言也有一些问题
【解决方案2】:

PHP 的名声很糟糕,因为它易于访问。任何人都可以开始编写 PHP,而且现在大多数托管解决方案都提供 PHP,因此有很多非程序员类型的人使用 PHP 编写程序。这些程序缺乏适当的计算机科学学科。

随着 PHP 开始采用现代语言特性,PHP 社区内有一个非常广泛的运动,即朝着可读、格式良好的代码发展。随着 PHP5 的出现,OOP 成为了现实,随之而来的是关于 OOP 最佳实践和开发模式的书籍和材料的爆炸式增长。虽然 PHP 经常用于编写格式错误、草率的意大利面条代码,但其语言工具允许开发人员在 MVC、OOP 和 TDD 等开发范式中进行编程。

更不用说,PEAR 大大提高了社区脚本的质量和可访问性。 PHP 最强大的资产是它的社区,而且它一直在变得更强大、更自律。在许多方面,PHP 与 JavaScript 非常相似——它有一个非常草率的开端,开发人员和社区一直试图从中恢复。 JavaScript 是一门非常草率的语言,但该语言有一些极其强大的部分在 Ajax 和交互式 Web 应用程序时代为其带来了当之无愧的尊重。

像 Ruby 和 Python 这样的语言充满了面向计算机程序员的东西。如果您雇用 Python 或 Ruby 程序员,仅仅因为程序员了解这种语言,他们喜欢干净、组织良好的代码的可能性要比 PHP 开发人员高很多倍。这是这些语言文化的一部分,也是传播这些语言的人。

在我看来,Ruby 或 Ruby on Rails 本质上没有什么比这更好的了。 Rails 是第一个主流 MVC 开发框架,但它的流行和成功促进了可以想象的每种语言的类似框架的开发。选择用 Ruby 编写 Rails 并不意味着 Ruby 比 PHP 更好,许多人可能会争论。考虑到编写 Rails 的时间以及 37signals 对晦涩的事物的迷恋,我可以完全理解这一举​​动。当时,Web 脚本语言相当蹩脚,37signals 正在寻找一种更能满足应用程序员而非脚本编写者需求的语言。

您不会因为使用 Zend Framework、CakePHP 或 symfony 等 PHP 框架而受阻。 CakePHP 和 symfony 都直接仿照 Rails,即使它们不是直接移植。 Akelos 是 Rails 到 PHP 的实际端口。 Zend Framework 是迄今为止我使用过的功能最齐全的框架。不要害怕尝试,但没有必要跳船到一个完全不同的平台,也不会改变您开展业务的方式。不同的方言是同一业务。

【讨论】:

  • “Ruby 天生就没有什么比这更好的了” 我认为 Ruby 有很多天生更好的东西。一个例子是闭包。 “选择用 Ruby 编写 Rails 并不意味着 Ruby 比 PHP 更好,这点很多人可能会争论。”我不确定你是否知道这一点,但 DHH 开始用 php 编写 Rails 并放弃了,因为它更比用红宝石做的更痛苦。这说明了很多。
  • 是的,我确实读过。 Rails 于 2004 年发布,是从 Basecamp 代码库中提取的,该代码库在此之前已经开发了一段时间。在 2004 年之前,PHP 仍然是第 4 版,并且明显不如 Ruby 强大。显然,PHP 仍然无法与 Ruby 相提并论,但从那时起该语言已经取得了长足的进步。
  • 感谢 cmets 的帮助。是的,我们有优秀的开发人员和流程,即。版本控制、单元测试、评论等,对 CodeIgnitor 和 JQuery 提供的优势感到满意,所以现在觉得这对我们来说已经足够好了。我们仍然希望在以后探索 RoR(和/或 Python+Gears),并将在这里与其他人分享我们的发现。谢谢大家。
【解决方案3】:

一门语言最重要的特点是你喜欢使用它的程度。如果你喜欢你使用的语言,你的生活不仅会更好,你会写出更好的代码并提高生产力。当然,这完全是主观的;然而,我从来没有听过任何一流的程序员谈论他们有多喜欢 PHP。

当然,要达到一种语言/框架组合的流利程度,您真的知道它是否会浮出水面,这需要大量的时间投入。在我看来,你花费的时间会让你成为一个更好的程序员,即使你最终决定你更喜欢不同的工具,所以,去吧!

【讨论】:

    【解决方案4】:

    我认为这与语言无关,而与社区中使用的学科有关。如果您是 PHP 开发人员,不对其代码进行单元或功能测试,那么没人会在意。有很多这样的 PHP 开发人员。如果您是 Rails 开发人员并且没有自动测试您的代码,那么您很奇怪,您一定是出了问题。

    Ruby on Rails 在我看来不仅仅是一个框架,而是社区附带的所有工具。建议您使用某种半自动部署工具,例如 Capistrano。如果你不是,你又是奇怪的。以此类推。

    我同意 dicroce 的观点,即您可以使用两种语言/框架进行射击。你可以使用 PHP 并尝试使用一些最初用于 Rails 的工具,我相信你会得到很好的结果。

    【讨论】:

    • 谢谢,根据对 Andrew 的评论,我们会这样做,再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2019-11-24
    • 2011-01-07
    • 1970-01-01
    • 2023-04-10
    • 2012-09-04
    相关资源
    最近更新 更多