首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和Ruby:如何将两者结合起来?值得吗?

PHP和Ruby:如何将两者结合起来?值得吗?
EN

Software Engineering用户
提问于 2011-06-18 03:37:53
回答 3查看 1.4K关注 0票数 8

正如您可能从标题中注意到的,这不是"PHP或Ruby",也不是"PHP与Ruby“的问题。这是一个关于如何在同一业务中利用PHP + Ruby的问题。

我本人是一名PHP开发人员,我喜欢这种语言,因为它很方便,而且我特别喜欢它周围的资源生态系统: Joomla、Drupal、Wordpress、Symfony2、Doctrine2等等。然而,语言本身有时会有点令人失望。

OTOH,Ruby看起来是一种非常漂亮的语言,-from从几个方面对它进行了肤浅的研究--我可以说它比Python作为一种语言本身更简洁。然而,据我所见,几乎只有RoR制造噪音,而且我不太喜欢RoR (主要是因为它的模型层)。

作为我公司的联合首席执行官和首席技术官,我正试图跳出框框,因为我想开始专注于技术的人性化方面,看看使用PHP和Ruby是否明智。以下是一些随机的想法:

  • Ruby folk似乎通常比PHP更适合程序员(就平均水平而言),我知道前面的说法有点胡说八道,因为可以编写非常好的、架构良好的PHP,但我要说Ruby程序员文化比PHP的更好。
  • Ruby的特点是它似乎更适合于快速开发,我不知道是否只适用于RoR,但我确实知道有些实践(可能不是很好),比如猴子补丁,可以让业务更快地满足需求。
  • 从市场营销的角度来看(是的,有时候为了公司的利益,你需要利用市场营销BS ),Ruby似乎更好,而PHP则带有一些污点。
  • PHP5.4带来了特征,这比mixins更好/更干净。这确实会使PHP变得像Ruby一样瘦--对于某些特定的东西。

具体而言,我的问题是:

  • PHP程序员会想学习Ruby吗?我知道我想学习Ruby,但是反过来,Ruby程序员会想学习PHP吗?
  • 哪些类型的项目或情况更适合Ruby,而不适合PHP?
  • Ruby的实际生态系统是什么?除了RoR之外,我还没有见过其他被炒作的技术/框架(我见过RSpec,但我承认我对BDD的真正组成及其含义完全不了解)。
  • 如果有某种类型的项目是Ruby理想的,那么将其移到PHP是否会更好呢?我知道PHP可以处理很多东西,但是我读到过Ruby在缩放时有其局限性(或者是RoR?还是两者都是胡说八道?)
  • 最后,也是最重要的一点是,用两种语言维护项目是明智的吗?还是说这很愚蠢。正如我所说的,看起来Ruby在短期内更精简,这可以使项目实现并取得成功,但从长远来看,我对此不太确定。

我主要是从熟悉-preferably语言的优点和弱点的人那里寻找洞察力,这两种语言--以及它们在实际实践中的生态系统--意味着:框架和应用程序,就像我引用的那些来自PHP生态系统的框架和应用程序。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2011-06-18 06:21:28

请记住,在阅读我的答案时,我的PHP经验(> 10年)要比我的Ruby经验高得多(花几周时间玩它,还没有一个活项目)。

PHP程序员想学习Ruby吗?

就我个人而言,我是在寻找一种更干净的web开发语言(特别是在多字节字符串感知方面)和服务器端脚本(我的OSX脚本在我的FreeBSD服务器上运行时似乎总是有一两种)时来到Ruby的。

在尝试之前,我一直在玩Lisp、Perl、Python和Node.js。我最终放弃了Lisp,因为缺乏合适的编辑器(这是emacs或者没有,而且我讨厌emacs带着复仇),构建web应用程序的怪异之处(有工具,但使用起来不太自然)和偶尔的怪癖(我正在关注您、carcdrcons)。当涉及到多字节字符串感知时,我很快就拒绝了Perl,因为它和PHP一样糟糕。我不太喜欢Python (这只是一个品味的问题;我完全没有正当的理由)。虽然我很有希望,但我认为Node.js太年轻,太夸张了。(我也考虑过Erlang,但从未超越过教程。)

相反,Ruby程序员会想学习PHP吗?(...)最后,也是最重要的一点是,用两种语言维护项目是否明智?

我只能在这里为自己说话,但我越多地使用Ruby,每当我读或写PHP代码时,我就越想吐。

哪些类型的项目或情况更适合Ruby,而不适合PHP?

任何涉及UTF-8字符串处理的东西,其中之一--可以说包括所有与网络相关的内容。就像,是的,在PHP中有mb_*函数;Intl类;preg_*函数的/u修饰符;以及作为一个PostgreSQL瘾君子,我是来把UTF-8处理作为一个给定的。这是我不想担心的事情,尤其是当涉及到库时,除了特定于地区的问题(比如案例和排序)。

(顺便说一句,Ruby在这方面不是绝对完美的。Python是好一点。但我宁愿吃混合饮料。在15年的编码过程中,我很少需要在数据库之外对非ascii字符串进行排序,或者进行大小写处理,而不是将使其转换成URI的部分转写。)

Shell脚本是另一个。PHP也可以用于这类东西,但是语言的不一致和混乱使它不那么令人愉快。

Ruby的实际生态系统是什么?除了RoR之外,我还没有见过其他被炒作的技术/框架(我见过RSpec,但我承认我对BDD的真正组成及其含义完全不了解)。

实际上,除了Rails之外,还有其他几个框架: Merb、Camping、Ramaze、Sinatra等等。只是RoR很早就得到了大量的炒作。

我读到过Ruby在扩展时有其局限性(或者是RoR?,还是两者都是胡扯?)。

PHP也是如此。:-)

就我个人而言,我认为这是鲁比的胡说八道。在任何语言中进行缩放时,您都会查看瓶颈并逐一处理。从那里开始,你垂直地和水平地缩放。

您可以在适当的时候替换您的宠物语言(例如,我不会在PHP或Ruby中运行聊天服务器或高性能金融服务)。但从我的经验来看,语言并不是问题的核心,不管它的速度有多慢--架构是怎样的。(如果语言是问题的核心,那么站点主要是用C、C++、C#、Java、Lisp、Erlang等编写的。后者的性能都比PHP和Ruby高出一两个数量级。)

对于RoR,我不能说。我只是肤浅地调查了一下。我完全理解为什么或如何RoR会满足一个平面设计师或CS学生,尽管。它侮辱了我作为数据库开发人员所认为理所当然的一切。

不过,后来我遇到了Zed (一个编写Ruby web服务器的家伙)的长篇大论。除其他外,他还因为自己的生产服务器无法平均运行超过4分钟而嘲笑Rails的创建者。(自那时以来,情况有所改善。)

票数 7
EN

Software Engineering用户

发布于 2011-06-20 05:26:29

如果您想要进行一些桌面应用程序开发,并且希望使用相同的编程语言,那么Ruby (特别是JRuby)将比PHP更适合。https://stackoverflow.com/questions/1129383/non-trivial-desktop-apps-that-use-ruby

票数 1
EN

Software Engineering用户

发布于 2015-06-16 11:46:42

在阅读时,请记住我是Rails的开发人员,并回答了这个生态系统。我的观点将朝着这个方向倾斜。

PHP程序员会想学习Ruby吗?我知道我想学习Ruby,但是反过来,Ruby程序员会想学习PHP吗?

当然不是,在大多数情况下。不仅仅是因为我不喜欢PHP (我不喜欢,而且我使用它),而且因为工具集有基本的理想差异。有许多工具,如rake和rspec,帮助一些在红宝石世界的TDD。在大多数红宝石(当然还有rails)教程中,测试是第一位的。这并不是说您不能在PHP中这样做,只是约定是不同的。两种语言之间的传统差异一般都是直接对立的。

哪些类型的项目或情况更适合Ruby,而不适合PHP?

桌面应用程序、shell脚本、MVC应用程序(rails )和小型控制台应用程序。并不是说任何这些都不能用php完成,Ruby只是有更好的支持。在编写Rails (对不起)应用程序时,我经常用红宝石写一个不写的脚本。这允许我的部署或设置脚本使用与我的应用程序相同的语言,使用PHP,我甚至不会尝试用PHP编写shell脚本。我只想用bash。我编写了Ruby应用程序,MVC应用程序( Rails和not)和ruby,而它周围的库只是“更好地工作”在这些情况下。

Ruby的实际生态系统是什么?除了RoR之外,我还没有见过其他被炒作的技术/框架(我见过RSpec,但我承认我对BDD的真正组成及其含义完全不了解)。

这是种误解。RoR之所以受欢迎,是因为它做得很好,但可能还有其他工具集/栈使用红宝石作为核心。他们不那么受欢迎,因为他们正在进入一个已经有其他选择的空间。我喜欢用ruby编写快速GUI应用程序。但是python、C#、VB、LISP等已经可以做到这一点。RoR是一个改变游戏规则的人。所以它很受欢迎。对于PHP也可以这样说,给出一个流行的PHP框架。有一些,但删除产品(如wordpress)从名单上,你没有离开了很多。

如果有某种类型的项目是Ruby理想的,那么将其移到PHP是否会更好呢?我知道PHP可以处理很多东西,但我读到过Ruby在缩放时有其局限性(或者这是RoR?还是两者都是胡说八道?)

这是一个棘手的问题,你必须问,什么语言更适合我的项目?我绝不会用Rails写博客。我知道这是一个标准的教程例子,但如果你想要一个博客,那么wordpress是合适的工具。同样的情况也适用于这里。如果您遇到一个需要从ruby转换语言的实例,您将面临的技术限制也将排除PHP。

最后,也是最重要的一点是,用两种语言维护项目是明智的吗?还是说这很愚蠢。正如我所说的,看起来Ruby在短期内更精简,这可以使项目实现并取得成功,但从长远来看,我对此不太确定。

从长远来看,Ruby是很棒的。从长远来看,最大的成功不是语言,而是开发者。至于维护两种语言,这取决于您如何定义项目。我有几个在rails中有大量应用程序的项目,还有一个使用wordpress/dupral/ or的博客或销售网站。我认为它们是不同的项目。我要说的是,您支持的语言越多,就越难找到所有语言都很好的好开发工具。例如,我使用并推荐wordpress,但我在PHP中没有像在RoR中那样“好”。如果一个客户真的想要一半的核心产品在PHP中,另一半在RoR中,我真的必须弄清楚原因,并且取决于他们的答案可能会拒绝这项工作。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/85069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档