正如您可能从标题中注意到的,这不是"PHP或Ruby",也不是"PHP与Ruby“的问题。这是一个关于如何在同一业务中利用PHP + Ruby的问题。
我本人是一名PHP开发人员,我喜欢这种语言,因为它很方便,而且我特别喜欢它周围的资源生态系统: Joomla、Drupal、Wordpress、Symfony2、Doctrine2等等。然而,语言本身有时会有点令人失望。
OTOH,Ruby看起来是一种非常漂亮的语言,-from从几个方面对它进行了肤浅的研究--我可以说它比Python作为一种语言本身更简洁。然而,据我所见,几乎只有RoR制造噪音,而且我不太喜欢RoR (主要是因为它的模型层)。
作为我公司的联合首席执行官和首席技术官,我正试图跳出框框,因为我想开始专注于技术的人性化方面,看看使用PHP和Ruby是否明智。以下是一些随机的想法:
具体而言,我的问题是:
我主要是从熟悉-preferably语言的优点和弱点的人那里寻找洞察力,这两种语言--以及它们在实际实践中的生态系统--意味着:框架和应用程序,就像我引用的那些来自PHP生态系统的框架和应用程序。
发布于 2011-06-18 06:21:28
请记住,在阅读我的答案时,我的PHP经验(> 10年)要比我的Ruby经验高得多(花几周时间玩它,还没有一个活项目)。
PHP程序员想学习Ruby吗?
就我个人而言,我是在寻找一种更干净的web开发语言(特别是在多字节字符串感知方面)和服务器端脚本(我的OSX脚本在我的FreeBSD服务器上运行时似乎总是有一两种)时来到Ruby的。
在尝试之前,我一直在玩Lisp、Perl、Python和Node.js。我最终放弃了Lisp,因为缺乏合适的编辑器(这是emacs或者没有,而且我讨厌emacs带着复仇),构建web应用程序的怪异之处(有工具,但使用起来不太自然)和偶尔的怪癖(我正在关注您、car、cdr和cons)。当涉及到多字节字符串感知时,我很快就拒绝了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的创建者。(自那时以来,情况有所改善。)
发布于 2011-06-20 05:26:29
如果您想要进行一些桌面应用程序开发,并且希望使用相同的编程语言,那么Ruby (特别是JRuby)将比PHP更适合。https://stackoverflow.com/questions/1129383/non-trivial-desktop-apps-that-use-ruby
发布于 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中,我真的必须弄清楚原因,并且取决于他们的答案可能会拒绝这项工作。
https://softwareengineering.stackexchange.com/questions/85069
复制相似问题