将Rails与PHP比较为非技术受众

时间:2009-05-08 22:48:16

标签: php ruby-on-rails zend-framework

我最近在一家小公司接受采访,希望大大增加其网站,包括重新编写Flash主页和开设电子商务网站。如果获得该职位,我将成为员工的唯一开发人员。

我已经使用Rails多年了,并且在很长一段时间内都没有看过PHP。但是,如果我要获得这份工作,我就可以推荐这个框架,因为没有任何精通发展的人员。

我认为对于许多非程序员而言,PHP仍然具有巨大的名称识别作为构建网站的语言,因此它对许多公司来说都是逻辑默认。

如果我获得了这份工作,我怎么能在不进入技术术语的情况下比较Rails与PHP(使用适当的框架)的优缺点?这里的一个关键考虑因素是该领域的LAMP开发人员可能比Rails开发人员多得多,而且我不希望自己的个人偏好影响代码库的长期可持续性。

或者我应该接受一个PHP / Zend网站和Rails网站一样好,即使开发起来不那么有趣?

(请不要宗教论点!)

5 个答案:

答案 0 :(得分:20)

我要说的第一件事就是(imho)你的方法是错误的,因为你已经开始得出结论(“我想在Rails中做到这一点”),你现在正在寻找理由。

更糟糕的是,这种态度与疏忽有关,因为你有一个道德的,如果不是法律责任照顾你的客户,这是他们的首要问题,而不是你的。

同样的问题出现在Continue a Classic ASP site or insist a language change?

这里要说的一点是,使用Rails(通常意味着Ruby on Rails,尽管它可能是Groovy等),你将框架与语言(PHP)进行比较。有很多 PHP框架,所以如果你将Ruby on Rails与PHP +一些你同样熟悉的框架或框架进行比较,那么很多编码速度的问题如果不完全消失就会减少。

根据经验,我可以告诉您,非技术用户会关注以下部分或全部内容:

  1. 开发成本;
  2. 托管费用;
  3. 外观和感觉;
  4. 网站功能;
  5. 能够找到开发人员;
  6. 稳定性;
  7. 现有功能;和
  8. 风险。
  9. (1)是值得商榷的。如果你正在以Ruby的方式做事,那么Ruby on Rails可能会非常快,但如果要求迫使你退出预订,那么它可能变得非常困难。有趣的是,微软的堆栈往往以相同的方式工作(尽管他们通常有更大的保留来进一步扩展这个比喻)。

    这出现在7 reasons I switched back to PHP after 2 years on Rails。同意或不同意,这类帖子会提出您至少需要考虑和/或解决的问题。

    (2)我认为是PHP的胜利。 PHP共享主机非常便宜,但其中并不多。如果该网站将获得适量的流量或存在重大的安全问题,您将最终在网站上托管它或使用某种形式的VPS或专用托管,此时问题就会变得清晰。

    (3)并没有那么不同。 Ruby是倾斜的两个Prototype(正在集成)之类,而PHP对任何Javascript框架(它有优点和缺点)更开放,并且两者都可以在HTML和CSS中做任何事情。

    同样适用于(4)。在一个你无法做到的事情中你无能为力。

    (5)是PHP的明确胜利。您可能不会雇用数百名开发人员,但如果您继续或被替换,那么很容易找到其他具有相关经验的人对非技术人员非常重要(并且应该对技术人员很重要)人们也是。)

    (6)是PHP的感知或真正的胜利。我的意思是Ruby on Rails - 至少在我的经验中 - 以不稳定和/或浪费资源而闻名。例如Zed Shaw臭名昭着Rails Is A Ghetto咆哮的帖子就是一个例证。这显然是一种咆哮,但也有一些有效的观点。

    (7)是一个有趣的。 Rails强制要求(或者更确切地说是“是”)ORM框架,就像许多ORM框架一样,它们在处理“遗留”数据时可能会遇到实际问题。我把它放在引号中,因为ORM有一种令人讨厌的习惯,就是宣称任何事情都不像“传统”那样(例如复合键)。

    如果你完全控制了这个站点上的数据模型并且没有现成的数据模型可以支持那么这个问题可能是Rails的一个胜利,但你拥有的约束越多,这将是PHP轻量级的胜利(通常原始SQL)方法。

    您可能需要查看Using an ORM or plain SQL?

    (8)真正总结了以上所有内容。该公司将非常关注最终结果的可预测性,并且更可预测,不那么性感的最终结果将经常胜出。

    我要说的最后一件事是,如果你有Rails和PHP经验(你似乎),你需要问一下Rails的(非技术)优点是什么,你需要重新检查一下你在做什么以及你为什么要这样做。

答案 1 :(得分:12)

我不认为Rails比PHP或类似的东西更好,因为对于这些人他们并不真正关心。他们关心的是:

  1. 他们得到了一个好的网站(因此,使用Rails,因为你用它更好),和
  2. 它不会成为维护的负担(因此,使用PHP因为它更容易找到程序员)
  3. 让他们知道这些事实,然后按照这些思路来论证你的观点。另外值得一提的是,Rails是一个不断发展的社区(如果我相信博客......),随着时间的推移,开发人员的可用性会越来越好。

答案 2 :(得分:3)

假设一个人的团队足以应对不太遥远的未来,并且你不打算在那个时间离开公司,那么这个论点很简单:

Rails可以在更短的时间内为您提供稳定的网站(因为您有经验,如果没有其他原因),这意味着公司可以更快地获得更多收入。如果他们最终确实需要聘请另一位开发人员,那么找到/雇用具有Rails经验的人的成本增加(如果确实有的话)是合理的。

但是我确实认为Rails可以加快开发速度,减少错误,提高扩展性,并使代码库更易于维护。这意味着公司实际上现在和将来都会节省开发时间和金钱。

  
    

即使开发没那么有趣吗?

  

我坦率地说:你喜欢使用Rails。一个快乐的员工会更富有成效。

答案 3 :(得分:1)

我不认为品牌很重要。如果该站点是最好用PHP完成的,那么没有任何支持rails的论据看起来会很好。如果站点最好在rails(或django)中完成,那么这应该是显而易见的。

如果你是一个单人团队,我只需要在rails中构建它,因为你是开发人员,这就是你所知道的。即使是非技术人员也应该看到雇用一个rails开发人员来构建纯PHP的网站真是太愚蠢了。

答案 4 :(得分:-3)

为了制作rails的情况,我只会向他们展示Zend的配置页面。